西南财经大学天府学院
更新时间:2023-05-12 13:17:01 阅读量: 实用文档 文档下载
西南财经大学天府学院
贪食蛇程序设计(一)
2013-7-27
西南财经大学天府学院
西南财经大学天府学院
程序思路游戏规则: 1、蛇头不能咬蛇身--蛇头不能和蛇身发生碰撞,撞上 就gameover,包括不能反方向运动
2、蛇头不能碰障碍--撞上就gameover,包括不能走出游戏区域 3、蛇吃了食物会增加长度,食物吃掉一个才会产生新的 4、蛇只有上下左右四个行走方向
2013-7-27
西南财经大学天府学院
西南财经大学天府学院
程序模块结构1、初始化:场景、外边框和蛇
(初始化蛇的长度,初始化蛇的行走方向)2、在场景中放置食物,吃完一个再出现下一个, 吃一个食物蛇身增加一节,食物不能和障碍重合 3、蛇的运动,一节跟一节 4、行走中检测蛇头不能和障碍、蛇身碰撞,也不能
超出游戏区域5、键盘的监听,控制蛇的运动,及改变游戏状态2013-7-27 西南财经大学天府学院 3
西南财经大学天府学院
一、本节课需要完成的任务
程序初始化:
1、全局变量的定义(初始化游戏的速度以及得分)2、蛇结构体的定义,食物结构体的定义 3、图形界面的初始化(Init( )函数)
游戏围墙的绘制(Draw()函数) 食物的出现(Gameplay()函数)
1、食物及蛇状态的初始化2、食物的出现西南财经大学天府学院
2013-7-27
西南财经大学天府学院
(一)、程序初始化——————全局变量int a , b ; f1 ( int c ) { int d , e ; …d、e的 作用范围 c 的作 用范围 全 局 变 量 a、 b 的 作 用 范 围
全局变量:
是指在函数之外定义的变量,其作用范围是从 定义位置开始到源文件
}int i; main()
结束为止,其间的函数都可以使用
{int m , n ; … }2013-7-27
西南财经大学天府学院
返回 5
西南财经大学天府学院
(一)、程序初始化
蛇的结构体的定义:
—————结构体的定义(数组的定义)
每一节蛇坐标的表示
蛇移动方向的表示蛇生命的表示
蛇节数的表示
食物结构体的定义:
食物的坐标的表示食物有无的表示2013-7-27 西南财经大学天府学院
返回 6
西南财经大学天府学院
(一)、程序初始化—————图形界面的初始化
int gd=DETECT , gm; initgraph ( &gd , &gm ,”c:\\Win-TC”) ;
2013-7-27
西南财经大学天府学院
返回 7
西南财经大学天府学院
(二)、游戏边框的绘制(Draw函数)开始画面,左上角坐标为(50,40) 右下角坐标为(610,460)的围墙库函数rectangle (left, top, right , bottom ) ; (50,40)(60,50)
(600,450)
(610,460)2013-7-27 西南财经大学天府学院
返回 8
西南财经大学天府学院
(三)、Gameplay()函数:———结构体变量的使用需要出现新食物 :food.yes=1; /*1表示需要出现、0表示已存在*/ 蛇的状态:snake.life=0; /*0表示活着、1表示死亡*/
蛇默认(初始)运动方向:snake.direction=?;蛇的默认(初始)节数: snake.node=2; 蛇的默认(初始
)坐标: snake.x[0]=?;snake.y[0]=?; /*蛇头*/ snake.x[1]=90;snake.y[1]=100; /*蛇身*/
注意结构体变量成员的引用格式:2013-7-27 西南财经大学天府学院
<结构体变量> . <成员>返回 9
西南财经大学天府学院
(三)、Gameplay()函数:—————食物的出现判断是否需要出现食物——判断food.yes的值 1:/*需要出现新食物*/
随机产生食物坐标,并使坐标能被十整除/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/
改变food.yes的状态: 0 : 画出食物2013-7-27 西南财经大学天府学院
/*显示食物*/
返回 10
西南财经大学天府学院
贪食蛇程序设计(二)
2013-7-27
西南财经大学天府学院
西南财经大学天府学院
二、本节课需要完成的内容蛇的运动:先自由移动,用方向键控制蛇的方向。程序思想:
一、蛇自由移动:在没有任何按键的时候,蛇按照初始方向向前移动 ;while(bioskey(1)==0)表示无键盘输入
二、方向键控制蛇的移动方向:用方向键控制蛇结构体里面的 方向成员。同时如果不出现蛇死亡或者按ESC键,我们可以 永远玩游戏。永远玩游戏这里将用到一个什么语句?永循环 while(1)2013-7-27 西南财经大学天府学院 12
西南财经大学天府学院
Gameplay( )程序结构食物及蛇状态的初始化 while (1) { while (bioskey(1)==0) { 判断是否需要出现食物,并进行相应的操作 蛇身、蛇头坐标的改变 画出蛇,并使蛇运动 } /*end while(!bioskey(1))*/ 监听方向键及ESC键 } /*end while*/2013-7-27 西南财经大学天府学院 13
西南财经大学天府学院
(一)、蛇的移动移动的思想:1、蛇身、蛇头坐标的改变
蛇身:将蛇的第二节在屏幕中的坐标移动到第一节,第三节中的坐标节移动到第二节…… 蛇头:随着方向键走。 2、蛇向前运动: 画出蛇,延时(gamespeed),并用用背景色去除 蛇的最后一节2013-7-27 西南财经大学天府学院 14
西南财经大学天府学院
1、蛇的坐标改变蛇身的坐标改变 for( i = snake.node-1 ; i > 0; i -- ) { snake . x [i] = snake . x [i-1] ; snake . y [i] = snake . y [i-1] ; }2013-7-27 西南财经大学天府学院 15
西南财经大学天府学院
1、蛇的坐标改变蛇头的坐标改变1>、方向键的表示
上1 1: 2:
下2
左3
右4
UP DOWN LEFT RIGHT
2>、如果蛇结构体的方向成员为snake . y [0] - = 10 ; ……………
3:4:2013-7-27
…………………………西南财经大学天府学院 16
西南财经大学天府学院
2、蛇向前运动画蛇(for) delay(gamespeed); 用背景色去除蛇的最后一结:
2013-7-27
西南财经大学天府学院
西南财经大学天府学院
(二)、方向键控制蛇的移动1、接受按键:key=bioskey(0);
2、按ESC键退出游戏3、方向键改变蛇的结构体方向成员
如果key ==UP&&snake.direction!=2:snake.direction=1;
………依此………..类推…………………………
2013-7-27
西南财经大学天府学院
西南财经大学天府学院
贪食蛇程序设计(三)
2013-7-27
西
南财经大学天府学院
西南财经大学天府学院
三、本节课需要完成的内容
设置游戏规则
1、判断蛇是否撞击自己,如果撞击自己游戏就结束(调用 gameover()函数,在程序外面定义gameover()函数, 同时蛇的生命成员为1;2、判断蛇是否撞击墙壁,如果撞击墙边游戏就结束(调用 gameover()函数),同时蛇的生命成员为1; 3、判断蛇是否吃到食物,如果吃到食物,先把食物擦除,蛇 长度加1,食物的判断变量food.yes=1,分数加10,输出分 数(调用显示分数函数printscore( ),在程序外面定义 printscore( )函数);2013-7-27 西南财经大学天府学院 20
西南财经大学天府学院
判断蛇是否撞击自己
for(i=3 ; i<snake.node ; i++) { if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) { GameOver(); snake.life=1; break; } }
2013-7-27
西南财经大学天府学院
正在阅读:
西南财经大学天府学院05-12
A Brief History of English Teaching in China09-22
各品牌风冷热泵机组不同工况下的能效比10-04
区人力社保局2022年度工作计划04-25
server2008故障转移群集07-29
第23讲 电解池 金属的电化学腐蚀与防护09-27
DISC性格特质测试问卷+详细分析09-27
会议记录格式范文02-17
第20章《四边形》常考题集(24):20.3 矩形 菱形 正方形09-24
当今世界政治与经济11-09
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 西南财经大学
- 天府
- 学院
- 变压器尺寸对照表
- 铜铝复合暖气片的安装与保养常识
- 高三物理模拟试题(六)(含详细答案)
- 江苏农村信用社_江苏省农商行2013校园招聘大礼包_笔试面试经验汇总@大街网@应届生校园招聘 制作
- 波谱分析概论作业
- 遗传算法MATLAB程序设计
- 超详细安装说明_必读
- 牛津英语7B期中模拟卷B
- 毛泽东的经济哲学思想
- 装载机的定期保养与点检方法__作
- 河北省自驾游发展战略研究
- 浙高法(2004)264号人体损伤残疾程度鉴定标准(试行)
- 加多宝营销策划书 2
- 横峰县写字楼市场研究报告
- 推动物流物联网应用大有可为_访广东省物流行业协会秘书长马仁洪_沈绪明
- 1~14吴代鸣固体物理习题
- “弗兰西斯诉联合杰西银行案”——董事违反注意义务的经典案例解析
- 水泥搅拌车泵车安全操作规程
- 正能量读书报告(护士)
- PHP酒店网站管理系统毕业论文