c语言推箱子给上颜色,本人的C语言大作业——推箱子
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
#include
#include
#include
#include
#include
#include
#include
#include?
#include
#include?
#define??MAX???3????????/*游戲的總關數*/
#define??STEPMAX???3????/*悔棋的最大步數*/
#define?Key_R?0x1372
#define?Key_Up??0x4800
#define?Key_Enter?0x1c0d
#define?Key_Down??0x5000
#define?Key_P?????0x1970
#define?Key_Esc???0x11b
#define?Key_Right??0x4d00
#define?Key_Left??0x4b00
#define??BKCOLOR???GREEN?/*設置背景顏色*/
#define??STARTX???40?????/*畫游戲界面時,二維數組中ghose[0][0]左上角頂點在VGA模式下的橫坐標*/
#define??STARTY???80?????/*畫游戲界面時,二維數組中ghose[0][0]左上角頂點在VGA模式下的縱坐標*/
int?ghose[10][10];???????/*用來表示游戲中各種狀態的二維數組*/
int?BOXNUM;??????????????/*每關中箱子的個數*/
int?MISSIONNUM;??????????/*玩家正在玩的關數*/
int?Key;?????????????????/*從鍵盤讀取按鍵值*/
int?STEPNUM;?????????????/*人走的步數*/
int?DIRECTIONKEY;????????/*用來記錄玩家所按的方向鍵*/
int?BOXMOVE[STEPMAX];????/*記錄人行走時箱子移動了沒有.如有,BOXMOVE[i]=1,否則BOXMOVE[i]=0*/
int?STEP[STEPMAX];???????????/*記錄人行走的方向*/
typedef??struct??CURRENT
{?int?x;
int?y;
}PLAYER;
PLAYER??p;???????????????/*p.x和p.y分別表示人當前所在的橫縱坐標*/
typedef??struct?ADD
{?int?x;
int?y;
}ADD;????????????????????/*人行走或悔棋時,用來表示人下一步移動需要增加的橫縱坐標值*/
typedef?struct?STAR
{?int?x;
int??y;
int??c;
}?STAR;
STAR??s[300];????????????/*畫星星閃動的畫面,x,y分別表示每顆星星所在的位置,c表示星星的顏色*/
DRAWSTAR1()??????????????/*畫星星*/
{int??i,j,m,n,dotx,doty,color,maxcolor;
m=getmaxx();
n=getmaxy();
maxcolor=getmaxcolor();
for(i=0;i<300;i++)
{?s[i].x=random(m+1);
s[i].y=random(n+1);
s[i].c=random(maxcolor);
putpixel(s[i].x,s[i].y,s[i].c);}}
DRAWSTAR()????????????/*讓星星的坐標不變,顏色變換*/
{int??i,j,m,n,dotx,doty,color,maxcolor;
m=getmaxx();
n=getmaxy();
maxcolor=getmaxcolor();
for(i=0;i<300;i++)
{?s[i].x=random(m+1);
s[i].y=random(n+1);
s[i].c=random(maxcolor);
putpixel(s[i].x,s[i].y,s[i].c);
}
do{?for(i=0;i<20000;i++)
delay(2);
for(j=0;j<300;j++)
{
s[j].c=random(maxcolor);
putpixel(s[j].x,s[j].y,s[j].c);}
}while(!bioskey(1));
}
GOOD()????????????????/*畫火球滾動的畫面*/
{void?*?ptr;
float?i;
setactivepage(1);
setcolor(RED);
setfillstyle(1,14);
fillellipse(10,10,10,10);
ptr=malloc(imagesize(0,0,20,20));
getimage(0,0,20,20,ptr);
randomize();
setactivepage(0);
DRAWSTAR1();
for(i=0;i<6.28*4;i=i+0.005)
{putimage(300+8*(cos(i)+i*sin(i)),240+6*(sin(i)-i*cos(i)),ptr,COPY_PUT);
putimage(300+8*(cos(i)+(i)*sin(i)),240+6*(sin(i)-(i)*cos(i)),ptr,COPY_PUT);
if(kbhit())?break;
delay(10);
}
}
void?GAME()?????/*游戲過程的控制*/
{?int?i,j,flag;
ADD??a;
MISSIONNUM=0;
NEXTMISSION();
do?{?flag=0;
Key=bioskey(0);
switch(Key)
{?case??Key_Enter:{NEXTMISSION();break;}
case??Key_Up:{a.x=-1;a.y=0;flag=1;DIRECTIONKEY=Key;break;}
case??Key_Down:{a.x=1;a.y=0;flag=1;DIRECTIONKEY=Key;break;}
總結
以上是生活随笔為你收集整理的c语言推箱子给上颜色,本人的C语言大作业——推箱子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行卡没绑定手机号怎么查余额
- 下一篇: 狭义的货币供给是指