机器人大战c语言代码Word格式文档下载.docx
- 文档编号:17201151
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:15
- 大小:16.82KB
机器人大战c语言代码Word格式文档下载.docx
《机器人大战c语言代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《机器人大战c语言代码Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
unsignedintaddress,n,temp;
address=320*y0+x;
for(n=0;
n<
=y1-y0;
n++)
{
if(y0>
y1)
temp=y1;
y1=y0;
y0=temp;
}
VideoBuffer[address]=color;
address+=320;
/*绘制水平线函数*/
voidDrawHorizontalLine(intx0,intx1,inty,unsignedintcolor)
address=320*y+x0;
=x1-x0;
if(x0>
x1)
temp=x1;
x1=x0;
x0=temp;
address+=1;
voidp_pixel(intx,inty,unsignedintcolor)
VideoBuffer[y*320+x]=color;
/*绘制正方形函数*/
voidDrawSquare(intx,inty,intside,intcolor)
{
DrawHorizontalLine(x,x+side,y,color);
DrawHorizontalLine(x,x+side,y+side,color);
DrawVerticalLine(y,y+side,x,color);
DrawVerticalLine(y,y+side,x+side,color);
/*绘制矩形函数*/
voidDrawRectangle(intx1,inty1,intx2,inty2,intcolor)
DrawHorizontalLine(x1,x2,y1,color);
DrawHorizontalLine(x1,x2,y2,color);
DrawVerticalLine(y1,y2,x1,color);
DrawVerticalLine(y1,y2,x2,color);
/*绘制实心矩形函数*/
voidFillRectangle(intx1,inty1,intx2,inty2,intcolor)
inti;
for(i=y1;
i<
=y2;
i++)
DrawHorizontalLine(x1,x2,i,color);
/*每次出拳后,删除拳头*/
voidClearBox()
delay(100);
DrawSquare(x3,y3,5,0);
DrawSquare(x3,y3-6,5,0);
x3=0;
y3=0;
/*绘制我方机器人*/
voidDrawPlayer()
intcas=0;
if(sxzy==18432)
/*如果按上键,就往上移动*/
{
yy-=5;
if(yy<
y1+30)
yy+=5;
if(yy==12)
yy=17;
if(sxzy==20480)/*如果按下键,就往下移动*/
if(yy==172)
yy=167;
if(sxzy==19200)/*如果按左键,就往左移动*/
xx--;
if(xx==-1)
xx=0;
if(sxzy==19712)/*如果按右键,就往右移动*/
xx++;
if(xx==13)
xx=12;
sxzy=0;
for(x=xx;
x<
5+xx;
x++)/*给自己搭建骨架*/
if(x==xx)/*左手*/
y=167;
board[x][yy]=1;
if(zx==11386)
board[x][yy-12]=3;
board[x][yy-11]=3;
if((yy-11<
y1+30)&
&
(xx>
=x1&
xx<
=x1+4))
enemylife--;
cas=1;
zx=0;
x++;
if(x==xx+4)/*右手*/
if(zx==11640)
y1+30)&
(xx+4<
=x1+4&
xx+4>
=x1))
cas=2;
break;
for(y=yy;
y<
yy+3;
y++)/*身体*/
board[x][y]=1;
for(x=0;
100;
x++)/*开始往骨架上放‘肉’*/
l=1;
for(y=0;
170;
y++)
if(board[x][y]==1||board[x][y]==3)
{
if(cas==1)
board[x][yy-10]=1;
board[x][yy]=0;
cas=0;
if(cas==2)
board[x+4][yy-10]=1;
board[x+4][yy]=0;
if(board[x][y]==3)
x3=x+105+x*5;
y3=y+l*5;
DrawSquare(x+105+x*5,y+l*5,5,3);
l++;
ClearBox();
/*搭建设对方骨架*/
voidDrawEnemySk()
intran,cas=0,p=0;
delay(200);
for(x=99;
x>
=0;
x--)
for(y=169;
y>
y--)
if(board[x][y]==2||board[x][y]==4)
DrawSquare(x+105+x*5,35+y-l*5,5,0);
board[x][y]=0;
ran=random(5);
if(ran==0)/*往上走*/
y1-=5;
if(y1==-2)
y1=3;
if(ran==1)
y1+=5;
if(y1+30>
yy)/*不允许超过我的机器人的身后*/
if(y1==158)
/*往下走,如果超过外框,就减去一步,实际上是永远也不会超过*/
y1=153;
if(ran==2)/*往左走*/
x1--;
if(x1==-1)
x1=0;
if(ran==3)/*往右走*/
x1++;
if(x1==13)
x1=12;
if(ran==4)
yy)
/*不允许超过我的机器人的身后*/
for(x=x1;
x1+5;
x++)/*对方拳头*/
if(x==x1)
if((y1+45>
=yy)&
x>
=xx)
/*判断敌人是否靠近,如果是就出拳头*/
p=random
(2);
if(p==1)
board[x][y1+15]=4;
board[x][y1+16]=4;
board[x][y1+17]=4;
playerlife--;
cas=1;
p=0;
board[x][y1+14]=2;
else
board[x][y1]=2;
if(x==x1+4)
x<
=xx+4)
(xx>
cas=0;
for(y=y1;
y+3>
y1;
board[x][y]=2;
voidClearEnemyBox()/*删除对方拳头*/
DrawSquare(x4,y4+12,5,0);
DrawSquare(x4,y4+6,5,0);
DrawSquare(x4,y4,5,0);
x4=0;
y4=0;
voidDrawEnemy()/*画出对方*/
intkey=0;
while(key!
=283&
enemylife>
0&
playerlife>
0)
FillRectangle(250+enemylife,50,300,53,0);
FillRectangle(250+playerlife,150,280,153,0);
while(bioskey
(1)==0)
DrawEnemySk();
if(board[x][y]==2||board[x][y]==4)
DrawSquare(x+105+x*5,35+y-l*5,5,3);
if(board[x][y]==4)
{
x4=x+105+x*5;
y4=35+y-l*5;
ClearEnemyBox();
key=bioskey(0);
if(key==18432||key==20480||key==19200||key==19712||key==11386||key==11640)
if(key==11386||key==11640)
/*按键的判断*/
zx=key;
sxzy=key;
key=0;
x++)
DrawSquare(x+105+x*5,y+l*5,5,0);
DrawPlayer();
intmain()
intx=0,y,i=1,key,c=0,p,k=0,e=1;
intgdriver=DETECT,gmode;
initgraph(&
gdriver,&
gmode,"
e:
\\tc"
);
cleardevice();
setcolor(RED);
while(i)
settextstyle(1,0,5);
setwritemode(XOR_PUT);
outtextxy(x,200,"
Xman"
delay(10);
x+=2;
if(x>
200)
i=0;
while(!
kbhit())
setcolor(c);
c++;
if(c>
16)
c=0;
settextstyle(0,0,1);
setcolor(GREEN);
outtextxy(300,300,"
pleasepress'
s'
tostart"
while(e)
k=bioskey(0);
if(k==8051)
e=0;
board[99][169]=4;
closegraph();
SetScreenMode(VGA256);
/*绘制游戏区的边框*/
DrawRectangle(104,20,207,190,7);
FillRectangle(250,50,250+enemylife,53,4);
FillRectangle(250,150,250+playerlife,153,4);
DrawEnemy();
if(enemylife==0)
setcolor(WHITE);
settextstyle(0,0,4);
outtextxy(100,20,"
YouWin!
"
outtextxy(101,20,"
getch();
elseif(playerlife==0)
YouFailed!
SetScreenMode(TEXT);
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人大战 语言 代码