?? initgraphics.c
字號:
/*******頭文件包含*******/
#include <graphics.h>
#include <conio.h>
#include <dos.h>
#include <bios.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/************************/
/*******程序預(yù)定義*******/
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define SPACE 0x3920
#define ESC 0x011b
#define ENTER 0x1c0d
/************************/
/*******全局變量定義*******/
int z=1,sco,z1=1,x=10,y=34,i,tankdir,ts1=0,tankd;
int space[37][38]; //此空間為零的地方坦克可以通行
char str[10];
//變量z是開始?xì)g迎界面處判斷上下的標(biāo)志位
//變量sco是成績的全局變量
//變量z1是退出選單的標(biāo)志位
//變量x是坦克的橫向數(shù)組值
//變量y是坦克的縱向數(shù)組值
//變量i是坦克的朝向
//變量tankdir坦克的方向是否一致標(biāo)志位
//數(shù)組space[38][39]是坦克活動的范圍數(shù)組
//
/**************************/
/**************坦克圖形***************/
//全局三維數(shù)組
int tank[4][3][3]={
{{0,1,0},
{1,1,1},
{1,0,1}},
{{1,1,0},
{0,1,1},
{1,1,0}},
{{1,0,1},
{1,1,1},
{0,1,0}},
{{0,1,1},
{1,1,0},
{0,1,1}}
};
void tankbar(int x1,int y1,int i)
{
int j=1,k,x2=x1,y2=y1;
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
if(1==tank[i][j][k])
{
setfillstyle(SOLID_FILL,RED);
bar(60+x2*10,45+y2*10,68+x2*10,53+y2*10);
x2++;
}
else
x2++;
}
x2=x1;
y2++;
}
}
void tankblack(int x1,int y1)
{
int j,k,x2=x1,y2=y1;
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
if(1==tank[i][j][k])
{
setfillstyle(SOLID_FILL,BLACK);
bar(60+x2*10,45+y2*10,68+x2*10,53+y2*10);
x2++;
}
else
x2++;
}
x2=x1;
y2++;
}
}
/*******我方坦克的虛擬數(shù)組*******/
tankspace()
{
int ii,jj;
for(ii=0;ii<3;ii++)
for(jj=0;jj<3;jj++)
space[x+jj][y+ii]=1;
}
tankbkspace(int xx,int yy)
{
int ii,jj;
for(ii=0;ii<3;ii++)
for(jj=0;jj<3;jj++)
space[xx+jj][yy+ii]=0;
}
/***********敵方坦克*************/
void tankbard(int i)
{
int j=1,k,x2=0,y2=0;
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
if(1==tank[i][j][k])
{
setfillstyle(SOLID_FILL,BLUE);
bar(60+x2*10,45+y2*10,68+x2*10,53+y2*10);
x2++;
}
else
x2++;
}
x2=0;
y2++;
}
}
/********敵方坦克的虛擬數(shù)組*******/
tankspaced()
{
int ii,jj;
for(ii=0;ii<3;ii++)
for(jj=0;jj<3;jj++)
space[x+jj][y+ii]=2;
}
/***********************************/
/******坦克發(fā)出的炮彈******/
void bullet(int ii)
{
int xbu,ybu,xbum,ybum;
if(0==ii)
{
xbu=x+1;
ybu=y-1;
while(space[xbu][ybu]!=space[xbu][y] && ybu>=0)
{
setfillstyle(SOLID_FILL,YELLOW);
bar(63+xbu*10,45+ybu*10,65+xbu*10,53+ybu*10);
space[xbu][ybu]=1;
delay(5000);
setfillstyle(SOLID_FILL,BLACK);
bar(63+xbu*10,45+ybu*10,65+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
ybu--;
}
ybu++;
if(space[xbu][ybu]!=space[xbu][y])
{
setfillstyle(8,LIGHTRED);
bar(60+xbu*10,45+ybu*10,68+xbu*10,48+ybu*10);
delay(30000);
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
if(ybu>0)
{
ybu--;
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
}
}
else if(ybu>0)
{
ybu--;
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
}
}
if(2==ii)
{
xbu=x+1;
ybu=y+3;
while(space[xbu][ybu]!=space[xbu][y] && ybu<=37)
{
setfillstyle(SOLID_FILL,YELLOW);
bar(63+xbu*10,45+ybu*10,65+xbu*10,53+ybu*10);
space[xbu][ybu]=1;
delay(5000);
setfillstyle(SOLID_FILL,BLACK);
bar(63+xbu*10,45+ybu*10,65+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
ybu++;
}
ybu--;
if(space[xbu][ybu]!=space[xbu][y])
{
setfillstyle(8,LIGHTRED);
bar(60+xbu*10,50+ybu*10,68+xbu*10,53+ybu*10);
delay(30000);
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
if(ybu<37)
{
ybu++;
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
}
}
else if(ybu<37)
{
ybu++;
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
}
}
if(3==ii)
{
xbu=x-1;
ybu=y+1;
while(space[xbu][ybu]!=space[x][ybu] && xbu>=0)
{
setfillstyle(SOLID_FILL,YELLOW);
bar(60+xbu*10,48+ybu*10,68+xbu*10,50+ybu*10);
space[xbu][ybu]=1;
delay(5000);
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,48+ybu*10,68+xbu*10,50+ybu*10);
space[xbu][ybu]=0;
xbu--;
}
xbu++;
if(space[xbu][ybu]!=space[x][ybu])
{
setfillstyle(8,LIGHTRED);
bar(60+xbu*10,45+ybu*10,63+xbu*10,53+ybu*10);
delay(30000);
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
if(xbu>0)
{
xbu--;
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
}
}
else if(xbu>0)
{
xbu--;
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
}
}
if(1==ii)
{
xbu=x+3;
ybu=y+1;
while(space[xbu][ybu]!=space[x][ybu] && xbu<=36)
{
setfillstyle(SOLID_FILL,YELLOW);
bar(60+xbu*10,48+ybu*10,68+xbu*10,50+ybu*10);
space[xbu][ybu]=1;
delay(5000);
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,48+ybu*10,68+xbu*10,50+ybu*10);
space[xbu][ybu]=0;
xbu++;
}
xbu--;
if(space[xbu][ybu]!=space[x][ybu])
{
setfillstyle(8,LIGHTRED);
bar(65+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
delay(30000);
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
if(xbu<36)
{
xbu++;
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
}
}
else if(xbu<36)
{
xbu++;
setfillstyle(SOLID_FILL,BLACK);
bar(60+xbu*10,45+ybu*10,68+xbu*10,53+ybu*10);
space[xbu][ybu]=0;
}
}
}
/********坦克特效*******/
//坦克出場特效
tankspec1()
{
int s;
int dingdian[18]={155,390,165,380,183,380,193,390,193,412,
188,418,160,418,155,412,155,390};
for(s=0;s<15;s++)
{
setcolor(LIGHTRED);
drawpoly(9,dingdian);
//line(155,418,193,418);
delay(10000);
setcolor(BLACK);
drawpoly(9,dingdian);
delay(10000);
}
}
/******隨機(jī)數(shù)產(chǎn)生******/
//0~3隨機(jī)產(chǎn)生一個數(shù)
int myrand()
{
int ii;
srand((int)time(0));
ii=0+(int)(4.0*rand()/(RAND_MAX+1.0));
return ii;
}
/******計(jì)分函數(shù)*********/
void score()
{
setcolor(BLUE);
settextjustify(RIGHT_TEXT,TOP_TEXT);
itoa(sco,str,10);
settextstyle (0,0,3);
outtextxy(580,220,str);
}
/******Are you ready*****/
void ready()
{
setcolor(LIGHTRED);
settextstyle(0,0,1);
outtextxy(460,210,"Are you ready !");
}
/******游戲隨機(jī)地圖*******/
/*****大本營*****/
myboss()
{
setfillstyle(2,LIGHTRED);
bar(60+15*10,45+35*10,68+15*10,53+35*10);
space[15][35]=1;
bar(60+18*10,45+35*10,68+18*10,53+35*10);
space[18][35]=1;
bar(60+21*10,45+35*10,68+21*10,53+35*10);
space[21][35]=1;
bar(60+16*10,45+36*10,68+16*10,53+36*10);
space[16][36]=1;
bar(60+17*10,45+36*10,68+17*10,53+36*10);
space[17][36]=1;
bar(60+18*10,45+36*10,68+18*10,53+36*10);
space[18][36]=1;
bar(60+19*10,45+36*10,68+19*10,53+36*10);
space[19][36]=1;
bar(60+20*10,45+36*10,68+20*10,53+36*10);
space[20][36]=1;
bar(60+17*10,45+37*10,68+17*10,53+37*10);
space[17][37]=1;
bar(60+19*10,45+37*10,68+19*10,53+37*10);
space[19][37]=1;
}
/****************/
void map()
{
//空間左上角x=60 y=45
// 右上角x=420 y=45
// 左下角x=60 y=415
// 右下角x=420 y=415
//space[37][38]
//bar(60+i*10,45+j*10,68+i*10,53+j*10);
int ii,jj;
setfillstyle(9,7);
for(ii=14;ii<=22;ii++)
{
bar(60+ii*10,45+34*10,68+ii*10,53+34*10);
space[ii][34]=1;
}
for(jj=35;jj<38;jj++)
{
bar(60+14*10,45+jj*10,68+14*10,53+jj*10);
space[14][jj]=1;
bar(60+22*10,45+jj*10,68+22*10,53+jj*10);
space[22][jj]=1;
}
for(ii=0;ii<=15;ii++)
for(jj=29;jj<=30;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=21;ii<=36;ii++)
for(jj=29;jj<=30;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=0;ii<=4;ii++)
for(jj=24;jj<=25;jj++)
{
setfillstyle(9,7);
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=9;ii<=30;ii++)
for(jj=24;jj<=25;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=12;ii<=15;ii++)
for(jj=8;jj<=19;jj++)
{
setfillstyle(9,7);
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=22;ii<=25;ii++)
for(jj=8;jj<=19;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=16;ii<=21;ii++)
for(jj=12;jj<=15;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=4;ii<=7;ii++)
for(jj=6;jj<=14;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=0;ii<=7;ii++)
for(jj=15;jj<=17;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=30;ii<=36;ii++)
for(jj=4;jj<=6;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=30;ii<=32;ii++)
for(jj=7;jj<=19;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
for(ii=17;ii<=20;ii++)
for(jj=0;jj<=3;jj++)
{
bar(60+ii*10,45+jj*10,68+ii*10,53+jj*10);
space[ii][jj]=1;
}
ready();
myboss();
}
/***********************/
/******退出表單*********/
void escchange()
{
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(240,150,410,240);
setfillstyle(SOLID_FILL,BLUE);
bar(242,152,408,168);
setcolor(0);
rectangle(260,190,310,210);
rectangle(338,190,390,210);
settextstyle(1,0,1);
setcolor(15);
settextjustify(LEFT_TEXT,TOP_TEXT);
outtextxy(246,157,"B-Trix");
settextjustify(LEFT_TEXT,CENTER_TEXT);
outtextxy(278,201,"OK");
setcolor(0);
outtextxy(342,201,"Cancel");
}
/*************************/
/******游戲開始圖********/
void begin()
{
int ii,jj;
setcolor(BLUE);
setlinestyle(0,0,1);
rectangle(40,25,595,445);
setlinestyle(0,0,2);
rectangle(35,20,600,450);
setlinestyle(0,0,1);
line(450,25,450,445);
setfillstyle(1,7);
for(ii=50;ii<=430;ii+=8) //外邊框橫行排列
{
bar(ii,35,ii+8,43);
bar(ii,425,ii+8,433);
ii+=2;
}
for(jj=45;jj<=420;jj+=8) //外邊框縱行排列
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -