贪食蛇程序设计 (一)_第1页
贪食蛇程序设计 (一)_第2页
贪食蛇程序设计 (一)_第3页
贪食蛇程序设计 (一)_第4页
贪食蛇程序设计 (一)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

2020 4 6 西南财经大学天府学院 1 贪食蛇程序设计 一 2020 4 6 西南财经大学天府学院 2 程序思路 游戏规则 1 蛇头不能咬蛇身 蛇头不能和蛇身发生碰撞 撞上就gameover 包括不能反方向运动2 蛇头不能碰障碍 撞上就gameover 包括不能走出游戏区域3 蛇吃了食物会增加长度 食物吃掉一个才会产生新的4 蛇只有上下左右四个行走方向 2020 4 6 西南财经大学天府学院 3 程序模块结构 1 初始化 场景 外边框和蛇 初始化蛇的长度 初始化蛇的行走方向 2 在场景中放置食物 吃完一个再出现下一个 吃一个食物蛇身增加一节 食物不能和障碍重合3 蛇的运动 一节跟一节4 行走中检测蛇头不能和障碍 蛇身碰撞 也不能超出游戏区域5 键盘的监听 控制蛇的运动 及改变游戏状态 2020 4 6 西南财经大学天府学院 4 一 本节课需要完成的任务 程序初始化 1 全局变量的定义 初始化游戏的速度以及得分 2 蛇结构体的定义 食物结构体的定义3 图形界面的初始化 Init 函数 游戏围墙的绘制 Draw 函数 食物的出现 Gameplay 函数 1 食物及蛇状态的初始化2 食物的出现 2020 4 6 西南财经大学天府学院 5 一 程序初始化 全局变量 全局变量 是指在函数之外定义的变量 其作用范围是从定义位置开始到源文件结束为止 其间的函数都可以使用 inta b f1 intc intd e inti main intm n 返回 2020 4 6 西南财经大学天府学院 6 一 程序初始化 结构体的定义 蛇的结构体的定义 每一节蛇坐标的表示蛇移动方向的表示蛇生命的表示蛇节数的表示食物结构体的定义 食物的坐标的表示食物有无的表示 数组的定义 返回 2020 4 6 西南财经大学天府学院 7 一 程序初始化 图形界面的初始化 intgd DETECT gm initgraph 返回 2020 4 6 西南财经大学天府学院 8 二 游戏边框的绘制 Draw函数 开始画面 左上角坐标为 50 40 右下角坐标为 610 460 的围墙 库函数rectangle left top right bottom 50 40 610 460 返回 2020 4 6 西南财经大学天府学院 9 三 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 蛇身 注意结构体变量成员的引用格式 返回 2020 4 6 西南财经大学天府学院 10 三 Gameplay 函数 食物的出现 判断是否需要出现食物 判断food yes的值1 需要出现新食物 随机产生食物坐标 并使坐标能被十整除 食物随机出现后必须让食物能够在整格内 这样才可以让蛇吃到 改变food yes的状态 0 显示食物 画出食物 返回 2020 4 6 西南财经大学天府学院 11 贪食蛇程序设计 二 2020 4 6 西南财经大学天府学院 12 二 本节课需要完成的内容 蛇的运动 先自由移动 用方向键控制蛇的方向 程序思想 一 蛇自由移动 在没有任何按键的时候 蛇按照初始方向向前移动 二 方向键控制蛇的移动方向 用方向键控制蛇结构体里面的方向成员 同时如果不出现蛇死亡或者按ESC键 我们可以永远玩游戏 永远玩游戏这里将用到一个什么语句 永循环while 1 while bioskey 1 0 表示无键盘输入 2020 4 6 西南财经大学天府学院 13 Gameplay 程序结构 while 1 while bioskey 1 0 蛇身 蛇头坐标的改变画出蛇 并使蛇运动 endwhile bioskey 1 监听方向键及ESC键 endwhile 判断是否需要出现食物 并进行相应的操作 食物及蛇状态的初始化 2020 4 6 西南财经大学天府学院 14 一 蛇的移动 移动的思想 1 蛇身 蛇头坐标的改变蛇身 将蛇的第二节在屏幕中的坐标移动到第一节 第三节中的坐标节移动到第二节 蛇头 随着方向键走 2 蛇向前运动 画出蛇 延时 gamespeed 并用用背景色去除蛇的最后一节 2020 4 6 西南财经大学天府学院 15 1 蛇的坐标改变 for i snake node 1 i 0 i snake x i snake x i 1 snake y i snake y i 1 蛇身的坐标改变 2020 4 6 西南财经大学天府学院 16 1 蛇的坐标改变 蛇头的坐标改变1 方向键的表示上下左右UPDOWNLEFTRIGHT12342 如果蛇结构体的方向成员为1 snake y 0 10 2 3 4 2020 4 6 西南财经大学天府学院 17 2 蛇向前运动 画蛇 for delay gamespeed 用背景色去除蛇的最后一结 2020 4 6 西南财经大学天府学院 18 1 接受按键 key bioskey 0 2 按ESC键退出游戏3 方向键改变蛇的结构体方向成员如果key UP snake direction 2 snake direction 1 依此 类推 二 方向键控制蛇的移动 2020 4 6 西南财经大学天府学院 19 贪食蛇程序设计 三 2020 4 6 西南财经大学天府学院 20 三 本节课需要完成的内容 设置游戏规则1 判断蛇是否撞击自己 如果撞击自己游戏就结束 调用gameover 函数 在程序外面定义gameover 函数 同时蛇的生命成员为1 2 判断蛇是否撞击墙壁 如果撞击墙边游戏就结束 调用gameover 函数 同时蛇的生命成员为1 3 判断蛇是否吃到食物 如果吃到食物 先把食物擦除 蛇长度加1 食物的判断变量food yes 1 分数加10 输出分数 调用显示分数函数printscore 在程序外面定义printscore 函数 2020 4 6 西南财经大学天府学院 21 判断蛇是否撞击自己 for i 3 i snake node i if snake x i snake x 0 2020 4 6 西南财经大学天府学院 22 判断蛇是否撞击墙壁 判断蛇头坐标是否撞击墙壁若撞击 调用GameOver 并将蛇的状态设置为1 2020 4 6 西南财经大学天府学院 23 判断蛇是否吃到食物 判断蛇头与食物坐标是否相同相同 擦除食物蛇的身体长一节改变food yes的状态score增加10输出新得分 PrScore 2020 4 6 西南财经大学天府学院 24 Gameover 函数 使用到的库函数 cleardevice 图形模式下清除屏幕上的内容 settextstyle 设置图形模式下字符显示的字体 方向和大小 outtextxy 图形模式下在x y坐标位置显示一行字符串 2020 4 6 西南财经大学天府学院 25 Printscore 函数 用到的库函数 setfillstyle pattern color 设置填充模式和填充颜色 bar left top right bottom 画矩形 并填充矩形内部区域 用于分数的底色 setcolor 6 用于分数的底色 settextstyle 0 0 2 sprintf str score d score 把要输出的字符转移给字符数组str str要先定义 outtextxy 55 20 str 输出分数 2020 4 6 西南财经大学天府学院 26 Gameplay 食物及蛇状态的初始化Printscore while 1 while bioskey 1 0 判断是否需要出现食物蛇身 蛇头坐标的改变判断蛇是否撞击自己判断蛇是否撞击墙壁if snake life 1 break 判断蛇是否吃到食物画出蛇 并使蛇运动 endwhile bioskey 1 监听方向键

温馨提示

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

评论

0/150

提交评论