该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#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;

}

vs用c语言写贪吃蛇,熬书几个月,终于编出简易的贪吃蛇了,VS2013相关推荐

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

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define X 30 #define Y 15 void guozi(int ...

  2. c语言做贪吃蛇vs2015,熬书几个月,终于编出简易的贪吃蛇了,VS2013

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define X 30 #define Y 15 void guozi(int ...

  3. 简易贪吃蛇c语言贴吧,熬书几个月,终于编出简易的贪吃蛇了,VS2013

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define X 30 #define Y 15 void guozi(int ...

  4. 用c语言写一个唐诗的程序,文言文编程95后又出新作,在287051行古诗中找出了“唐诗幻方”!...

    还记得那位用文言文编程的中国小伙吗? 图 | 文言文编程(来源:受访者) 2019 年 ,22 岁的上海小伙黄令东用文言文编程,当时他还在读大四,凭借该项目小伙子瞬间"原地出道". ...

  5. Go语言11岁了,网友:他喵的,终于确定出「泛型」了

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 比Python更快,比Java更简洁,还有C++没有的GC(垃圾收集). 谷歌开发的编程语言Go,迎来了它11岁的生日! 那么在这一年的时间 ...

  6. 写了4年博客,我终于也出了一本书。

    缘起 很多早期关注过我的朋友们或许知道,我是从2015年开始写博客的,到现在也坚持了4年多的时间. 最近看了一下自己的博客发文记录,共发表了369篇文章,平均每4天发表一篇.个人博客阅读量达到了300 ...

  7. eclipse不支持泛型_Go语言11岁了,网友:他喵的,终于确定出「泛型」了

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 比Python更快,比Java更简洁,还有C++没有的GC(垃圾收集). 谷歌开发的编程语言Go,迎来了它11岁的生日! 那么在这一年的时间 ...

  8. c语言中怎么暂停一个一个游戏,求助:最近在linux下用c语言写了一个贪吃蛇程序,有几个问题,第一:贪吃蛇怎么实现暂停,第二:有时候同时输入上下左右中的两个键就会直接游戏结束...

    求助:最近在linux下用c语言写了一个贪吃蛇程序,有几个问题,第一:贪吃蛇怎么实现暂停,第二:有时候同时输入上下左右中的两个键就会直接游戏结束 /* 以下是主要的逻辑代码,还有些.c和.h就没发了 ...

  9. 语言写贪吃蛇墙角符号_从零基础到拥抱人工智能,您的孩子可能就差一个贪吃蛇游戏...

    去年寒假档,有一部孩子们喜欢的电影上映. 不知道家长们有没有陪孩子一起看过这部<无敌破坏王2:大闹互联网> 在电影中有一个印象深刻的镜头, 吃豆人.泡泡龙.还有贪吃蛇 他们都因为很久没有客 ...

最新文章

  1. 阿里云云原生中间件 2021 年春季校招实习启动啦~
  2. zerodivisionerror什么意思python-python里的raise是什么意思
  3. DOM的事件函数this和className等样式注意点
  4. 洛谷 P1111 修复公路(最小生成树)
  5. 降低http请求次数
  6. [密码学] 消息认证码基础
  7. oracle创建函数语句,Oracle 创建函数与存储过程语句积累
  8. Java强引用、软引用、弱引用、虚引用的区别
  9. 8148和8127中的ezsdk和dvrsdk
  10. 大话数据结构11:队列 链表结构
  11. 引用Nuget包Microsoft.EntityFrameworkCore.Tools.DotNet报错
  12. 回文判断(栈+队列)
  13. 景深决定照相机什么特性_手机为什么达不到相机的景深效果?
  14. STM32F103 PA8不能输出PWM波问题
  15. windows 和 linux服务器环境下j2sdk 的安装和环境设置
  16. 1.窗体与界面设计-菜单应用实例
  17. php5.2、5.3和5.4,Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置
  18. html5 图形水平运动,【分享】HTML5的Canvas制作3D动画效果分享
  19. cron表达式 每个月的最后一个工作日的另一种解法
  20. sqrt函数java_Java BigDecimal sqrt()用法及代码示例

热门文章

  1. OpenStack绝非昨日黄花 | 人物志
  2. 一篇文章带你快速理解微服务架构,由浅入深带你走进微服务架构的核心
  3. Cloud一分钟 | 一脚踏入云计算2.0时代,京东云这回拼的是“朋友 圈”;8400万元私有云招标...
  4. 谷歌Edge TPU:将机器学习引入边缘,撬动边缘计算/IOT大“地球”
  5. 基于Mesos/Docker构建数据处理平台
  6. Linux打开bashrc权限不够,bash-4.2$ bash: /home/test/.bashrc: 权限不够
  7. python冒泡排序实验报告_python中的冒泡排序
  8. SpringCloudGateway实现金丝雀发布_05
  9. 企业实战_03_MyCat下载、安装、启动
  10. js判断一个字符串 是否存在在另一个字符串