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

#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相关推荐

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

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

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

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

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

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

  4. java gui怎么做游戏_Java GUI编程之贪吃蛇游戏简单实现方法【附demo源码下载】

    本文实例讲述了Java GUI编程之贪吃蛇游戏简单实现方法.分享给大家供大家参考,具体如下: 例子简单,界面简陋 请见谅 项目结构如下 Constant.jvava 代码如下: package sna ...

  5. python贪吃蛇最简单代码_利用python实现简易版的贪吃蛇游戏(面向python小白)

    引言 作为python 小白,总是觉得自己要做好百分之二百的准备,才能开始写程序.以至于常常整天在那看各种语法教程,学了几个月还是只会print('hello world'). 这样做效率太低,正确的 ...

  6. c语言小游戏 精简_一个简易的贪吃蛇小游戏C语言源码

    /* *程序名称:贪吃蛇v2.1 *程序描述:一个简易的贪吃蛇小游戏 *版本信息:v2.1 *v1.1版本更新:1:加入菜单选择项 *v1.2版本更新:1:修复菜单选择bug *v1.3班本更新:1: ...

  7. 记事本贪吃蛇游戏代码_厉害了,程序员28行代码写贪吃蛇游戏,附源码!

    对于贪吃蛇游戏,大家基本上都玩过,但是作为一个程序员,大家是否想过要自己去写一个贪吃蛇,毕竟玩别人写的游戏和自己写的游戏是两种截然不同的感受,而且也可以通过制作来提升自己的技术! 其实贪吃蛇的逻辑并不 ...

  8. 贪吃蛇博弈算法python_算法应用实践:如何用Python写一个贪吃蛇AI

    原标题:算法应用实践:如何用Python写一个贪吃蛇AI 前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势 ...

  9. ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)

    决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...

最新文章

  1. 沈腾自比元宇宙DogKing,小扎变身「光头强」!Meta推出3D化身
  2. 某口腔app发现了不友善词汇(f*ckMobile)
  3. 计算机程序水仙花数,水仙花数
  4. CSS实现 全屏 遮罩
  5. 如何解决C/C++中stack overflow问题
  6. Material Design(十一)--CoordinatorLayout和自定义视图
  7. Javascript实现整站黑白效果(兼容IE/FF等浏览器)
  8. loading动画_超干货 CSS3/SVG Loading动画集合
  9. Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
  10. 使用HTML和CSS格式化DBMail
  11. 游戏筑基开开发之指针数组及数组指针详解(C语言)
  12. Quartz与Spring集成 Job如何自动注入Spring容器托管的对象
  13. 【大数据部落】用R语言挖掘Twitter数据
  14. 成田机场坐access到品川_东京旅游---成田机场到东京市内的最全交通指南!
  15. Win7 SP1 安装中文语言包
  16. 中国剩余定理证明及代码实现
  17. vue 动态 Prop
  18. 【模拟器】华三模拟器HCL安装操作指导
  19. 如何清除windowsoffice KMS激活
  20. 人生规划:20岁到60岁我该干什么(zz)

热门文章

  1. 从零开始搭建spring-cloud(4) ----Hystrix
  2. Python 开发一个间谍小程序
  3. 这是一位川大零基础转行 Python 的人生勇士
  4. mysql linux 下载安装,Mysql 下载 安装 for linux
  5. php 动态显示数字,php – 如何动态创建具有指定数字的图像?
  6. springsecurity sessionregistry session共享_要学就学透彻!Spring Security 中 CSRF 防御源码解析...
  7. 机器学习实战-决策树-22
  8. 新手入门Web安全学习Week7
  9. sublime text3的php代码合法检查
  10. 2017 ACM/ICPC Asia Regional Qingdao Online 记录