当前位置:文档之家› C语言贪吃蛇实验报告

C语言贪吃蛇实验报告

if(x==0) {
printf("\t\t"); return ; } if(y==0) { printf("\t\t\t"); return ; } if(x==16) { printf("\n"); return ; } if(y==16) { printf("\t");
7
} if(x>0&&x<16&&y>0&&y<16) {
统计游戏过程蛇吃的食物数量,计算并输出游戏成绩.
3 软打开 Microssft Visual C++ 程序,进入 Microssft Visual C++ 程序后打开文件 菜单,点机新键命令按钮,先建立一个 Win32 Console Application 工程,建立工程时可 填写工程名称和你所建工成要存放的位置,点机确定按钮,再点机一个空工程类型的控制 台程序,再点机完成,然后点机确定按钮,此时一个所要建立的工程就已经建立好,然后 再点机文件中的新建按钮,然后再建立一个 C++ Source File 文件,并填写文件名称, 然后点机确定按钮,此时所要建立的工程和文件都已建立完毕,此时您就可以把贪吃蛇游 戏的代码复制粘贴到你刚刚建立的工程和文件里面了,然后点机组建命令中的编译和组建 命令,最后点机执行命令就可进入贪吃蛇游戏中了。
printf("\n\n\n\n\n\n\t\t\t 欢迎来到【贪吃蛇】小游戏\n\n"); printf("\t\t\t 蛇身加长一段就加 10 分\n\n"); printf("\t\t 此游戏用键盘的方向键控制即可。若想退出请按 Esc 建。\n"); printf("\n\t\t\t 相反的方向的话是暂停。\n"); printf("\n\t\t\t 请按任意键进入游戏。"); getch(); } /*--------------------------------------------*/ /*------------人工画图程序--------------------*/ void drawpt(int a,int x,int y) /*利用人工绘图程序来画出蛇运动的范围*/ {
图 3 蛇吃食物蛇身变长的设计流程图
4
按方向键 的右键
则使用函数 rightmove(snake)
蛇向右运动
2.6 程序的总体设计思想
利用人工绘图法,制作美观的游戏界面. 通过随机函数产生随机数,控制游戏过程食物的出现. 定义键盘操作,控制游戏过程蛇的移动方向.
画出边界,并判断游戏是否结束.
8
for(y=16,x=0;x<17;x++) if(sna[x][y]==HEAD) return false;
for(x=0;x<16;x++) {
for(y=0;y<16;y++) {
if(max<sna[x][y]) if(sna[x][y]!=HEAD&&sna[x][y]!=FOOD) max=sna[x][y];/*这个也是求头部之后的*/
} } for(i=0;i<max;i++) {
for(x=1;x<16;x++) {
for(y=1;y<16;y++) {
if(sna[x][y]==i+1) count++;/*这个判断想了好久的*/
score=(count-3)*10;/*计算蛇的总成绩*/ } } } if(count!=max)/*判断身体部分是否连续*/ return false; return true; } /*--------------------------------------------------*/ /*-------------游戏结束显示-------------------------*/ void gameover() { system("cls"); printf("\n\n\n\n\n\n\n\n"); printf("\t\t\t\t"); printf("游戏结束\n\n"); printf("\t\t\t\t"); printf ("此次总成绩为%d 分\n\n",score); printf("\t\t\t\t"); printf ("请您再接再厉\n\n"); printf("\t\t\t"); printf("按 Esc 键退出,按任意键重新开始。\n"); } /*-------------------------------------------------*/ /*全程标记法,从尾巴开始 123456....HEAD,食物是 FOOD。*/ void marksn()
2.5 设计的流程图
总程序设计图如图 1 所示:
2
欢迎词和游戏的 基本操作说明
开始游戏
初试化界面和 蛇身
随机放置食物
方向键控制蛇
的运动方向
Y
是否吃到食
N

N
Y
蛇变长,并总 分加 10 分
Y
是否碰壁或
游戏结束,
结尾
是否继续
N
退出游戏 图 1 程序设计流程图 方向键控制的设计流程图如图 2 所示:其中 upmove 函数控制蛇向上运动,downmove 函
6
附录 部分程序代码清单
#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h> #include<windows.h> #define HEAD 300 #define FOOD 400 #define v_sleep 100/*改变 sleep 的大小可改变蛇的运动速度,此数值越小蛇的运动速度越快*/ int score=0; /*定义了一个全局变量来在整个程序中统计总成绩*/ /*----------------欢迎词-------------------*/ void welc() {
5
5. 收获及体会
在设计这个程序中我主要学会了如何运用以下有关 C 语言和 C++的知识: 1) 函数定义是要做到顾名思义是很重要的,它对读程序的人正确认识程序 十分重要,在修改这个程序的过程中也能很快找到程序各模块的作用,大大增 加了程序的可读性。 2) 分析函数先从 main()函数入手。Main()函数是 C++源程序编译时的开始, 从 main()函数开始读函数可将其他函数的功能理解得更透彻。 3) 在做程序的时候先列框架,将这个程序所要达到的目的(功能)分析出 来,选择正确的数据结构然后在将程序模块化,按照模块编写函数更加简单合理。 4) 我还了解了很多的库函数的作用,如字符串函数中有很多对字符串进行 处理的函数,起功能我都有所了解。 5)学会了有关头文件的使用方法,及系统调配问题的解决方法等。 6)在调试过程中,遇到了很多的问题,比如,因为使用的刷屏函数,所以屏幕经常出 现闪烁的情况,但是通过我和我的伙伴们的共同努力和学习,通过网上和书籍的查阅,我们 也得到了很多的收获,我们的小组也在中真正的学会了很多的东西,这次实训给我们带来了 很大的收获。可以按照程序运行的错误提示对原程序进行修改,在调试过程中有时也会遇到 不懂的问题,我去图书馆或上网查阅一些资料或者是向老师请教也解决了对源程序一一修改 直到运行成功。
srand(time(NULL)); return rand()%15+1;/*随机函数出现食物时的范围,防止食物出现在范围之外*/ } /*-----------------------------------------------*/ /*----------判断游戏是否结束---------------------*/ bool judgeGO(int (*sna)[17]) { int x,y,i=0,max=0,count=0; for(x=0,y=0;y<17;y++)
3.2
执行游戏的过程说明
进入贪吃蛇游行中后,首先弹出一个界面,上面出现的是欢迎词和游戏的简单说明, 可点机任意键开始游戏,此游戏是由键盘的四个方向键进行控制的,吃一个点,蛇身就长 长一端,总分数就加 10 分,如果碰壁或结尾游戏则结束,最后出先一个界面,上面显示你 此次游戏的总分数。希望我这个小游戏能让你玩的开心。
3
数控制蛇向下运动,leftmove 函数控制蛇向左运动,rightmove 函数控制蛇向右运动。
开始游戏
按方向键 的上键
则使用函数 upmove(snake)
蛇向上运动
按方向键 的下键
则使用函数 downmove(snake)
蛇向下运动
按方向键 的左键
则使用函数 leftmove(snake)
蛇向左运动
C 语言程序设计报告
题目:贪吃蛇游戏的程序设计 院系:西语学院 英语教育 6 班 姓名: 学号:
1.1 题目:
设计贪吃蛇小游戏
1.2 题目的要求:
玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。
1.3 设计的步骤:
分析设计题目的要求,即需求分析。 总体设计,确定所需模块及模块间调用关系,定义系统中使用的数据类型。 详细设计,确定每个模块的功能,绘制主要函数的流程图。 编写程序代码,调试程序使其能正确运行。要求书写规范,注意采用缩进格式。函数
相关主题