#include <graphics.h>
#include <stdio.h>
#include <conio.h>
int main()
{int n,key,o=0,p=0,m,k=0;//n、o、p、k、m分别与炮弹运动,坦克运动,目标消失,坦克方向有关
initgraph(800,600);
setbkcolor(GREEN);
void mubiao(int k);/*函数声明*/
void tank_w(int o,int p);
void tank_s(int o,int p);
void tank_a(int o,int p);
void tank_d(int o,int p);
for(o=0,p=0;;)//死循环
{ key=getch();
cleardevice();//清除上次循环产生的图形
mubiao(k);//目标
switch(key)/*四个方向、开炮*/
{
case 'w':p=p-6;m=1;
tank_w(o,p);
mubiao(k);
if(296+p<6)
p=p+6;break;
case 's':p=p+6;m=2;
tank_s(o,p);
mubiao(k);
if(414+p>593)
p=p-6;break;
case 'a':o=o-6;m=3;
tank_a(o,p);
mubiao(k);
if(251+o<6)
o=o+6;break;
case 'd':o=o+6;m=4;
tank_d(o,p);
mubiao(k);
if(369+o>794)
o=o-6;break;
case'j':
if(m==2)//方向为下
{for(n=1;429+p+n<600;n+=8)
{cleardevice();
mubiao(k);
tank_s(o,p);
circle(310+o,413+p+n,3);
Sleep(25);}
cleardevice();
mubiao(k);
tank_s(o,p);
}
if(m==3)//方向为左
{for(n=1;236+o-n>0;n+=8)
{cleardevice();
mubiao(k);
tank_a(o,p);
circle(254+o-n,355+p,3);
Sleep(25);}
cleardevice();
mubiao(k);
tank_a(o,p);
}
if(m==4)//方向为右
{for(n=1;384+o+n<800;n+=8)
{cleardevice();
mubiao(k);
tank_d(o,p);
circle(374+o+n,355+p,3);
Sleep(25);}
cleardevice();
mubiao(k);
tank_d(o,p);
}
if(m==1)//方向为上
{if((310+o<300)||(310+o>340))//打不中
{for(n=1;291+p-n>0;n+=8)
{cleardevice();
mubiao(k);
tank_w(o,p);
circle(310+o,291+p-n,3);
Sleep(25);
}
cleardevice();
mubiao(k);
tank_w(o,p);
}
if((310+o>=300)&&(310+o<=340))//打中
{for(n=1;291+p-n>100;n+=8)
{
cleardevice();
mubiao(k);
tank_w(o,p);
circle(310+o,291+p-n,3);
Sleep(25);}
k=1;
cleardevice();
tank_w(o,p);
}
}
break;
}
}
return(0);
}
void tank_w(int o,int p)//坦克向上函数
{
line(285+o,385+p,335+o,385+p);
line(285+o,325+p,307+o,325+p);
line(313+o,325+p,335+o,325+p);
circle(310+o,361+p,15);
circle(310+o,361+p,20);
rectangle(285+o,315+p,270+o,395+p);
rectangle(335+o,315+p,350+o,395+p);
line(285+o,331+p,270+o,331+p);
line(285+o,347+p,270+o,347+p);
line(285+o,363+p,270+o,363+p);
line(285+o,379+p,270+o,379+p);
line(335+o,331+p,350+o,331+p);
line(335+o,347+p,350+o,347+p);
line(335+o,363+p,350+o,363+p);
line(335+o,379+p,350+o,379+p);
line(307+o,340+p,307+o,300+p);
line(313+o,340+p,313+o,300+p);
rectangle(305+o,300+p,315+o,296+p);
}
void tank_s(int o,int p)//坦克向下函数
{
line(285+o,385+p,307+o,385+p);
line(313+o,385+p,335+o,385+p);
line(285+o,325+p,335+o,325+p);
circle(310+o,349+p,15);
circle(310+o,349+p,20);
rectangle(285+o,315+p,270+o,395+p);
rectangle(335+o,315+p,350+o,395+p);
line(285+o,331+p,270+o,331+p);
line(285+o,347+p,270+o,347+p);
line(285+o,363+p,270+o,363+p);
line(285+o,379+p,270+o,379+p);
line(335+o,331+p,350+o,331+p);
line(335+o,347+p,350+o,347+p);
line(335+o,363+p,350+o,363+p);
line(335+o,379+p,350+o,379+p);
line(307+o,371+p,307+o,410+p);
line(313+o,371+p,313+o,410+p);
rectangle(305+o,410+p,315+o,414+p);
}
void tank_a(int o,int p)//坦克向左函数
{
line(340+o,330+p,340+o,380+p);
line(280+o,330+p,280+o,352+p);
line(280+o,358+p,280+o,380+p);
circle(316+o,355+p,15);
circle(316+o,355+p,20);
rectangle(350+o,315+p,270+o,330+p);
rectangle(350+o,395+p,270+o,380+p);
line(286+o,315+p,286+o,330+p);
line(302+o,315+p,302+o,330+p);
line(318+o,315+p,318+o,330+p);
line(334+o,315+p,334+o,330+p);
line(286+o,395+p,286+o,380+p);
line(302+o,395+p,302+o,380+p);
line(318+o,395+p,318+o,380+p);
line(334+o,395+p,334+o,380+p);
line(294+o,352+p,255+o,352+p);
line(294+o,358+p,255+o,358+p);
rectangle(255+o,350+p,251+o,360+p);
}
void tank_d(int o,int p)//坦克向上函数
{
line(340+o,330+p,340+o,352+p);
line(340+o,352+p,340+o,380+p);
line(280+o,330+p,280+o,380+p);
circle(303+o,355+p,15);
circle(303+o,355+p,20);
rectangle(350+o,315+p,270+o,330+p);
rectangle(350+o,395+p,270+o,380+p);
line(286+o,315+p,286+o,330+p);
line(302+o,315+p,302+o,330+p);
line(318+o,315+p,318+o,330+p);
line(334+o,315+p,334+o,330+p);
line(286+o,395+p,286+o,380+p);
line(302+o,395+p,302+o,380+p);
line(318+o,395+p,318+o,380+p);
line(334+o,395+p,334+o,380+p);
line(365+o,352+p,326+o,352+p);
line(365+o,358+p,326+o,358+p);
rectangle(369+o,350+p,365+o,360+p);
}
void mubiao(int k)//目标函数
{if(k==0)
{setcolor(RED);
rectangle(300,100,340,60);
rectangle(305,95,335,65);
rectangle(318,80,322,120);
rectangle(317,80,323,82);
rectangle(317,120,323,122);
setcolor(BLUE);}
}
简单的坦克大战模拟小游戏
最新推荐文章于 2023-08-03 02:12:56 发布