简易贪吃蛇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相关推荐
- c语言贪吃蛇最简单,熬书几个月,终于编出简易的贪吃蛇了,VS2013
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define X 30 #define Y 15 void guozi(int ...
- c语言做贪吃蛇vs2015,熬书几个月,终于编出简易的贪吃蛇了,VS2013
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define X 30 #define Y 15 void guozi(int ...
- vs用c语言写贪吃蛇,熬书几个月,终于编出简易的贪吃蛇了,VS2013
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define X 30 #define Y 15 void guozi(int ...
- C语言贪吃蛇游戏代码,贪吃蛇C语言代码实现大全
一.C语言贪吃蛇代码实现前言 设计贪吃蛇游戏的主要目的是让大家夯实C语言基础,训练编程思维,培养解决问题的思路,领略多姿多彩的C语言. 贪吃蛇是非常经典的一款游戏,本次我们模拟在控制台实现贪吃蛇游戏, ...
- 贪吃蛇c语言经典程序下载,c语言贪吃蛇源码
c语言贪吃蛇源码是一款非常经典的休闲益智游戏.c语言贪吃蛇源码游戏画面采用了像素风格,并添加了5中游戏模式,为玩家带来更有趣的游戏体验,有兴趣的玩家可以下载c语言贪吃蛇源码玩玩,回忆下童年的乐趣. 游 ...
- c语言课程设计贪吃蛇报告,贪吃蛇C语言课程设计报告.doc
贪吃蛇C语言课程设计报告 贪吃蛇游戏设计 姓名: 张力 学号: 完成日期: 月 日 一.设计目的 贪吃蛇游戏程序功能的实现主要是建立在二维数组和图形界面的应用上,通过编写游戏程序能够熟悉掌握相关数组和 ...
- 贪吃蛇c语言 游戏中会出现障碍物,贪吃蛇C语言游戏代码.doc
贪吃蛇C语言游戏代码 //开始编写游戏需要的类 #include //EasyX_2011惊蛰版(绘图库) #include #include #include #define UP1 #define ...
- 贪吃蛇C语言代码(简单易懂)
//游戏说明; //游戏由基本的C语言和easyx制作而成 //在玩游戏之前,你需要下载一个VS并创建一个空项目 //然后再在源文件里创造一个后缀为.cpp的源文件 //由于easyx(一种绘图语言) ...
- 贪吃蛇_C语言_链表实现_SCAU课程设计
个人大一下课程设计作品,本文中直接附上源代码(通过visual stdio 2019 实现 ): 课题:贪吃蛇(链表实现~) 语言:C/C++ 运行环境(软件):Visual Stdio 2019( ...
最新文章
- DOS批处理高级教程精选(六)
- python链接安卓 跳一跳
- SVM学习笔记5-SMO
- 通过WM_COPYDATA消息完成进程间通信
- Java Spring里getBean方法的实现
- RelativeDateFormat时间计算工具类
- 图像语义分割 -- UNET++
- C语言车辆管理报告,用c语言编的车辆管理
- 【OpenCV人脸识别2】从视频中检测人脸
- Kafka.net使用编程入门
- oracle解析关闭,oracle起动和关闭详解(转)
- 安装autocad2006出错
- linux运维搭建官网,Linux运维学习之LAMP搭建个人博客网站
- mfc通过com控制AutoCAD导出jpg文件
- arma 预测 matlab代码,求助:ARMA模型进行预测
- 百度AI-语音识别图片搜索(Java)
- 安装和卸载office以及激活电脑系统血淋淋的教训
- Dolby Digital(Dolby Surround Digital,杜比数码环绕声)
- 2019微信公开课张小龙演讲全文
- 国王的烦恼 蓝桥杯(最小生成树 kru)