第一步是界面的设计
首先定义一个二维数组,做出一个17*17的方阵,每个二维数组map的坐标就是方阵中的坐标,然后我们用’‘和‘ ’空格,来定义这些字符,构成一个图形界面,这个就是贪吃蛇的活动框即活动范围,如果蛇头碰到墙壁即‘’则游戏结束。
如下图
定义好界面,并printf之后,定义蛇的坐标,定义结构体struct snake,代表蛇身蛇头的坐标,并把map地图上对应坐标的字符定义为’X’(蛇身)或‘H’(蛇头),初始化蛇的长度为5.
然后接下来就遇到困难了,怎么蛇运动呢?
下面是代码
void food() { //生成食物
int x, y;
while (1) {
x = (int)(15 * rand() / (RAND_MAX + 1.0)); //随机产生一组食物坐标
y = (int)(15 * rand() / (RAND_MAX + 1.0));
if (map[x][y] == ' ') { //如果是空格则在该处生成食物
map[x][y] = 'O';
//foodx = x; //记录食物坐标
//foody = y;
break;
}
}
}
void move() { //蛇移动