简单的坦克大战模拟小游戏

#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);}
}


猜你喜欢

转载自blog.csdn.net/wangruoao/article/details/51817339