欢迎来到天天文库
浏览记录
ID:10574311
大小:114.00 KB
页数:15页
时间:2018-07-07
《贪吃蛇课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本科课程设计贪吃蛇游戏设计摘要2Abstract3一.详细设计31.属性解释32.初始化坐标:33.调用线程44.具体功能实现:44.1.移动功能的实现:44.2.吃食物功能实现:54.3.判断游戏是否结束的功能实现:74.4.画图方法的实现84.5.监听键盘动作:95.界面的设计:105.1进入程序界面设计105.2第2个界面的设计:105.3第3个界面设计:116.把程序植入手机中12二.字符设备驱动程序实现12三.总结:13四.参考文献:13五.致谢14摘要程序核心思想:运行程序首界面(进入游戏,退出游戏)进入游戏后选择难度(简单,普通,高难)根据不同的难度设置相应的
2、属性。进入游戏界面。首先初始化蛇的坐标,食物的坐标,和障碍物的坐标。然后获取当前屏幕的大小为将来的边界判断做准备。然后创建并执行线程。线程基本流程:判断是否是暂停阶段,如果没有暂停就执行:eatFood();move(direction);repaint();如果游戏结束了就重新游戏或者退出。AbstractCoreoftheprocess:firstrunningtheprograminterface(intothegame,withdrawfromthegame)intothegameafterthedifficultchoiceof(simple,ordinary,h
3、ighlydifficult)dependingonthedifficultyofsettingthecorrespondingattribute.Intothegameinterface.Firstinitializethecoordinatesofthesnake,coordinatesfood,andthecoordinatesofobstructions.Andaccesstothesizeofthecurrentscreenforthefutureofthebordertoprepareforjudgement.Andthencreateandexecutiont
4、hreads.Threadthebasicprocess:determinewhetherthestageissuspended,ifnotthemoratoriumontheimplementationof:eatFood();move(direction);repaint();gametoanendifthegameoroutonthere.一.详细设计1.属性解释用1个2维数组snake[200][2]存放蛇身坐标,第2维是0的时候代表横坐标,为1的时候为纵坐标。第1维数字代表蛇身方块的数字,例如snake[0][0]就代表蛇头的横坐标snake[1][1]就代表第2
5、个方块的总坐标。snakeNum为蛇的长度(以方格为单位)。SNAKEWIDTH为方格大小。direction;为移动方向,zhangai0x,zhangai1x,zhangai2x,zhangai3x,zhangai0y,zhangai1y,zhangai2y,zhangai3y,为障碍物的坐标。foodx,foody为食物的坐标。isPaused为判定是否是暂停状态,true为暂停false为非暂停。A为难度系数,a可以为1,2,3。1的时候最难,3的时候最简单。SLEEP_TIME为系统沉睡时间,其值越小速度越快。2.初始化坐标:isPaused=true;//设置游
6、戏开始为暂停状态snakeNum=7;//设置蛇身长度7个方格//循环依次初始化蛇身没个方格的坐标,蛇头的坐标为(100,40)for(inti=0;i7、ai1y=foodY-4*a;zhangai2x=foodX-4*a;zhangai2y=foodY+4*a;zhangai3x=foodX-4*a;zhangai3y=foodY-4*a;3.调用线程thread=newThread(this);thread.start();while(isRun)//开始时间{if(!isPaused){eatFood();//吃食物move(direction);//移动if(gameover)//如果游戏结束{isRun=false;restart();break;}b=!
7、ai1y=foodY-4*a;zhangai2x=foodX-4*a;zhangai2y=foodY+4*a;zhangai3x=foodX-4*a;zhangai3y=foodY-4*a;3.调用线程thread=newThread(this);thread.start();while(isRun)//开始时间{if(!isPaused){eatFood();//吃食物move(direction);//移动if(gameover)//如果游戏结束{isRun=false;restart();break;}b=!
此文档下载收益归作者所有