推箱子游戏的代码)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

#include

#include

typedef struct winer

{

int x,y;

struct winer *p;

}winer;

char status [20][20];

char far *printScreen=(char far* )0xB8000000;

void putoutChar(int y,int x,char ch,char fc,char bc);

void printWall(int x, int y);

void printBox(int x, int y);

void printBoxDes(int x, int y);

void printDestination(int x, int y);

void printDestination1(int x,int y,winer **win,winer **pw); void printMan(int x, int y);

void init();

winer *initStep1();

winer *initStep2();

winer *initStep3();

winer *initStep4();

void moveBoxSpacetoSpace(int x ,int y, char a);

void moveBoxDestoSpace(int x ,int y, char a) ;

void moveBoxSpacetoDes(int x, int y, char a);

void moveBoxDestoDes(int x, int y, char a);

int judge(int x, int y);

void move(int x, int y, char a);

void reset(int i);

void putoutChar(int y,int x,char ch,char fc,char bc)

{

printScreen[(x*160)+(y<<1)+0]=ch;

printScreen[(x*160)+(y<<1)+1]=(bc*16)+fc;

}

void printWall(int x,int y)

{

putoutChar(y-1,x-1,219,GREEN,BLACK);

status[x][y]='w';

}

void printBox(int x,int y)

{

putoutChar(y-1,x-1,10,WHITE,BLACK);

status[x][y]='b';

}

void printDestination1(int x,int y,winer **win,winer **pw) {

winer *qw;

putoutChar(y-1,x-1,003,YELLOW,BLACK);

status[x][y]='m';

if(*win==NULL)

{

*win=*pw=qw=(winer* )malloc(sizeof(winer));

(*pw)->x=x;

(*pw)->y=y;

(*pw)->p=NULL;

}

else

{

qw=(winer* )malloc(sizeof(winer));

qw->x=x;

qw->y=y;

(*pw)->p=qw;

(*pw)=qw;qw->p=NULL;

}

}

void printDestination(int x,int y)

{

putoutChar(y-1,x-1,003,YELLOW,BLACK);

status[x][y]='m';

}

void printMan(int x,int y)

{

gotoxy(y,x);

_AL=02;

_CX=01;

_AH=0xa;

geninterrupt(0x10);

}

void printBoxDes(int x,int y)

{

putoutChar(y-1,x-1,10,YELLOW,BLACK);

status[x][y]='i';

}

void init()

{

int i,j;

for(i=0;i<20;i++)

for(j=0;j<20;j++)

status[i][j]=0;

_AL=3;

_AH=0;

geninterrupt(0x10);

gotoxy(40,4);

printf("Welcome to the box world!");

gotoxy(40,6);

printf("You can use up, down, left,");

gotoxy(40,8);

printf("right key to control it, or");

gotoxy(40,10);

printf("you can press Esc to quit it."); gotoxy(40,12);

printf("Press space to reset the game."); gotoxy(40,14);

printf("Wish you have a good time !");

gotoxy(40,16);

printf("April , 2007");

}

winer *initStep1()

{

int x;

int y;

winer *win=NULL;

winer *pw;

for(x=1,y=5;y<=9;y++)

printWall(x+4,y+10);

for(y=5,x=2;x<=5;x++)

printWall(x+4,y+10);

相关文档
最新文档