永发信息网

求一个c语言贪吃蛇代码 能在cb下运行

答案:1  悬赏:0  手机版
解决时间 2021-03-22 20:49
求一个c语言贪吃蛇代码 能在cb下运行
最佳答案
#include
#include
#include
#include
#include
#define STATIC 0
#define TRUE 1
#define FALSE 0
#define UP 1
#define RIGHT 2
#define DOWN 3
#define LEFT 4
#define VK_LEFT 0x4b00 
#define VK_RIGHT 0x4d00   
#define VK_DOWN 0x5000
#define VK_UP 0x4800
#define VK_ESC 0x011b
 
int board[22][22];
int snakelength=0;
 
 
 
 
struct snake{
public:
int x=0;
int y=0;
int direction;
}body[20];
snake food;
void makefood();
int eatfood(); 
void right(); 
void down();
void left();
void up();
void getdirection(); 
 
 
move(snake *body)
{int x=body[0].x,y=body[0].y;
 
 if(body->direction==RIGHT&&board[y][x+1]!=1)right();
 elseif(body->direction==DOWN&&board[y+1][x]!=1)down();
 elseif(body->direction==LEFT&&board[y][x-1]!=1)left();
 elseif(body->direction==UP&&board[y-1][x]!=1)up();
 
  return 0;
}
 
void print() 
{int i,j,x=0,y=0;
 for(i=1;i<21;i++)
 for(j=1;j<21;j++)
 board[i][j]=0;
 
 for(i=0;i<20;i++)
 {x=body[i].x;
  y=body[i].y;
  board[y][x]=1;
 }
 
board[food.y][food.x]=2;
 
 
 
 
 for(i=1;i<21;i++)
 for(j=1;j<21;j++)
 {if(board[i][j]==1)
    {setfillstyle(SOLID_FILL,WHITE);
     bar(j*15,i*15,j*15+13,i*15+13);
     }
  if(board[i][j]==0)
    {setfillstyle(SOLID_FILL,BLACK);
     bar(j*15,i*15,j*15+13,i*15+13);
     }
  if(board[i][j]==2)
    {setfillstyle(SOLID_FILL,RED);
      bar(j*15,i*15,j*15+13,i*15+13);
     }
   }
}
main(int second=0)
{
int gdriver=CGAC0,gmode;        
initgraph(&gdriver,&gmode,"c:\tc\bgi");
 randomize();
 int i,j;
 int flag;
 longtime=100000;
 for(i=0;i<21;i++)
 for(j=0;j<21;j++)
 board[i][j]=0;
 
 for(i=0;i<22;i++)
{board[0][i]=1;board[21][i]=1;board[i][0]=1;board[i][21]=1;}
 
 
 snakelength=3;
 body[0].x=3,body[0].y=2,body[0].direction=RIGHT;
 body[1].x=2,body[1].y=2;
 body[2].x=1,body[2].y=2;
 makefood();
 
 print();
 getch();
 
 
 
 
 for(i=0;i<30000;i++)
 {
 
 move(&body[0]);
 getdirection();
 flag=eatfood();
 if(flag==TRUE){print();makefood();};
  print();
 for(j=0;j  }
 
line(0,0,400,400);
 getch();
 
}
 
 
void right()
{int i;
 for(i=snakelength-1;i>0;i--)
 {body[i].x=body[i-1].x;
 body[i].y=body[i-1].y;
 }
  body[0].x++;
}
void down()
{int i;
 for(i=snakelength-1;i>0;i--)
 {body[i].x=body[i-1].x;
 body[i].y=body[i-1].y;
 }
 body[0].y++;
}
void left()
{int i;
 for(i=snakelength-1;i>0;i--)
 {body[i].x=body[i-1].x;
 body[i].y=body[i-1].y;
 }
 body[0].x--;
}
void up()
{int i;
 for(i=snakelength-1;i>0;i--)
 {body[i].x=body[i-1].x;
 body[i].y=body[i-1].y;
 }
 body[0].y--;
}
void getdirection()
{int key=0;
 if(bioskey(1)!=0)
 key=bioskey(0);
 
 switch(key)
{case VK_UP:    if(body[0].direction!=DOWN)body[0].direction=UP;break;
 caseVK_RIGHT: if(body[0].direction!=LEFT)body[0].direction=RIGHT;break;
 caseVK_DOWN:  if(body[0].direction!=UP)body[0].direction=DOWN;break;
 caseVK_LEFT:  if(body[0].direction!=RIGHT)body[0].direction=LEFT;break;
 case VK_ESC:exit(0);
}
}
void makefood()
{int i,j;
 food.x=0;
 food.y=0;
 
 print();
 
 food.x=random(20);
 food.y=random(20);
 for(;;)
 {if(board[food.y][food.x]!=0)
  {
 
 food.x=random(20);
 food.y=random(20);
  }
   else break;
 }
 
 food.direction=body[0].direction;
 board[food.y][food.x]=2;
}
 
 
int eatfood()
{int i=FALSE;
 
 intx=body[0].x,y=body[0].y;
 
 
 if(body[0].direction==UP&&board[y-1][x]==2)
 {snakelength++;
  for(i=snakelength-1;i>0;i--){body[i].x=body[i-1].x;body[i].y=body[i-1].y;}
   body[0].x=food.x;
  body[0].y=food.y;
   food.x=0;
   food.y=0;
   i=TRUE;
 }
 
 if(body[0].direction==DOWN&&board[y+1][x]==2)
{ snakelength++;
  for(i=snakelength-1;i>0;i--){body[i].x=body[i-1].x;body[i].y=body[i-1].y;}
  body[0].x=food.x;
   body[0].y=food.y;
   food.x=0;
   food.y=0;
   i=TRUE;
 }
 
 if(body[0].direction==LEFT&&board[y][x-1]==2)
 {snakelength++;
  for(i=snakelength-1;i>0;i--){body[i].x=body[i-1].x;body[i].y=body[i-1].y;}
  body[0].x=food.x;
  body[0].y=food.y;
   food.x=0;
   food.y=0;
   i=TRUE;
 }
 if(body[0].direction==RIGHT&&board[y][x+1]==2)
 {snakelength++;
  for(i=snakelength-1;i>0;i--){body[i].x=body[i-1].x;body[i].y=body[i-1].y;}
  body[0].x=food.x;
  body[0].y=food.y;
   food.x=0;
   food.y=0;
   i=TRUE;
 }
 
 return i;
}追问
亲  这个怎么搞
追答头文件用到的是graphics.h,你在TC下试试追问tc没有64位的THANK YOU
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
西安市基督教南新街礼拜堂地址有知道的么?有
猪羊是家禽吗
比亚迪戴姆勒腾势股票代号是多少
娃哈哈的繁体中文是怎么样子的,这个名称繁体
yy直播间刷礼物15组66和5组188哪个多
Hearing the news, she .A. burst into tears
如何自己制作系统镜像,如何给自己的系统做镜
请阅读以下人员的相关信息,然后匹配和他/她
斯靡咖啡地址在什么地方,想过去办事
单选题1872年日本政府发布告谕:“苟有国则有
兰纳泰餐厅怎么样
我就是个安静的女生改不了不容易
杜甫写李白喝酒的诗句,李白的诗句有哪些关于
单选题2007年9月18日,由中央文明办、全国总
百变小樱台词风,百变小樱魔术卡中小樱收服库
推荐资讯
爱国诗词手抄报资料,诗词手抄报名字帮我想想
表示闲适的诗句带有鸟,形容鹅的诗句
深圳离随州多远,随州至阆中自驾游怎么走
用北京农行的卡去河北农行支钱请问花手续费吗
穿越才子斗诗词的小说,穿越文~主角是书生~
深圳布吉哪里有自助餐
上海哪个美容美发学校最有名最好?
姜圈在哪里啊,我有事要去这个地方
开快递公司挣钱吗,快递分代理能赚钱吗?
水星MW320R怎么样?水星MW320R好吗
甲数是25,乙数是30,乙数比甲数多A.5%B.25%C
马上金融怎么总是审核不过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?