日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言贪吃蛇最简单,熬书几个月,终于编出简易的贪吃蛇了,VS2013

發布時間:2024/9/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言贪吃蛇最简单,熬书几个月,终于编出简易的贪吃蛇了,VS2013 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

#include

#include

#include

#include

#define X 30

#define Y 15

void guozi(int *x, int *y);

int main(void)

{

char map[X][Y];

int x;

int y;//橫縱坐標

int i;

int j;//標記蛇頭

int p, q;//標記蛇尾

int t, d;//尋找蛇尾

int n = 4;//蛇的長度

int r;//交換變量

int c, v;//果子坐標

int map1[X][Y];

int key; //定義key,用于接收按鍵鍵值

int f=4;//記錄方向,起始方向向右 1上 2下 3左 4右

int t_time=time(NULL);//記錄時間

for (y = 0; y < Y; y++)

for (x = 0; x < X; x++)

map[x][y] = * *;

for (y = 0; y < Y;)

{

for (x = 0; x < X; x++)

map[x][y] = *-*;

if (x == 30)

break;

}

for (x = 0; x < X;)

{

for (y = 1; y

map[x][y] = *|*;

if (y == 15)

break;

}

for (y = 14; y < Y;)

{

for (x = 0; x < X; x++)

map[x][y] = *-*;

if (x == 30)

break;

}

for (x = 29; x < X;)

{

for (y = 1; y

map[x][y] = *|*;

if (y == 14)

break;

}//繪圖

for (y = 0; y < Y; y++)

for (x = 0; x < X; x++)

map1[x][y] = 0;

map1[4][2] = 1;

map1[3][2] = 2;

map1[2][2] = 3;

map1[1][2] = 4;

for (y = 0; y < Y; y++)

{

for (x = 0; x < X; x++)

{

if (map1[x][y] == 1)

map[x][y] = *o*;

else if (map1[x][y]>1)

map[x][y] = ***;

}

}

guozi(&c, &v);//生成果子

while (map1[c][v]>0 && (map[c][v] == *|* || map[c][v] == *-*))

{guozi(&c, &v);

}//描繪果子

if (map1[c][v] == 0 && map[c][v] != *|* && map[c][v] != *-*)

{

map1[c][v] = -1;

map[c][v] = ***;

}

for (y = 0; y < Y; y++)

{

for (x = 0; x < X; x++)

printf("%c", map[x][y]);

printf("\n");

}//畫蛇

i = 4;

j = 2;//標記蛇頭

p = 1;

q = 2;//標記蛇尾

while (1)

{

while (_kbhit() == 0)

if (t_time < time(NULL))

{

if (f == 4)

{

if (i == 28)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i + 1][j] == 2)

{

break;

}

if (map1[i + 1][j] > 2)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i + 1][j] == -1)

{

n++;

map1[i + 1][j] = 1;

map1[i][j] = n;

guozi(&c, &v);//生成果子

while (map1[c][v] > 0 || map[c][v] == *|* || map[c][v] == *-*)

{

guozi(&c, &v);

}//描繪果子

map1[c][v] = -1;

map[c][v] = ***;

goto b4;

}

map1[i + 1][j] = 1;//蛇頭位移

map1[i][j] = map1[p][q];//蛇尾遷入

map1[p][q] = 0;//原蛇尾置零,擦掉蛇尾

b4:while (map1[i][j] > 2)

{

for (t = 0; t < X; t++)

for (d = 0; d < Y; d++)

{

if (map1[t][d] == map1[i][j] - 1 && map1[t][d] != 1)

{

p = t; q = d;//尋找新蛇尾

r = map1[i][j];//新舊蛇尾交換

map1[i][j] = map1[p][q];

map1[p][q] = r;

}

}

}

i++;

for (t = 0; t < X; t++)

{

for (d = 0; d < Y; d++)

{

if (map1[t][d] == n)

{

p = t; q = d;//尋找新蛇尾

}

}

}

t_time = time(NULL);

}//*******************************自動向右

if (f == 3)

{

if (i == 1)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i - 1][j] == 2)

{

break;

}

if (map1[i - 1][j] > 2)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i - 1][j] == -1)

{

n++;

map1[i - 1][j] = 1;

map1[i][j] = n;

guozi(&c, &v);//生成果子

while (map1[c][v] > 0 || map[c][v] == *|* || map[c][v] == *-*)

{

guozi(&c, &v);

}//描繪果子

map1[c][v] = -1;

map[c][v] = ***;

goto b3;

}

map1[i - 1][j] = 1;//蛇頭位移

map1[i][j] = map1[p][q];//蛇尾遷入

map1[p][q] = 0;//原蛇尾置零,擦掉蛇尾

b3:while (map1[i][j] > 2)

{

for (t = 0; t < X; t++)

for (d = 0; d < Y; d++)

{

if (map1[t][d] == map1[i][j] - 1 && map1[t][d] != 1)

{

p = t; q = d;//尋找新蛇尾

r = map1[i][j];//新舊蛇尾交換

map1[i][j] = map1[p][q];

map1[p][q] = r;

}

}

}

i--;

for (t = 0; t < X; t++)

{

for (d = 0; d < Y; d++)

{

if (map1[t][d] == n)

{

p = t; q = d;//尋找新蛇尾

}

}

}

}//******************自動向左

if (f == 1)

{

if (j == 1)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i][j - 1] == 2)

{

break;

}

if (map1[i][j - 1] > 2)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i][j - 1] == -1)

{

n++;

map1[i][j - 1] = 1;

map1[i][j] = n;

guozi(&c, &v);//生成果子

while (map1[c][v] > 0 || map[c][v] == *|* || map[c][v] == *-*)

{

guozi(&c, &v);

}//描繪果子

map1[c][v] = -1;

map[c][v] = ***;

goto b1;

}

map1[i][j - 1] = 1;//蛇頭位移

map1[i][j] = map1[p][q];//蛇尾遷入

map1[p][q] = 0;//原蛇尾置零,擦掉蛇尾

b1:while (map1[i][j] > 2)

{

for (t = 0; t < X; t++)

for (d = 0; d < Y; d++)

{

if (map1[t][d] == map1[i][j] - 1 && map1[t][d] != 1)

{

p = t; q = d;//尋找新蛇尾

r = map1[i][j];//新舊蛇尾交換

map1[i][j] = map1[p][q];

map1[p][q] = r;

}

}

}

j--;

for (t = 0; t < X; t++)

{

for (d = 0; d < Y; d++)

{

if (map1[t][d] == n)

{

p = t; q = d;//尋找新蛇尾

}

}

}

}//***********************************自動向上

if (f == 2)

{

if (j == 13)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i][j + 1] == 2)

{

break;

}

if (map1[i][j + 1] > 2)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i][j + 1] == -1)

{

n++;

map1[i][j + 1] = 1;

map1[i][j] = n;

guozi(&c, &v);//生成果子

while (map1[c][v] > 0 || map[c][v] == *|* || map[c][v] == *-*)

{

guozi(&c, &v);

}//描繪果子

map1[c][v] = -1;

map[c][v] = ***;

goto b2;

}

map1[i][j + 1] = 1;//蛇頭位移

map1[i][j] = map1[p][q];//蛇尾遷入

map1[p][q] = 0;//原蛇尾置零,擦掉蛇尾

b2:while (map1[i][j] > 2)

{

for (t = 0; t < X; t++)

for (d = 0; d < Y; d++)

{

if (map1[t][d] == map1[i][j] - 1 && map1[t][d] != 1)

{

p = t; q = d;//尋找新蛇尾

r = map1[i][j];//新舊蛇尾交換

map1[i][j] = map1[p][q];

map1[p][q] = r;

}

}

}

j++;

for (t = 0; t < X; t++)

{

for (d = 0; d < Y; d++)

{

if (map1[t][d] == n)

{

p = t; q = d;//尋找新蛇尾

}

}

}

}//**************************自動向下

for (y = 0; y < Y; y++)

{

for (x = 0; x < X; x++)

{

if (map1[x][y] == 0)

map[x][y] = * *;

if (map1[x][y] == 1)

map[x][y] = *o*;

else if (map1[x][y]>1)

map[x][y] = ***;

}

}

for (y = 0; y < Y;)

{

for (x = 0; x < X; x++)

map[x][y] = *-*;

if (x == 30)

break;

}

for (x = 0; x < X;)

{

for (y = 1; y

map[x][y] = *|*;

if (y == 15)

break;

}

for (y = 14; y < Y;)

{

for (x = 0; x < X; x++)

map[x][y] = *-*;

if (x == 30)

break;

}

for (x = 29; x < X;)

{

for (y = 1; y

map[x][y] = *|*;

if (y == 14)

break;

}//繪圖

system("cls");

for (y = 0; y < Y; y++)

{

for (x = 0; x < X; x++)

printf("%c", map[x][y]);

printf("\n");

}//畫蛇

t_time = time(NULL);

}

key = _getch();

switch (key)

{

case 72:

if (j == 1)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i][j - 1] == 2)

{

break;

}

if (map1[i][j - 1] > 2)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i][j - 1] == -1)

{

n++;

map1[i][j - 1] = 1;

map1[i][j] = n;

guozi(&c, &v);//生成果子

while (map1[c][v]>0 || map[c][v] == *|* || map[c][v] == *-*)

{

guozi(&c, &v);

}//描繪果子

map1[c][v] = -1;

map[c][v] = ***;

goto a1;

}

map1[i][j - 1] = 1;//蛇頭位移

map1[i][j] = map1[p][q];//蛇尾遷入

map1[p][q] = 0;//原蛇尾置零,擦掉蛇尾

a1:while (map1[i][j] > 2)

{

for (t = 0; t < X; t++)

for (d = 0; d < Y; d++)

{

if (map1[t][d] == map1[i][j]-1&&map1[t][d]!=1)

{

p = t; q = d;//尋找新蛇尾

r = map1[i][j];//新舊蛇尾交換

map1[i][j] = map1[p][q];

map1[p][q] = r;

}

}

}

j--;

for (t = 0; t < X; t++)

{

for (d = 0; d < Y; d++)

{

if (map1[t][d] == n)

{

p = t; q = d;//尋找新蛇尾

}

}

}

f = 1;

break;

case 80:if (j == 13)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i][j + 1] == 2)

{

break;

}

if (map1[i][j + 1] > 2)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i][j + 1] == -1)

{

n++;

map1[i][j + 1] = 1;

map1[i][j] = n;

guozi(&c, &v);//生成果子

while (map1[c][v]>0 || map[c][v] == *|* || map[c][v] == *-*)

{

guozi(&c, &v);

}//描繪果子

map1[c][v] = -1;

map[c][v] = ***;

goto a2;

}

map1[i][j + 1] = 1;//蛇頭位移

map1[i][j] = map1[p][q];//蛇尾遷入

map1[p][q] = 0;//原蛇尾置零,擦掉蛇尾

a2:while (map1[i][j] > 2)

{

for (t = 0; t < X; t++)

for (d = 0; d < Y; d++)

{

if (map1[t][d] == map1[i][j] - 1 && map1[t][d] != 1)

{

p = t; q = d;//尋找新蛇尾

r = map1[i][j];//新舊蛇尾交換

map1[i][j] = map1[p][q];

map1[p][q] = r;

}

}

}

j++;

for (t = 0; t < X; t++)

{

for (d = 0; d < Y; d++)

{

if (map1[t][d] == n)

{

p = t; q = d;//尋找新蛇尾

}

}

}

f = 2; break;

case 75:if (i == 1)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i - 1][j] == 2)

{

break;

}

if (map1[i - 1][j] > 2)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i-1][j] == -1)

{

n++;

map1[i-1][j] = 1;

map1[i][j] = n;

guozi(&c, &v);//生成果子

while (map1[c][v]>0 || map[c][v] == *|* || map[c][v] == *-*)

{

guozi(&c, &v);

}//描繪果子

map1[c][v] = -1;

map[c][v] = ***;

goto a3;

}

map1[i-1][j] = 1;//蛇頭位移

map1[i][j] = map1[p][q];//蛇尾遷入

map1[p][q] = 0;//原蛇尾置零,擦掉蛇尾

a3:while (map1[i][j] > 2)

{

for (t = 0; t < X; t++)

for (d = 0; d < Y; d++)

{

if (map1[t][d] == map1[i][j] - 1 && map1[t][d] != 1)

{

p = t; q = d;//尋找新蛇尾

r = map1[i][j];//新舊蛇尾交換

map1[i][j] = map1[p][q];

map1[p][q] = r;

}

}

}

i--;

for (t = 0; t < X; t++)

{

for (d = 0; d < Y; d++)

{

if (map1[t][d] == n)

{

p = t; q = d;//尋找新蛇尾

}

}

}

f = 3; break;

case 77:

if (i == 28)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i + 1][j] == 2)

{

break;

}

if (map1[i + 1][j] > 2)

{

system("cls");

printf("Game over.\n");

system("pause");

return 0;

}

if (map1[i+1][j] == -1)

{

n++;

map1[i+1][j] = 1;

map1[i][j] = n;

guozi(&c, &v);//生成果子

while (map1[c][v]>0 || map[c][v] == *|* || map[c][v] == *-*)

{

guozi(&c, &v);

}//描繪果子

map1[c][v] = -1;

map[c][v] = ***;

goto a4;

}

map1[i + 1][j] = 1;//蛇頭位移

map1[i][j] = map1[p][q];//蛇尾遷入

map1[p][q] = 0;//原蛇尾置零,擦掉蛇尾

a4:while (map1[i][j] > 2)

{

for (t = 0; t < X; t++)

for (d = 0; d < Y; d++)

{

if (map1[t][d] == map1[i][j] - 1 && map1[t][d] != 1)

{

p = t; q = d;//尋找新蛇尾

r = map1[i][j];//新舊蛇尾交換

map1[i][j] = map1[p][q];

map1[p][q] = r;

}

}

}

i++;

for (t = 0; t < X; t++)

{

for (d = 0; d < Y; d++)

{

if (map1[t][d] == n)

{

p = t; q = d;//尋找新蛇尾

}

}

}

f = 4;

break;

case 27:return 0; //鍵值27為Esc鍵,當按下這個鍵時退出程序

}

for (y = 0; y < Y; y++)

{

for (x = 0; x < X; x++)

{

if (map1[x][y] == 0)

map[x][y] = * *;

if (map1[x][y] == 1)

map[x][y] = *o*;

else if (map1[x][y]>1)

map[x][y] = ***;

}

}

for (y = 0; y < Y;)

{

for (x = 0; x < X; x++)

map[x][y] = *-*;

if (x == 30)

break;

}

for (x = 0; x < X;)

{

for (y = 1; y

map[x][y] = *|*;

if (y == 15)

break;

}

for (y = 14; y < Y;)

{

for (x = 0; x < X; x++)

map[x][y] = *-*;

if (x == 30)

break;

}

for (x = 29; x < X;)

{

for (y = 1; y

map[x][y] = *|*;

if (y == 14)

break;

}//繪圖

system("cls");

for (y = 0; y < Y; y++)

{

for (x = 0; x < X; x++)

printf("%c", map[x][y]);

printf("\n");

}//畫蛇

}

return 0;

}

void guozi(int *x, int *y)

{

srand((unsigned int)time(0));

*x = rand() % 28 + 1;

*y = rand() % 13 + 1;

}

總結

以上是生活随笔為你收集整理的c语言贪吃蛇最简单,熬书几个月,终于编出简易的贪吃蛇了,VS2013的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。