1、C语言程序设计及相应的开发环境。2 游戏设计目的 本课题要求利用Turbo C编写与它功能相仿的扫雷游戏,寓学于乐。程序的功能要求随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时失败。3功能模块设计1 系统模块图本程序包括3个子模块,分别是主界面显示模块、格子翻动模块、游戏胜负判断模块。如图所示。各个功能模块的功能描述如下:1) 主界面显示模块。该模块主要是实现初始化时界面的设计结构。基本的图形及鼠标。2) 格子翻动模块。该模块主要计算格子周围的雷数,实现格子显示功能。3) 游戏胜负判断模块。该模块主
2、要是对玩家进行胜负的判断。包括胜负功能后有特殊效果出现。2 任务执行流程图1 统计每个格子周围雷数,主要包括特殊格子周围雷数的统计和普通格子周围雷数的统计。特殊格子有左上角、右上角、左下角、右下角、左边第一列、右边第一列、第一行、最后一行格子统计。2 显示无雷区空白部分的流程图,若该格子已经标记为红旗或格子已经处理过了,则返回。否则,继续判断。若格子周围没有雷,且该格子不处于是雷状态,显示(画)空格,否则,输出雷数。 4 数据结构设计1 设置全局变量 定义一维数组char randmineNUM3,用来显示数字的字符串。int gameAGAIN=0是表示是否重来的变量。int gamePLA
3、Y=0是否是第一次玩游戏的标志。int mineNUM统计处理过的格子数。2 定义结构体 struct int num; int roundnum; int flag; Mine1010;定义结构体变量使用了结构体数组。Mine1010。num表示格子当前处于什么状态,num=1表示格子周围有雷,num=0表示已经显示过数字或者空白格子。用roundnum统计格子周围有多少雷。flag是右键按下显示红旗的标志,flag=0没有红旗标志,flag=1有红旗标志.5函数功能描述 1 line( ) 原型:line(int x1,inty1,intx2,inty2) 功能:在两点之间画一条线 2 c
4、ircle( ) 原型:通过给定的圆心和半径画圆功能:circle(int x,int y,int r) 3 getpixel( )该函数检索指定坐标点的像素的RGB颜色值。;COLORREF GetPixel(HDC hdc, int nXPos, int nYPos) 4 registerbgidriver()功能: 登录已连接进来的图形驱动程序代码 原型: int registerbgidriver(void(*driver)(void)5 closegraph() 功 能: 关闭图形系统 用 法: void far closegraph(void) 6kbhit()(VC+6.0下为_
5、kbhit() 功能及返回值:检查当前是否有键盘输入,若有则返回一个非0值,否则返回0 原型:int kbhit(void) 包含头文件: include 7 setcolor()设置当前画笔颜色void setcolor(int color)8 cleardevice()清除图形画面void cleardevice( void)9 setfillstyle()设置填充模式的式样和颜色void setfillstyle(int pattern,int color)10 bar()画填充矩形void bar(int left,int top,int right,int bottom)11 fil
6、lellipse()画出以(x,y)为中心点,xradius为横轴半径,yradius为纵轴半径的填充椭圆。void fillellipse(int x,int y,int xradius,int yradius) 12 putpixel( )在指定位置上画一个像素void putpixel(int x,int y,int color) 13 settextstyle() 设置当前文本属性 void settextstyle(int font,int direction,int charsize)1414 outtextxy( )图形模式下在指定位置输出一个字符串void outtextxy(
7、int x,int y,char far*string)15 randomaize( )随机数初始化生成器 原型: void randomaize( ) 16 getch( )从控制台读取一个字符,并且不在屏幕上显示出来。int getch (void) 头文件:conio.h 17 delay()以毫秒为单位中断执行一段时间void delay (time ) dos. 函数调用图 下面分别是显示空格函数ShowWhite()和烟花设计函数Drawfierwork()的函数调用情况。6功能模块的设计与实现6.1 主函数主要定义常用到的常量,全局变量,有关的函数原形说明。然后随机布雷,统计好每
8、个格子周围的雷数,画扫雷游戏界面,游戏接受鼠标操作,按任意键结束游戏,关闭图形系统,程序结束。 void main(void) Init(); ; MouseMath(); Control(); Close();6.2 主界面显示设置(部分)void Drawfirework() int a8,b8,x,y,i,j,c; randomize(); for(;!kbhit();) y=rand()%100+300; x=rand()%500+80; a0=x; b0=y-10; a1=a0+5; a2=a1+5; a3=a1; a4=a0; a5=a0-5; a6=a5-5; a7=a6+5;
9、for(j=1;j5;j+) bj=bj-1+5; for(j=5;8; bj=bj-1-5; for(j=0;6; for(i=0;ii+) c=rand()%13; setcolor(c); circle(ai,bi,1); delay(100); delay(1000); b0-=10; a1+=5; b1-=5; a2+=10; a3+=5; b3+=5; b4+=10; a5-=5; b5+=5; a6-=10; a7-=5; b7-=5; getch();6.3 格子翻动模块 int MineStatistics(int i,int j) int nNUM=0; if(i=0&j=
10、0) if(Mine01.num=1) nNUM+; if(Mine10.num=1) if(Mine11.num=1) elsej=9) if(Mine08.num=1) if(Mine19.num=1) if(Mine18.num=1) if(i=9& if(Mine80.num=1) if(Mine91.num=1) if(Mine81.num=1) if(Mine98.num=1) if(Mine89.num=1) if(Mine88.num=1) else if(j=0) if(Mineij+1.num=1) if(Minei+1j.num=1) if(Minei-1j.num=1)
11、 if(Minei-1j+1.num=1) if(Minei+1j+1.num=1) else if(j=9) if(Mineij-1.num=1) if(Minei-1j-1.num=1) if(Minei+1j-1.num=1) else if(i=0) else if(i=9) return(nNUM);int ShowWhite(int i,int j) if(Mineij.flag=1|Mineij.num=0) return; mineNUM-; if(Mineij.roundnum=0&Mineij.num!=1) DrawEmpty(i,j,1,7); Mineij.num=0
12、; if(Mineij.roundnum!=0) DrawEmpty(i,j,0,15); sprintf(randmineNUM,%d,Mineij.roundnum); setcolor(13); MouseOff(); outtextxy(225+j*20,65+i*20,randmineNUM); MouseGetXY(); MouseOn(MouseX,MouseY); return ; if(i!=0&Minei-1j.num! ShowWhite(i-1,j);j!=9&Minei-1j+1.num! ShowWhite(i-1,j+1); if(j!Mineij+1.num!
13、ShowWhite(i,j+1);i!Minei+1j+1.num! ShowWhite(i+1,j+1);Minei+1j.num! ShowWhite(i+1,j);Minei+1j-1.num! ShowWhite(i+1,j-1);Mineij-1.num! ShowWhite(i,j-1);Minei-1j-1.num! ShowWhite(i-1,j-1);,7 程序运行结果7.1 初始界面7.2 游戏过程7.3 游戏失败界面7.4 游戏成功界面8 结论经过四个多月的调查、学习、研究和设计,系统的制作接近了尾声。在这里我将系统设计做如下总结。1)本系统为基于PHP的房屋租赁管理系统
14、,系统的功能已经达到设计的要求,系统中各个模块的功能均已实现,为整体系统的构建奠定了基础。2)系统模块的功能可以被进一步扩展。例如,系统中还可以增加房屋、二手房出售等功能。系统的页面可以设计的更加精美。3)系统中模块划分明确,模块功能设计有较强的针对性。4)系统的设计遵循软件开发的全过程,使我对软件系统的开发过程有了更深刻的认识。5)设计体现出了所使用的编程技术的优点,设计中结合了JavaScript。6)在系统的设计中能够灵活运用PHP的对象技术,并且使用有效的MySQL语言操作后台数据库。软件的设计没有完美无缺的,这个系统在某些地方可能存在不足,还需要我们进一步的改进和完善。在这段时间里,我受益匪浅,不仅将所学的知识运用到实践,而且更进一步学习了软件开发技术,增强了PHP开发技术的语法基础,能够将其比较灵活地运用到开发中去。将这个作品投入使用是我们的期望,系统功能会在实践中不断的摸索,达到最佳的使用效果。参考文献1 姜灵芝,余健编著的C语言课程设计案例精编 清华大学出版社2 郭翠英编著的C语言课程设计 中国水利水电出版社3 譚浩强C程序设计(第四版) 清华大学出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1