C语言快快吃豆游戏Word文档格式.docx

上传人:b****5 文档编号:21474682 上传时间:2023-01-30 格式:DOCX 页数:13 大小:21.83KB
下载 相关 举报
C语言快快吃豆游戏Word文档格式.docx_第1页
第1页 / 共13页
C语言快快吃豆游戏Word文档格式.docx_第2页
第2页 / 共13页
C语言快快吃豆游戏Word文档格式.docx_第3页
第3页 / 共13页
C语言快快吃豆游戏Word文档格式.docx_第4页
第4页 / 共13页
C语言快快吃豆游戏Word文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言快快吃豆游戏Word文档格式.docx

《C语言快快吃豆游戏Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言快快吃豆游戏Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

C语言快快吃豆游戏Word文档格式.docx

/*2墙壁,1可以移动地方,3自己,4敌人*/

inta[15][20]={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,

2,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,2,

2,1,2,2,2,1,1,2,1,1,0,0,0,1,1,4,1,1,0,2,

2,1,1,0,2,1,1,2,0,1,1,2,2,2,2,2,0,0,0,2,

2,4,1,0,2,1,1,2,1,1,1,0,1,1,1,1,0,1,1,2,

2,1,2,1,2,1,1,2,1,3,2,2,1,1,1,1,2,2,1,2,

2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,0,1,1,1,2,

2,1,2,1,0,1,1,1,1,2,1,0,1,2,2,2,1,1,1,2,

2,1,0,1,0,1,2,1,1,2,1,0,1,2,1,1,4,1,1,2,

2,1,0,2,0,1,2,1,1,2,1,0,1,2,1,1,1,1,1,2,

2,1,0,2,1,1,2,1,1,2,1,0,2,2,1,0,0,0,1,2,

2,1,1,2,1,1,2,1,1,2,1,0,2,1,1,2,2,1,1,2,

2,1,2,2,1,2,2,1,1,1,1,0,1,4,1,2,0,0,1,2,

2,1,0,0,0,0,0,4,0,1,1,0,1,1,1,1,0,0,1,2,

2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};

/*数组就是地图*/

structplay/*游戏中人物的结构体*/

{

intx;

inty;

};

structplayyou,them[5];

intsum=0;

/*统计吃的豆子个数,吃满50颗就算胜利*/

intxx[5][2];

/*判定敌人方向用的结构体*/

intfalse=0;

voidinit();

voidbegin();

voidplay();

voidwin();

voidfun(structplay*them);

voidmovethem(structplay*them);

voidloseyes();

voiddrawblackdou(intx,inty);

voidlose();

/*游戏玩法:

当任意按下键时,游戏启动,敌人随机移动,自己开始躲避敌人和墙壁,尽可能多的吃豆豆*/

voidplay()

intkey,i;

while

(1)

{key=bioskey

(2);

while(!

kbhit())/*当无按键时敌人自己移动*/

{

setcolor(GREEN);

/*重画敌人*/

for(i=0;

i<

5;

i++)

circle(them[i].y*20+100,them[i].x*20+100,9);

sleep

(1);

fun(them);

/*处理敌人*/

if(them[i].x==you.x&

&

them[i].y==you.y)

false=1;

/*假如失败的话*/

loseyes();

/*判定是否失败*/

if(false)

break;

}/*跳出while(!

kbhit())*/

if(false)

break;

key=bioskey(0);

setcolor(0);

/*把自己原来位置的人给删除掉*/

circle(100+you.y*20,100+you.x*20,9);

if(key==ESC)

elseif(key==UP)/*这里开始的判定主要是是否吃到豆子和碰到墙壁*/

{

you.x--;

if(a[you.x][you.y]==2)

you.x++;

elseif(a[you.x][you.y]==0)

drawblackdou(you.x,you.y);

}

elseif(key==DOWN)

you.x++;

you.x--;

elseif(key==RIGHT)

you.y++;

if(a[you.x][you.y]==2)

you.y--;

elseif(a[you.x][you.y]==0)

drawblackdou(you.x,you.y);

elseif(key==LEFT)

you.y--;

you.y++;

if(sum==50)

break;

setcolor(RED);

/*执行了一次键盘后再画出自己的位置*/

loseyes();

/*自己走上去碰到敌人的可能*/

}

voidfun(structplay*them)/*移动中的判定*/

inti;

/*把敌人的老位置删除*/

for(i=0;

circle(them[i].y*20+100,them[i].x*20+100,9);

movethem(them);

/*根据控制者的位置来决定敌人的移动方向*/

voidlose()/*输的画面*/

cleardevice();

settextstyle(0,0,4);

while(!

kbhit())

setcolor(rand()%13+1);

outtextxy(180,200,"

GAMEOVER!

"

);

delay(3);

voidwin()/*赢的画面*/

outtextxy(200,200,"

YOUWIN!

voiddrawblackdou(intx,inty)/*吃豆子*/

circle(100+y*20,100+x*20,3);

/*画圆x,y,半径*/

sum++;

/*吃到豆子后就加一*/

a[x][y]=1;

/*吃到后这里就成为普通平地*/

voidloseyes()/*判断是否失败*/

if(them[i].x==you.x&

false=1;

voidmovethem(structplay*them)/*them的移动过程*/

inti,loop;

randomize();

/*随机排列,任意打乱*/

/*只要控制者在身边就立即靠上去*/

if(you.x==them[i].x&

(them[i].y+1)==you.y)

them[i].y++;

elseif(you.x==them[i].x&

(them[i].y-1)==you.y)

them[i].y--;

elseif(you.y==them[i].y&

(them[i].x+1)==you.x)

them[i].x++;

(them[i].x-1)==you.x)

them[i].x--;

else

loop:

xx[i][0]=rand()%4+1;

/*这里的方向采取随机赋值,原则是新的方向不可以和原来的方向相反*/

if(xx[i][0]==1&

xx[i][1]==2||xx[i][0]==2&

xx[i][1]==1)

gotoloop;

if(xx[i][0]==3&

xx[i][1]==4||xx[i][0]==4&

xx[i][1]==3)

xx[i][1]=xx[i][0];

if(xx[i][0]==1)/*四个方向*/

{

them[i].x--;

if(a[them[i].x][them[i].y]==2)/*假如碰墙壁的话就回到原来的地方等待随机的方向*/

{

them[i].x++;

gotoloop;

}

}

elseif(xx[i][0]==2)

them[i].x++;

if(a[them[i].x][them[i].y]==2)

them[i].x--;

elseif(xx[i][0]==3)

them[i].y++;

them[i].y--;

elseif(xx[i][0]==4)

them[i].y--;

them[i].y++;

}

voidbegin()

/*setbkcolor(WHITE);

*/

inti,j;

sleep

(1);

15;

for(j=0;

j<

20;

j++)

if(a[i][j]==2)/*代表墙壁*/

setfillstyle(SOLID_FILL,9);

bar(100+j*20-10,100+i*20+10,100+j*20+10,100+i*20-10);

elseif(a[i][j]==3)/*代表自己*/

setcolor(RED);

circle(100+j*20,100+i*20,9);

elseif(a[i][j]==4)/*代表敌人*/

setcolor(GREEN);

elseif(a[i][j]==0)/*代表豆子*/

setcolor(YELLOW);

setlinestyle(0,0,1);

circle(100+j*20,100+i*20,3);

you.x=5;

you.y=9;

/*自己和敌人的初始坐标*/

them[0].x=2;

them[0].y=15;

them[1].x=4;

them[1].y=1;

them[2].x=8;

them[2].y=16;

them[3].x=12;

them[3].y=13;

them[4].x=13;

them[4].y=7;

voidinit()/*是否开始游戏*/

setcolor(3);

setlinestyle(DASHED_LINE,0,3);

/*设置线的宽度和形式*/

rectangle(100,100,550,350);

/*画矩形*/

settextstyle(3,0,3);

outtextxy(200,200,"

GAMESTART!

outtextxy(110,300,"

ESC-exit/pressanykeytocontinue"

getch();

main()

intgd=DETECT,gm;

intkey;

initgraph(&

gd,&

gm,"

/*图形界面初始化*/

init();

/*调用初始化函数显示进入游戏初始界面*/

/*接收键盘按键*/

exit(0);

else

cleardevice();

begin();

play();

/*编写游戏实现过程*/

if(sum==50)/*吃满豆子了*/

win();

getch();

if(false)

lose();

closegraph();

}_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1