当前位置:
文档之家› 高级语言程序设计实训报告(参考)
高级语言程序设计实训报告(参考)
Y snake.life==1
N
snake.x[0]==food.x&
&snake.y[0]==food.y
N
Y
setcolor(0) rectangle(food.x,food.y,food. x+10,food.y-10)
snake.x[snake.node]=20;snake.y[ snake.node]=-20; snake.node++
指导老师:
第页
江西科技师范大学实验报告
i++
delay(gamespeed); setcolor(0);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1]
snake.x[snake.node1]+10,snake.y[snake.no de-1]-10)
⑤
指导老师:
第页
江西科技师范大学实验报告
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
①
N food.yes==0 Y
Setcolor(Green)
画出食物 的矩形框
rectangle(food.x, food.y,food.x+10, food.y-10)
i=snake.node-1
N i>0 Y snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1];
getch() 图6 游戏结束功能模块流程图
指导老师:
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
⑥玩游戏过程功能模块:
randomize()
food.yes=1;snake.life=0;snake.direction=1; snake.x[0]=100;snake.y[0]=100 snake.x[1]=110;snake.y[1]=100;snake.node=2;
四、实训小结
1、功能描述
贪吃蛇游戏
图 形 驱 动
指导老师:
开
玩
结
输
图
始游束来自出形画
戏
游
得
结
面
过
戏
分
束
程
图1 贪吃蛇功能模块图
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
2、总体设计 (1)功能模块设计 ①图形驱动功能模块:
initgraph(&gd,&gm,"c:\\tc")
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
实训一 贪吃蛇游戏
一、实训目的和要求
根据老师布置的任务,对项目进行需求分析;确定数据结构和算法;画流程图或 N-S 图并形成相关文档。根据算法编写程序并且调试程序直到程序通过。本程序实现的主要技 巧在二维数组的应用上。目的是通过游戏程序增加编程的兴趣,提高编程水平。
i--
②
指导老师:
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
②
snake.direction
1 snake.x[0]+=10
2 snake.x[0]-=10
3
4
snake.y[0]-=10
snake.y[0]-=10
Ni=3 N
i<snake.node Y
snake.x[i]==snake.x[0]&& snake.y[i]==snake.y[0]
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
(2)数据结构设计 ①食物的结构: struct Food {
int x; int y; int yes; }food; 结构体 food 用于存储食物信息。各字段的值意义如下: x:存放食物的横坐标 y:存放食物的纵坐标 yes:判断是否要出现食物的变量,yes=0表示,画面中有食物,不需要出现新食物,yes=1 表示需要出现新食物
指导老师:
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
④输出成绩功能模块:
start
setfillstyle(SOLID_FILL,YEL LOW)
bar(50,15,220,35) setcolor(6) settextstyle(0,0,2)
sprintf(str,"score:%d",score)
②蛇的结构: struct Snake {
int x[N]; int y[N]; int node; int direction; int life; }snake; 结构体 Snake 用于存储蛇的基本信息。各字段的值意义如下: x[N]:保存蛇的每一节横坐标 y[N]:保存蛇的每一节纵坐标 node:存放蛇的节数 direction:保存蛇移动的方向 life:存放蛇的生命,life=0表示蛇活着,life=1表示蛇死亡 (3)函数功能描述 ①Init() 函数原型:void Init(void)
outtextxy(55,20,str)
指导老师:
end 图5 输出成绩功能模块流程图
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
⑤游戏结束功能模块:
cleardevice()
PrScore()
setcolor(RED)
settextstyle(0,0,4)
outtextxy(200,200,"GAME OVER")
二、主要仪器设备
安装了 Windows 操作系统、Turbo C 或 Visual C++的计算机。
三、实训内容和原理
贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出 现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食 物,则表示食物被吃掉,这时蛇的身体长一节,同时计 10 分,接着又出现食物,等待被蛇 吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。
Y Gameover() snake.life=1
i++
指导老师:
N ③
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
指导老师:
snake.x[0]<55||snake.x[
0]>595||snake.y[0]<55||
N
snake.y[0]>455
Y
GameOver(); snake.life=1;
N
key==LEFT&&sn ake.direction!=1
N
key==DOWN&&snak e.direction!=3
Y snake.direction=1
Y snake.direction=2
Y snake.direction=4
⑥ 图6 游戏过程功能模块流程图
指导老师:
第页
江西科技师范大学实验报告
江西科技师范大学
实验报告
课程 系别 班级 学号 姓名
报告规格
一、实验目的
四、实验方法及步骤
二、实验原理
五、实验记录及数据处理
三、实验仪器
六、误差分析及问题讨论
1. 实训一 贪吃蛇游戏
目录
2. 实训二 学生成绩管理系统 3. 4. 5. 6. 7. 8. 9.
10.
11. 12. 13. 14. 15.
food.yes=1;score+=10; PrScore()
④
⑦ ④
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
④
setcolor(4)
i=0
i<snake.node
N
Y
rectangle(snake.x[i],snake.y[i] ,snake.x[i]+10,snake.y[i]-10)
指导老师:
第页
江西科技师范大学实验报告
年级 班 号 姓名
同组姓名 实验日期 年 月 日成绩
{ int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/
}food;/*食物的结构体*/ struct Snake {
int x[N]; int y[N]; int 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();/*玩游戏具体过程*/ Close();/*图形结束*/ } /*图形驱动*/ void Init(void) { int gd=DETECT,gm; initgraph(&gd,&gm,"c:\\tc");