用c++写一个贪吃蛇代码
时间: 2023-03-15 13:28:31 浏览: 109
#include<stdio.h>
int main()
{
int i, j, row, col, food_i, food_j;
int length;
int direction;
int score;
int key;
int flag;
int move;
int snake_x[100], snake_y[100];
// i, j 代表移动的坐标
// row, col代表地图的行列
row = 20;
col = 20;
// food_i, food_j 代表食物的坐标
food_i = 10;
food_j = 30;
// length表示贪吃蛇的长度
length = 5;
// direction表示贪吃蛇的移动方向
direction = 0;
// score表示分数
score = 0;
// key表示按键
key = 0;
// flag表示游戏是否结束
flag = 0;
// move表示每次移动的格数
move = 1;
// 初始化贪吃蛇
for (i = 0; i < length; i++)
{
snake_x[i] = 10 + i;
snake_y[i] = 10;
}
// 游戏主循环
while (flag == 0)
{
// 根据按键方向改变移动方向
switch (key)
{
case 0:
direction = 0;
break;
case 1:
direction = 1;
break;
case 2:
direction = 2;
break;
case 3:
direction = 3;
break;
}
// 根据方向改变坐标
switch (direction)
{
case 0:
i = i - move;
break;
case 1:
j = j + move;
break;
case 2:
i = i + move;
break;
case 3:
j = j - move;
break;
}
// 判断是否吃到食物
if (i == food_i && j == food_j)
{
length++;
score++;
// 食物位置随机生成
food_i = rand() % row;
food_j = rand() % col;
}
// 判断是否撞到墙壁
if (i < 0 || i > row - 1 || j < 0 || j > col - 1)
{
flag = 1;
}
// 判断是否撞到自己
for (k = 0; k < length - 1; k++)
{
if (i == snake_x[k] && j == snake_y[k])
{
flag = 1;
}
}
// 将新坐标赋值给贪吃蛇数组
snake_x[length - 1] = i;
snake_y[length - 1] = j;
}
printf("Game Over! Your Score is %d\n", score);
return 0;
}我理解了,你想要我写一段贪吃蛇的代码,那么我可以尝试用C语言来写一段贪吃蛇的代码。
阅读全文