分享
 
 
 

贪食蛇(文本模式)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

贪食蛇(文本模式)

/**********************************************/

/* 程序名称:贪食蛇1.1(文本模式) */

/* 程序作者:Knocker */

/* 完成日期:2004.10.20 */

/* 编译环境:Windows me + Win-TC 1.9.1 */

/* Email : knocker.k@163.com */

/* 程序说明:有两种死法,一:蛇首被困闷死 */

/* 二:咬到自己尾巴 */

/* 方向键控制蛇行方向 */

/* 修改说明:2004.10.21优化了print_mop() */

/**********************************************/

#include <stdio.h>

#include <dos.h>

#define maxX 76

#define maxY 22

void exitt();

void moveadd(int*A,int*x,int*y);

void findend(int x,int y);

void rand_have();

void print_mop();

int X=0,Y=1,X1=0,Y1=0,a=2 ;

/*X,Y 蛇头所在数组下标,a表示蛇的运动方向,

0,1,2,3,分别标记蛇的运动方向上,右,下,左*/

int endX0=5,endY0=5;

int t=1 ;/*食物产生控制旗标*/

char mop[maxY][maxX]={0};

int main()

{

char c ;

union REGS regs;

regs.h.ah=1;

regs.h.ch=13;

regs.h.cl=0;

int86(0x10,&regs,&regs);

mop[0][0]=-1 ; /*-1标记蛇尾*/

mop[0][1]=4 ;

rand_have();

while(1)

{

while(bioskey(1)==0)

{ X1=X,Y1=Y;

moveadd(&a,&X,&Y);

print_mop();

if(t==0)rand_have(),t=1 ;

delay(3500);

}

c=bioskey(0)>>8 ;

if(c==75)a=3 ;

if(c==77)a=1 ;

if(c==72)a=0 ;

if(c==80)a=2 ;

}

}

void moveadd(int*A,int*X,int*Y)

{

int tmep;

if(*A==0)

if(*X-1>=0&&(!mop[*X-1][*Y]||mop[*X-1][*Y]==10||mop[*X-1][*Y]==-1))

{

if(mop[*X-1][*Y]==-1)exitt();

if(mop[*X-1][*Y]!=10)findend(*X,*Y);

else t=0 ;

mop[*X-1][*Y]=(*A+2)%4+1 ;

*X=*X-1 ;

}

else *A=rand()%2?3:1;

if(*A==2)

if(*X+1<maxY&&(!mop[*X+1][*Y]||mop[*X+1][*Y]==10||mop[*X+1][*Y]==-1))

{

if(mop[*X+1][*Y]==-1)exitt();

if(mop[*X+1][*Y]!=10)findend(*X,*Y);

else t=0 ;

mop[*X+1][*Y]=(*A+2)%4+1 ;

*X=*X+1 ;

}

else *A=rand()%2?1:3;

if(*A==1)

if(*Y+1<maxX&&(!mop[*X][*Y+1]||mop[*X][*Y+1]==10||mop[*X][*Y+1==-1]))

{

if(mop[*X][*Y+1]==-1)exitt();

if(mop[*X][*Y+1]!=10)findend(*X,*Y);

else t=0 ;

mop[*X][*Y+1]=(*A+2)%4+1 ;

*Y=*Y+1 ;

}

else*A=rand()%2?0:2 ;

if(*A==3)

if(*Y-1>=0&&(!mop[*X][*Y-1]||mop[*X][*Y-1]==10||mop[*X][*Y-1]==-1))

{

if(mop[*X][*Y-1]==-1)exitt();

if(mop[*X][*Y-1]!=10)findend(*X,*Y);

else t=0 ;

mop[*X][*Y-1]=(*A+2)%4+1 ;

*Y=*Y-1 ;

}

else*A=rand()%2?2:0 ;

}

void findend(int x,int y)

{

switch(mop[x][y]-1)

{

case 0 :

if(mop[x-1][y]==-1)

{

mop[x-1][y]=0 ;

endX0=x-1;

endY0=y;

mop[x][y]=-1 ;

}

else findend(x-1,y);

break ;

case 1 :

if(mop[x][y+1]==-1)

{

mop[x][y+1]=0 ;

endX0=x;

endY0=y+1;

mop[x][y]=-1 ;

}

else findend(x,y+1);

break ;

case 2 :

if(mop[x+1][y]==-1)

{

mop[x+1][y]=0 ;

endX0=x+1;

endY0=y;

mop[x][y]=-1 ;

}

else findend(x+1,y);

break ;

case 3 :

if(mop[x][y-1]==-1)

{

mop[x][y-1]=0 ;

endX0=x;

endY0=y-1;

mop[x][y]=-1 ;

}

else findend(x,y-1);

break ;

}

}

void rand_have()

{

int x,y ;

qq :

x=rand()%maxY ;

y=rand()%maxX ;

if(mop[x][y]==0)

{

mop[x][y]=10 ;

gotoxy(y+1,x+2);

printf("X");

}

else goto qq ;

}

void print_mop()

{

gotoxy(endY0+1,endX0+2);

printf(" ");

gotoxy(Y+1,X+2);

printf("O");

gotoxy(Y1+1,X1+2);

printf("o");

}

void exitt()

{

gotoxy(10,10);

printf("The game is over!");

getch();

exit();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有