|

提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).
/*********************
*****最简单贪吃蛇****
-------------------------------------
****by_狂奔小兔****
********************/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define H 15
#define W 30
#define N 10
void move();
void start();
void draw();
void getturn();
void turn(char direction);
void judge();
void getfood();
void over();
int a, b, x, y, l = 0, n, i, j;
int x1, y1;
char *head, *tail, *tt, map[H][W];
char *belly[H * W], *food;
char left, right, front, back;
int main()
{
start();
}
void start()
{
for (i = 0; i != H; ++i)
for (j = 0; j != W; ++j)
{
if ((i == 0) || (i == H - 1) || (j == 0) || (j == W - 1))
map[j] = '9';
else
map[j] = '0';
}
x = W / 2, y = H / 2;
head = &map[y][x + 1];
belly[l] = &map[y][x];
tail = &map[y][x - 1];
*head = '1';
*belly[0] = '2';
*tail = '3';
left = 'w', right = 's';
front = 'd', back = 'a';
turn(front);
getfood();
draw();
while (1)
{
usleep(1000000/N);
getturn();
move();
judge();
clrscr();
draw();
}
}
void getturn()
{
char t, t1;
while (kbhit())
{
t = getch();
if (t == left)
{
turn(left);
left = back;
back = right;
right = front;
front = t;
goto gett;
}
else if (t == right)
{
turn(right);
right = back;
back = left;
left = front;
front = t;
goto gett;
}
}
turn(front);
gett:;
while (kbhit())
t = getch();
}
void getfood()
{
do
{
x1 = random() % (W - 2) + 1;
y1 = random() % (H - 2) + 1;
}
while (map[y1][x1] != '0');
food = &map[y1][x1];
*food = '4';
}
void turn(char direction)
{
switch (direction)
{
case 'w':
--y;
break;
case 's':
++y;
break;
case 'a':
--x;
break;
case 'd':
++x;
break;
}
}
void move()
{
tt = belly[l];
for (i = l; i != 0; --i)
belly = belly[i - 1];
belly[0] = head;
head = &map[y][x];
*belly[0] = '2';
}
void judge()
{
switch (*head)
{
case '2':;
case '9':
over();
break;
case '4':
getfood();
++l;
belly[l] = tt;
break;
case '0':
*head = '1';
*tail = '0';
tail = tt;
*tail = '3';
break;
}
}
void draw()
{
for (i = 0; i != H; ++i)
{
for (j = 0; j != W; ++j)
switch (map[j])
{
case '0':
printf(" ");
break;
case '9':
printf("#");
break;
case '1':
printf("O");
break;
case '2':
printf("o");
break;
case '3':
printf(".");
break;
case '4':
printf("♥");
break;
}
printf("\n");
}
}
void over()
{
printf("\tGame over!!!\n");
printf("\t\tAgain?\n");
getch();
clrscr();
start();
}
联系我时,请说是在 挂海论坛 上看到的,谢谢! |
上一篇: C语音入门教程-从简单到复杂全套高清语音教程-共68集下一篇: c语言视频教程全套 2015最新录制教程
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。
2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。
|