《贪吃蛇游戏》课程设计指导书_CC++语言程序设计_第1页
《贪吃蛇游戏》课程设计指导书_CC++语言程序设计_第2页
《贪吃蛇游戏》课程设计指导书_CC++语言程序设计_第3页
《贪吃蛇游戏》课程设计指导书_CC++语言程序设计_第4页
《贪吃蛇游戏》课程设计指导书_CC++语言程序设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、贪吃蛇游戏一、实训目的   本课题的目的主要是考查学生对C/C+语言的综合编程能力的掌握,培养学生的分析问题和解决问题的能力及逻辑思维能力。该课题主要考察学生对函数、结构体,指针,文件等的操作,以及C/C+语言基本规则和算法的掌握,所以完成本颗题目要求学生较强的设计能力,特别是要具有综合应用能力。如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。二、实训内容 题目:贪吃蛇游戏 目录:(1)确定游戏的基本规则(2)确定食物坐标 (3)描述贪吃蛇的关键算法 (4)食物随机出现的方案(5)输出统计的分数 三、要求 (1) 对系统进行功能模块分析及算法的设计

2、(2) 系统设计要具有实用性 (3) 编程简单清楚,可实用,功能较全面 (4) 设计说明书条理规范、流程图要清楚(5)设计完成后,每人上交一份设计报告,必须用专用的课程设计报告纸书写,要求具有以下内容:题目,原理叙述、设计有关的基本规则,流程图,源程序清单,运行结果,调试情况分析,设计总结体会,致谢词。(6)设计进度安排(1周) 题目提前1周布置,使学生作好充分的准备。分析设计准备阶段建议1天,编程调试阶段建议2天,总结报告和书写说明书阶段及考核阶段建议2天。源程序:#define N 200#include <graphics.h>#include <stdlib.h>

3、;#include <dos.h>#include <stdafx.h>#include <iostream>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;/*得分*/int gamespeed=50000; struct Foodint x;/*食物的横坐标*/int y;/*食物的纵坐标*/int yes; food; struct Snakeint xN;int yN;i

4、nt node;/*蛇的节数*/int direction;/*蛇移动方向*/int life;/* 蛇的生命,0活着,1死亡*/snake;void Init(void);/*图形驱动*/void Close(void);/*图形结束*/void DrawK(void);/*开始画面*/void GameOver(void);/*结束游戏*/void GamePlay(void);/*玩游戏具体过程*/void PrScore(void);/*输出成绩*/*主函数*/void main(void)Init();/*图形驱动*/DrawK();/*开始画面*/GamePlay();/*玩游戏具

5、体过程*/Close();/*图形结束*/void Init(void)int gd=DETECT,gm;initgraph(&gd,&gm,"c:tc");cleardevice();void DrawK(void)/*setbkcolor(LIGHTGREEN);*/setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/for(i=50;i<=600;i+=10)/*画围墙*/rectangle(i,40,i+10,49); /*上边*/rectangle(i,451,i+10,46

6、0);/*下边*/for(i=40;i<=450;i+=10)rectangle(50,i,59,i+10); /*左边*/rectangle(601,i,610,i+10);/*右边*/void GamePlay(void)randomize();/*随机数发生器*/food.yes=1; snake.life=0;/*活着*/snake.direction=1;/*方向往右*/snake.x0=100;snake.y0=100;/*蛇头*/snake.x1=110;snake.y1=100;snake.node=2;/*节数*/PrScore();/*输出得分*/while(1)/*

7、可以重复玩游戏,压ESC键结束*/while(!kbhit()if(food.yes=1)/*需要出现新食物*/food.x=rand()%400+60;food.y=rand()%350+60;while(food.x%10!=0) food.x+;while(food.y%10!=0)food.y+;food.yes=0;/*画面上有食物了*/if(food.yes=0) setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y-10);for(i=snake.node-1;i>0;i-)/*贪吃蛇的关键算法*/snake.xi

8、=snake.xi-1;snake.yi=snake.yi-1;/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/switch(snake.direction)case 1:snake.x0+=10;break;case 2: snake.x0-=10;break;case 3: snake.y0-=10;break;case 4: snake.y0+=10;break;for(i=3;i<snake.node;i+)if(snake.xi=snake.x0&&snake.yi=snake.y0)GameOver();/*显示失败*/snake.li

9、fe=1;break;if(snake.x0<55|snake.x0>595|snake.y0<55|snake.y0>455)/*蛇是否撞到墙壁*/GameOver();/*本次游戏结束*/snake.life=1; /*蛇死*/if(snake.life=1) break;if(snake.x0=food.x&&snake.y0=food.y)/*吃到食物以后*/setcolor(0); rectangle(food.x,food.y,food.x+10,food.y-10);snake.xsnake.node=-20;snake.ysnake.no

10、de=-20;snake.node+;/*蛇的身体长一节*/food.yes=1;/*画面上需要出现新的食物*/score+=10;PrScore();/*输出新得分*/setcolor(4);/*画出蛇*/for(i=0;i<snake.node;i+)rectangle(snake.xi,snake.yi,snake.xi+10,snake.yi-10);delay(gamespeed);setcolor(0);/*用黑色去除蛇的的最后一节*/rectangle(snake.xsnake.node-1,snake.ysnake.node-1,snake.xsnake.node-1+1

11、0,snake.ysnake.node-1-10); /*endwhile(!kbhit)*/if(snake.life=1)/*如果蛇死就跳出循环*/break;key=bioskey(0);/*接收按键*/if(key=ESC)/*按ESC键退出*/break;elseif(key=UP&&snake.direction!=4)snake.direction=3;elseif(key=RIGHT&&snake.direction!=2)snake.direction=1;elseif(key=LEFT&&snake.direction!=1)snake.direction=2;elseif(key=DOWN&&snake.direction!=3)snake.direction=4;/*endwhile(1)*/*游戏结束*/void GameOver(void)cleardevice(); PrScore();setcolor(RED);settextstyle(0,0,4);outtextxy(200,200,"GAME OVER");getch();/*输出成绩*/void PrScore(void) char str10;se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论