C代码贪吃蛇Word格式文档下载.docx
- 文档编号:17950818
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:8
- 大小:15.72KB
C代码贪吃蛇Word格式文档下载.docx
《C代码贪吃蛇Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C代码贪吃蛇Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
DrawBody(intx,inty)
gotoxy(x,y);
printf("
%c\b"
3);
}
DrawHead(intx,inty)
2);
DrawSpace(intx,inty)
"
);
voidbring_food(pointman[],intn,point*food)/*随机产生食物*/
intx,y;
inti,k=0;
randomize();
while(k==0)
{k=1;
x=rand()%58;
y=rand()%23;
if(x<
3||y<
3)/*产生的食物不在框内*/
{k=0;
continue;
}
for(i=0;
i<
n;
++i)
if((x==man[i].x)&
&
(y==man[i].y))/*如果产生的食物坐标和蛇身的某个坐标相同,则不符合条件*/
{k=0;
break;
food->
x=x;
y=y;
gotoxy(x,y);
/*在x,y出产生食物*/
printf("
*"
voidDrawWall()/*画边框函数*/
{inti,j;
for(j=2,i=2;
60;
{gotoxy(i,j);
textcolor(GREEN);
putch(219);
gotoxy(i,j+22);
25;
{gotoxy(j,i);
gotoxy(j+57,i);
voidmessage(intscore)/*该函数输出信息*/
if(score==10||score==20||score==35)
{
gotoxy(65,6);
Score:
%d"
score);
gotoxy(20,10);
textattr(5);
cprintf("
YouWin"
gotoxy(20,12);
Thankyoubaby!
"
getch();
return;
gotoxy(65,7);
Space:
pause"
intmain()/*该程序运行将用方向键控制蛇的移动*/
pointman[60];
/*记录蛇坐标*/
pointfood;
/*记录食物坐标*/
intkey=DOWN,keyb,key1=DOWN;
inti;
intn=10;
intscore=0;
longj,time;
clrscr();
for(i=0;
10;
man[i].x=12-i;
man[i].y=3;
DrawWall();
/*画边框*/
for(i=9;
i>
0;
--i)
DrawBody(man[i].x,man[i].y);
/*画蛇身*/
DrawHead(man[i].x,man[i].y);
/*画蛇头*/
message(score);
bring_food(man,10,&
food);
/*产生食物*/
while(key!
=ESC)
if(bioskey
(1)!
=0)/*如果有键按下就接收键盘值*/
keyb=bioskey(0);
if((keyb==SPACE)||(keyb==ESC)||(keyb==UP)||(keyb==DOWN)||(keyb==LEFT)||(keyb==RIGHT))
key=keyb;
switch(key)
caseUP:
if(key1==DOWN)
key=key1;
caseDOWN:
if(key1==UP)
caseLEFT:
if(key1==RIGHT)
caseRIGHT:
if(key1==LEFT)
caseSPACE:
sleep(3);
if(man[0].x==man[1].x)/*暂停前沿y方向移动*/
{if(man[0].y<
man[1].y)
key=UP;
else
key=DOWN;
else{if(man[0].x<
man[1].x)
key=LEFT;
else
key=RIGHT;
defualt:
DrawSpace(man[n-1].x,man[n-1].y);
for(i=n-1;
0;
man[i].x=man[i-1].x;
man[i].y=man[i-1].y;
--man[0].y;
DrawBody(man[i].x,man[i].y);
DrawHead(man[i].x,man[i].y);
++man[0].y;
--man[0].x;
++man[0].x;
/*defualt:
*/
if((man[0].x<
3)||(man[0].x>
58)||(man[0].y<
3)||(man[0].y>
23))/*碰到边框*/
for(i=2;
if(man[0].x==man[i].x&
man[0].y==man[i].y)/*碰到自己身体*/
{key=ESC;
if((man[0].x==food.x)&
(man[0].y==food.y))/*吃到食物*/
{score++;
message(score);
n++;
/*蛇身长度加1*/
bring_food(man,n,&
/*再产生一个食物*/
time=(score<
10)?
500000:
((score<
20)?
400000:
30)?
300000:
200000));
for(j=1;
j<
time;
++j)/*该循环用来控制时间*/
if((j!
=0)&
(j%8==0))
j=j+2-1*2;
elseif((j!
(j%9!
=1))
j=j+1-1*1*1;
elsej=j+1;
key1=key;
/*记录下本次的有效按键*/
if(score!
=10&
score!
=20&
=35)
{gotoxy(20,10);
textattr
(2);
GameOver"
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 代码 贪吃