- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小蛇历险记
PAGE 9
九江学院
程序设计论文
——小蛇历险记
班级:信A0611
姓名:李波
学号:25
专业:计算机科学与技术
2008-11-19
游戏来历:
蛇引诱夏娃吃了苹果之后,就被贬为毒虫,阴险的象征。
而蛇吃东西是整只动物吞进去的,大概在文艺复兴的时候(好象是那个时候但是不确定)
就有人发明的一种游戏,是现在贪吃蛇的前身。后来慢慢的发展就变成了今天的贪吃蛇了。
程序需求:
小蛇历险记又名贪吃蛇,蛇吞蛋。该游戏已经成为一款经典游戏,也是游戏程序设计的一道基本训练项目。据不完全统计,现在的孩童90%以上都接触过这款游戏,甚至成年人对此游戏热情依然不减。所以可以说这款游戏是最受欢迎的游戏之一,与俄罗斯方块一样广为人知。
Tc,C++,Jave等各种设计语言都能设计出这个游戏。这里只介绍怎样用Tc设计这款游戏。(由于游戏界面特殊,不能截图,请原谅)
游戏思想:
该游戏只要蛇头接触到食物就会增加分数,一个食物为10分。
该游戏有三种方式结束:
直接按下结束键“ESC”;
蛇头碰到墙壁;
蛇头撞到身子;
当发生以上三种情况时,游戏结束,弹出结束画面并退出程序。
该游戏程序关键在于表示蛇的图形及蛇的移动。用一个小矩形块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。
定义函数、常量、结构体等:
定义两个结构体:食物与蛇。他们分别表示为:
食物的结构体:
struct Food
{
int x;
/*食物的横坐标*/
int y;
/*食物的纵坐标*/
int yes;
/*判断是否要出现食物的变量*/
}food;
蛇的结构体:
struct Snake
{
int x[N];
int y[N];
int node;
/*蛇的节数*/
int direction;
/*蛇移动方向*/
int life;
/*蛇的生命,0活着,1死亡*/
}snake;
另外
score 表示得分,初始值设为0,
i 表示坐标,
key 表示按键,
gamespeed 为游戏速度,
void Init(void); 为图形驱动
void Close(void); 为图形结束
void DrawK(void); 为开始画面
void GameOver(void); 为结束游戏
void GamePlay(void); 为玩游戏具体过程
void PrScore(void); 为输出成绩
游戏设计:
开始画面
左上角坐标为(50,40),右下角坐标为(610,460)的围墙。
void DrawK(void)
{
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,460);
/*下边*/
}
for(i=40;i=450;i+=10)
{
rectangle(50,i,59,i+10);
/*左边*/
rectangle(601,i,610,i+10);
/*右边*/
}
}
游戏的新的食物要随机出现,所以要用到随机发生器函数randomize();
事物food.yes值为1表示需要出现新食物,0表示已经存在食物;
生命snake.life为0表示活着;
snake.node为蛇的节数,初始设为3;
PrScore()为输出分数函数;
为了让游戏能重复玩,用到循环函数while(1);
为了在没有按键的情况下,蛇自己移动身体,用到while(!kbhit());
当需要出现新的事物时:
if(food.yes==1)
/*需要出现新食物*/
{
food.x=rand()%400+60;
food.y=rand
您可能关注的文档
- C语言程序法人一个dkp管理系统.doc
- C语言编写一个图形时钟.doc
- C语言的五子棋程序设计文档.doc
- C语言的打字游戏程序设计.doc
- C语言的学生成绩管理.doc
- C语言的学生成绩管理源码.doc
- C语言的学生通训管理系统.doc
- C语言的学生通训录.doc
- 成绩管理系统论文C语言课程设计.doc
- C语言的通训录管理系统设计.doc
- 2024年04月广东中山市农业农村局招考聘用雇员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月广东东莞市樟木头镇招考聘用护林员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月广东云浮市郁南县机关事业单位招考聘用紧缺人才24人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月常州市总商会2024年招考1名合同制工作人员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月广东东莞职业技术学院附属幼儿园副园长招考聘用笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月广东佛山市顺德区公办中小学招考聘用教师笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月广东中山市板芙镇招考聘用公办中小学校临聘教师笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月广东广州市公安局出入境管理局招考聘用辅警15人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月山西省针灸医院招考聘用18人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年04月广东广东省茂名市化州市卫健系统选聘急需紧缺专业人才50人笔试历年典型题及考点剖析附带答案含详解.docx
文档评论(0)