了C中的字符数组,非常实用。10CPoi
t点,就是(xy)对11CRect矩形,就是(lefttoprightbottom)二、总体设计说明1设计思路在数据结构上,用数组存储蛇以及蛇的运动区域。在数组中,每个元素有四个云感动方向,分别为RIGHTLEFTUPDOWN在没有蛇身的区域,数组的元素值为0。在蛇身的每个节点,用一个数组元素存储当前蛇节点的运动方向。通过改变数组中元素的值来表示蛇身的移动。在程序中运用定时器来保证蛇的持续移动。每个一定的时间间隔,蛇移动一格。在设计界面时。在VisualStudioC60的环境下,建立基于对话框的工程,在工程下设计游戏界面,实现贪食蛇运行算法。在对话框中画出一个矩形,在大矩形中,用20x20的像素单位表示每一个蛇的节点。当数组节点的值不为0的时候,在大矩形中画出相应的蛇的节点矩形。并在蛇每移动一小格的时候,重绘整个窗口。在对蛇身进行绘画时。通过数组元素的值将蛇身在对话框的矩形中显示出来。在蛇身运动时,首先在蛇头位置蛇身增长一个节点,然后判断蛇头是否到达食物所在位置,若在食物所在位置,则蛇尾不减一,蛇身继续移动,若蛇头不在
4
f食物位置,则蛇尾减一,蛇身继续移动。若蛇头越界或者蛇头与蛇身重叠,则游戏结束。2程序框图操作控制:如图1所示
图1
游戏控制:如图2所示
图2
5
f3主要函数和变量:如表1表2所示
表1主要函数和变量
函数名ReDisplayvoidI
iAimm_
Directm_pAimm_
GameStatusm_
Cou
tm_
Timem_
Time1IDID_APP_ABOUTID_GAME_STARTID_APP_EXIT
所属类CS
akeViewCS
akeViewCS
akeViewCS
akeViewCS
akeViewCS
akeViewCS
akeView按钮VK_F1VK_F2VK_F4
功能刷新界面函数消息处理函数运动方向目前指向游戏是否进行计分计时功能游戏介绍游戏开始游戏结束、退出
表2按钮控件资源清单
三、代码实现1构造函数:通过定义构造函数CS
akeViewCS
akeView调用I
iGame实现游戏界面的初始化,为开始游戏做好准备,所以在开始进行游戏之前,游戏界面就已经显示完整。CS
akeViewCS
akeView……I
iGame……CS
akeViewCS
akeView
2消息处理食物位置:在函数中声明一个(xy)数对uAimXuAimY,然后执行条件循环while(1),使用随机数函数ra
d()为uAimXuAimY赋值,并在一个循环体中判断该点位置上是否有元素,若没有,则放置实物在该坐标上。voidCS
akeViewI
iAimi
tuAimXuAimYwhile1uAimXra
dm_
HeightuAimYra
dm_
Width
6
fi
tuTag0fori
ti0im_aBodyGetUpperBou
diCPoi
tuPoi
tm_aBodyGetAtiifuPoi
txuAimXuPoi
tyuAimYuTag1breakifuTag0breakm_r