- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机技术基础课程设计
C语言
设计报告
题目:寻宝游戏
一、选题背景:
寻宝游戏
可以用来娱乐玩的小游戏——寻宝游戏,体验寻宝的乐趣和成功。
二、设计思想:
这是一个有趣的寻宝游戏,根据题目要求,采用C语言自带的画图函数为主要框架,其中各个运算总分运用C语言的函数和基本算法的知识。运用顺序结构,分支结构和循环结构。主要内容确定之后,调用所需函数,用到了指针,还用到了内存的开辟和释放,还有一些绘图函数,还用到了键盘和声音的函数,最有收获的是提高了自己的调试程序的能力。
三.主要解决问题的方法及技术关键
用FREE 函数完成对内存空间的释放。
If—else—if , Do—while 用来控制程序的循环。
用链表的知识完成数据的 输入 删除 查看 。
4. 有一些绘图函数,还用到了键盘和声音的函数
四、主要源程序清单:
#includegraphics.h
#includestdio.h
#includestdlib.h
#includemath.h
#includebios.h
#define ESC 0x011b
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ENTER 0x1c0d
#define MX 28
#define MY 24
#define BOXLONG 20
#define SQI 10
#define SZADAN 10
struct point
{
int x;
int y;
}zaboxxy[4]={-1,0,1,0,0,-1,0,1};
int x,y,map[MX+1][MY+1],szadan,sqi,szuan=0,mx,my,mc;
void *tx[5];
char sc[10];
/******************************
change a intnumber to a char []
*******************************/
char *ntos(int n, char *c)
{long i=0,j,k;
for(j=5;j=0;j--)
{k=n/pow(10,j);
if(k0||n==0)
{c[i++]=k+0;
n=n-k*pow(10,j);}
}
c[i]=0;
return(c);
}
main()
{
int dr=DETECT,mode=0,i;
long key=0;
initgraph(dr,mode,);
mx=getmaxx();
my=getmaxy();
mc=getmaxcolor();
for(i=1;i5;i++) tx[i]=malloc(imagesize(1,1,BOXLONG,BOXLONG));
loadmap();
again:
gamemessage();
sqi=SQI;szadan=SZADAN;
definemap();
do
{ while(bioskey(1)==0);
key=bioskey(0);
move(key);
}while(key!=ESC sqi0);
if(sqi==0)message(you are winer!!!!);
if(message(do you want play again ?)==1)goto again;
for(i=1;i5;i++) free(tx[i]);
closegraph();
}
/*******************
SEND A message
*******************/
int message(char *s)
{ char c;
setfillstyle(1,4);
setcolor(1);
bar(mx/2-200,my/2-50,mx/2+250,my/2+50);
outtextxy(mx/2-200,my/2-20,s);
c=getch();
if(c==n|| c==N)return(0);else return(1);
}
/*******************
draw map
*******************/
loadmap()
{
cleardevice();
setcolor(1);
rectangle(1,1,BOXLONG,BOXLONG);
setcolor(3);
setfillstyle(1,4);
bar(5,3,6,18);
setcolor(4);
line(6,3,15,13);
line(6,13,15,13);
floodfill(14,12,4);
get
文档评论(0)