基本信息
源码名称:DevC++贪吃蛇
源码大小:0.11M
文件格式:.zip
开发语言:C/C++
更新时间:2020-11-01
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 6 元×
微信扫码支付:6 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
自己用DevC 编写的贪吃蛇小游戏,带难度选择、计时、加速、暂停功能。
int play(HANDLE hout) {
system("cls");
unsigned char ch = 77;
struct Snake s, *snake = &s;
struct Food f, *food = &f;
selectcover(hout, snake);
makeframe(snake);
initsnake(snake);
printfood(hout, snake, food);
Sleep(500);
CLK = 0;
HANDLE hThread;
DWORD ThreadID;
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)gettime, NULL, 0, &ThreadID);
while (1) {
infor(hout, snake);
//保存蛇尾横纵坐标
a[0] = snake->x[0];
a[1] = snake->y[0];
j = 0;
//如果用户敲击键盘
if (kbhit()) {
//用ch接收输入 ,注意是getch(),不需敲击回车
ch = getch();
if (kbhit()) {
//长按时间
Sleep(20);
j = 1;
}
}
switch(ch) {
//向上移动
case 'W':
case 'w':
case 72: {
movesnake(hout, snake);
//蛇头纵坐标减一
snake->y[snake->length - 1] -= 1;
break;
}
//向下移动
case 'S':
case 's':
case 80: {
movesnake(hout, snake);
//蛇头纵坐标加一
snake->y[snake->length - 1] = 1;
break;
}
//向左移动
case 'A':
case 'a':
case 75: {
movesnake(hout, snake);
//蛇头横坐标减二
snake->x[snake->length - 1] -= 2;
break;
}
//向右移动
case 'D':
case 'd':
case 77: {
movesnake(hout, snake);
//蛇头横坐标加二
snake->x[snake->length - 1] = 2;
break;
}
//主菜单
case 'E':
case 'e': {
system("cls");
return 1;
break;
}
default: {
break;
}
}
system("cls");
unsigned char ch = 77;
struct Snake s, *snake = &s;
struct Food f, *food = &f;
selectcover(hout, snake);
makeframe(snake);
initsnake(snake);
printfood(hout, snake, food);
Sleep(500);
CLK = 0;
HANDLE hThread;
DWORD ThreadID;
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)gettime, NULL, 0, &ThreadID);
while (1) {
infor(hout, snake);
//保存蛇尾横纵坐标
a[0] = snake->x[0];
a[1] = snake->y[0];
j = 0;
//如果用户敲击键盘
if (kbhit()) {
//用ch接收输入 ,注意是getch(),不需敲击回车
ch = getch();
if (kbhit()) {
//长按时间
Sleep(20);
j = 1;
}
}
switch(ch) {
//向上移动
case 'W':
case 'w':
case 72: {
movesnake(hout, snake);
//蛇头纵坐标减一
snake->y[snake->length - 1] -= 1;
break;
}
//向下移动
case 'S':
case 's':
case 80: {
movesnake(hout, snake);
//蛇头纵坐标加一
snake->y[snake->length - 1] = 1;
break;
}
//向左移动
case 'A':
case 'a':
case 75: {
movesnake(hout, snake);
//蛇头横坐标减二
snake->x[snake->length - 1] -= 2;
break;
}
//向右移动
case 'D':
case 'd':
case 77: {
movesnake(hout, snake);
//蛇头横坐标加二
snake->x[snake->length - 1] = 2;
break;
}
//主菜单
case 'E':
case 'e': {
system("cls");
return 1;
break;
}
default: {
break;
}
}