找高手帮忙翻译一下c语言 谢谢了

#include <dos.h>
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <bios.h>
#include <alloc.h>

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(41,4);
printf(" --------- up");
gotoxy(41,6);
printf(" --------- down");
gotoxy(41,8);
printf(" --------- left");
gotoxy(41,10);
printf(" --------- right");
gotoxy(40,12);
printf("Space ----- reset");
gotoxy(40,14);
printf("Esc ------- quit");
gotoxy(18,24);
printf("CopyRight: 2008 LuoFuxing");
gotoxy(40,4);
_CX=01;
_AH=0xa;
_AL=24;
geninterrupt(0x10);
gotoxy(40,6);
_CX=01;
_AH=0xa;
_AL=25;
geninterrupt(0x10);
gotoxy(40,8);
_CX=01;
_AH=0xa;
_AL=27;
geninterrupt(0x10);
gotoxy(40,10);
_CX=01;
_AH=0xa;
_AL=26;
geninterrupt(0x10);
}
上面的不用翻译 只帮忙翻译一下这个补充 winer *initStep1()
{
int x;
int y;
winer *win=NULL;
winer *pw;
gotoxy(25,2);
printf("Level 1");
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);
for(y=9,x=2;x<=5;x++)
printWall(x+4,y+10);
for(y=1,x=3;x<=8;x++)
printWall(x+4,y+10);
for(x=3,y=3;x<=5;x++)
printWall(x+4,y+10);
for(x=5,y=8;x<=9;x++)
printWall(x+4,y+10);
for(x=7,y=4;x<=9;x++)
printWall(x+4,y+10);
for(x=9,y=5;y<=7;y++)
printWall(x+4,y+10);
for(x=8,y=2;y<=3;y++)
printWall(x+4,y+10);
printWall(5+4,4+10);
printWall(5+4,7+10);
printWall(3+4,2+10);
printBox(3+4,6+10);
printBox(3+4,7+10);
printBox(4+4,7+10);
printDestination1(4+4,2+10,&win,&pw);
printDestination1(5+4,2+10,&win,&pw);
printDestination1(6+4,2+10,&win,&pw);
printMan(2+4,8+10);
return win; }

1、这是一个推箱子的游戏小程序;

最上面的init() 函数是初始化函数,产生一个游戏说明:

↑ ———— UP

↓ ———— down

← ———— left

→ ———— right

Space ———— reset

Esc ———— quit

2、winer *initStep1() 函数是执行了游戏的第一个级别,

进行画墙、画箱子什么的!

3、具体执行结果如下图所示!

4、有什么不清楚的联系我!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-28
*p好像是指针,&p应该取*p的地址,哎,指针都好久没用了,其实你只要弄懂指针和以上程序中的函数就自己能看懂了,哎,代码没注释,看的累啊
第2个回答  2009-12-30
wqe
相似回答