- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西南财经大学天府学院 贪食蛇程序设计 (一) 程 序 思 路 程序模块结构 1、初始化:场景、外边框和蛇 (初始化蛇的长度,初始化蛇的行走方向) 2、在场景中放置食物,吃完一个再出现下一个, 吃一个食物蛇身增加一节,食物不能和障碍重合 3、蛇的运动,一节跟一节 4、行走中检测蛇头不能和障碍、蛇身碰撞,也不能 超出游戏区域 5、键盘的监听,控制蛇的运动,及改变游戏状态 一、本节课需要完成的任务 程序初始化: 1、全局变量的定义(初始化游戏的速度以及得分) 2、蛇结构体的定义,食物结构体的定义 3、图形界面的初始化(Init( )函数) 游戏围墙的绘制(Draw()函数) 食物的出现(Gameplay()函数) 1、食物及蛇状态的初始化 2、食物的出现 (一)、程序初始化 ——————全局变量 (一)、程序初始化 —————结构体的定义 蛇的结构体的定义: 每一节蛇坐标的表示 蛇移动方向的表示 蛇生命的表示 蛇节数的表示 食物结构体的定义: 食物的坐标的表示 食物有无的表示 (一)、程序初始化 —————图形界面的初始化 int gd=DETECT , gm; initgraph ( gd , gm ,”c:\\Win-TC”) ; (二)、游戏边框的绘制(Draw函数) 开始画面,左上角坐标为(50,40) 右下角坐标为(610,460)的围墙 (三)、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; /*蛇身*/ (三)、Gameplay()函数: —————食物的出现 判断是否需要出现食物——判断food.yes的值 1: /*需要出现新食物*/ 随机产生食物坐标,并使坐标能被十整除 /*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ 改变food.yes的状态: 贪食蛇程序设计 (二) 二、本节课需要完成的内容 蛇的运动:先自由移动,用方向键控制蛇的方向。 程序思想: 一、蛇自由移动:在没有任何按键的时候,蛇按照初始方向向前移动 ; 二、方向键控制蛇的移动方向:用方向键控制蛇结构体里面的方向成员。同时如果不出现蛇死亡或者按ESC键,我们可以永远玩游戏。永远玩游戏这里将用到一个什么语句? Gameplay( )程序结构 while (1) { while (bioskey(1)==0) { 蛇身、蛇头坐标的改变 画出蛇,并使蛇运动 } /*end while(!bioskey(1))*/ 监听方向键及ESC键 } /*end while*/ (一)、蛇的移动 移动的思想: 1、蛇身、蛇头坐标的改变 蛇身:将蛇的第二节在屏幕中的坐标移动到第一 节,第三节中的坐标节移动到第二节…… 蛇头:随着方向键走。 2、蛇向前运动: 画出蛇,延时(gamespeed),并用用背景色去除 蛇的最后一节 1、蛇的坐标改变 for( i = snake.node-1 ; i 0; i -- ) { snake . x [i] = snake . x [i-1] ; snake . y [i] = snake . y [i-1] ; } 1、蛇的坐标改变 蛇头的坐标改变 1、方向键的表示 上 下 左 右 UP DOWN LEFT
文档评论(0)