我已经在单文档的客户区画好了50*50的格子,我想象贪吃蛇源代码里一样随机产生食物,每个食物填充一个小格,鈳我怎么能随机产生食物并很准确的每次填充正好一个小格?
每次循环给出一个 a=rand(2500) 函数判断,对于得到的值按照
然后在你的添图函数中輸入就可以了。
(你总有添格函数吧该函数总有关于坐标的参数吧)
一个二微数组就代表一个50*50的格子,比如1,1就代表第一个格子,
然后画的时候用1*x,1*y分别是格子的长很宽,这样的话你只要产生一个50之内的随机数就可以了!用随机函数!
随机函数不是用rand()么?里面可以带参数么?好象不行哦.
那我怎么确定随机的范围?
你可以把屏幕分成食物那么大小的n个方格,那么你就可以求出每个方格的Rect,然后把他放在一个大小是n的数组里
rand()求的是随机数,但是得到的数是会很大的你可以把得到的这个数除以n在取余,不就在n的范围内了吗
兄弟,有个很类似的程序叫穿纽扣游戏你看看里面关于这部分的是怎么处理的吧!
好了,该给兄弟们分了吧!
【阐述课程设计应该完成的功能】
使用键盘的上下左右来控制蛇的运动方向,ESC键退出并显示得分。
本游戏中涉及的主要数据结构是如何表示运动的蛇、食物状态等问题
2.1.1 从游戏参考画面中我们可以看到,贪吃蛇源代码的身体是一节节的由一个个大小相同的方块组成,那麼我们可以用一个(x,y)坐标为左上角的、固定宽度的正方形来表示一节蛇身为表示连续的多节身体,那么我们可以采用数组(或链表或线性表)等数据结构来表示。下面以数组方式为例:
贪吃蛇源代码是在不断的运动的我们研究蛇的运动可以发现这样的特点:
根据上媔的情况我们可以设计蛇的数据结构如下:
/*游戏速度和结束的选择菜单*/
/*一个存放点坐标的结构体*/
/*用来模拟蛇状态的结构体*/
/*比较形象的把蛇抽象为一个数据类型*/
/*用来模拟食物状态的结构体*/
\\用来保存最后一节蛇的位置
\\初始化程序,给一些初始值赋值
【遇到的问题及解决方法分析等】
解决方法:每次都用一块黑的矩形覆盖
解决方法:循環delay
解决方法:依次判断若重叠则重新生成食物