vs2013怎么运行c语言代码,谁有某一个游戏的代码?我试试在 vs2013 运行一下

...........重新来

#include

#include

#include

typedef int bios.h;

#define ESC   0x011b

#define UP    0x4800

#define DOWN  0x5000

#define LEFT  0x4b00

#define RIGHT 0x4d00

#define MAXSIZE 10

typedef struct

{

int x;

int y;

}point;

point des[MAXSIZE];

char map[10][10] =

{

"        ",

"    ####",

"  ### @#",

"  #  b #",

" ## # ###",

" #  # #*#",

" # #  b*#",

" # b   *#",

" ########",

"         "

};

void DrawMan(int x, int y)

{

gotoxy(x+10, y+5);

textcolor(YELLOW);

putch(2);

printf('\b');

}

void DrawSpace(int x, int y)

{

gotoxy(x+10, y+5);

printf(" ");

}

void DrawBox(int x, int y)

{

gotoxy(x+10, y+5);

textcolor(CYAN);

putch('@');

}

void DrawDes(int x, int y)

{

gotoxy(x+10, y+5);

textcolor(YELLOW);

putch('*');

}

void DrawBoxIn(int x, int y)

{

gotoxy(x+10, y+5);

textcolor(YELLOW);

putch('@');

}

void DrawMap(point *pman)

{

int x = 0, y = 0;

int i = 0;

for (; y < 10; ++y)

{

for (x=0; x < 10; ++x)

{

if (map[y][x] == '#')

{

textcolor(GREEN);

gotoxy(x+10, y+5);

putch(219);

}

else if (map[y][x] == '*')

{

DrawDes(x, y);

des[i].x = x;

des[i].y = y;

++i;

}

else if (map[y][x] == '@')

{

pman->x = x;

pman->y = y;

DrawMan(x, y);

map[y][x] = ' ';

}

else if (map[y][x] == 'b')

{

DrawBox(x, y);

}

else if (map[y][x] == 'i')

{

DrawBoxIn(x, y);

des[i].x = x;

des[i].y = y;

++i;

}

des[i].x = -1;

}

gotoxy(48, 6);

printf("Welcome to come to BoxMan!!");

gotoxy(48, 8);

printf("Press direct key to move the man!");

gotoxy(48, 10);

printf("Press ESC to quit the game!");

gotoxy(48, 12);

printf("Enjoy yourself in this game!");

gotoxy(36, 2);

textcolor(RED);

putch('B');

putch('o');

putch('x');

putch('M');

putch('a');

putch('n');

}

}

int main()

{

point man = {1, 1};

int key = 0;

int i = 0, count = 0;

clrscr();

DrawMap(&man);

while (key != ESC)

{

while (bioskey(1) == 0);

key = bioskey(0);

switch (key)

{

case UP:

if (map[man.y - 1][man.x] == '#')

{

break;

}

else if (map[man.y - 1][man.x] == 'b' || map[man.y - 1][man.x] == 'i')

{

switch (map[man.y - 2][man.x])

{

case 'b':

case '#':

case 'i':

break;

case ' ':

/*move box*/

if (map[man.y - 1][man.x] == 'i')

{

map[man.y - 1][man.x] = '*';

}

else

{

map[man.y - 1][man.x] = ' ';

}

map[man.y - 2][man.x] = 'b';

DrawBox(man.x, man.y - 2);

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

--man.y;

DrawMan(man.x, man.y);

break;

case '*':

/*move box in*/

if (map[man.y - 1][man.x] == 'i')

{

map[man.y - 1][man.x] = '*';

}

else

{

map[man.y - 1][man.x] = ' ';

}

map[man.y - 2][man.x] = 'i';

DrawBoxIn(man.x, man.y - 2);

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

--man.y;

DrawMan(man.x, man.y);

break;

defalut:

break;

}

break;

}

else

{

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

--man.y;

DrawMan(man.x, man.y);

break;

}

case DOWN:

if (map[man.y + 1][man.x] == '#')

{

break;

}

else if (map[man.y + 1][man.x] == 'b' || map[man.y + 1][man.x] == 'i')

{

switch (map[man.y + 2][man.x])

{

case 'b':

case '#':

case 'i':

break;

case ' ':

/*move box*/

if (map[man.y + 1][man.x] == 'i')

{

map[man.y + 1][man.x] = '*';

}

else

{

map[man.y + 1][man.x] = ' ';

}

map[man.y + 2][man.x] = 'b';

DrawBox(man.x, man.y + 2);

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

++man.y;

DrawMan(man.x, man.y);

break;

case '*':

/*move box in*/

if (map[man.y + 1][man.x] == 'i')

{

map[man.y + 1][man.x] = '*';

}

else

{

map[man.y + 1][man.x] = ' ';

}

map[man.y + 2][man.x] = 'i';

DrawBoxIn(man.x, man.y + 2);

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

++man.y;

DrawMan(man.x, man.y);

break;

default:

break;

}

break;

}

else

{

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

++man.y;

DrawMan(man.x, man.y);

break;

}

case LEFT:

if (map[man.y][man.x - 1] == '#')

{

break;

}

else if (map[man.y][man.x - 1] == 'b' || map[man.y][man.x - 1] == 'i')

{

switch (map[man.y][man.x - 2])

{

case 'b':

case '#':

case 'i':

break;

case ' ':

/*move box*/

if (map[man.y][man.x - 1] == 'i')

{

map[man.y][man.x - 1] = '*';

}

else

{

map[man.y][man.x - 1] = ' ';

}

map[man.y][man.x - 2] = 'b';

DrawBox(man.x - 2, man.y);

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

--man.x;

DrawMan(man.x, man.y);

break;

case '*':

/*move box in*/

if (map[man.y][man.x - 1] == 'i')

{

map[man.y][man.x - 1] = '*';

}

else

{

map[man.y][man.x - 1] = ' ';

}

map[man.y][man.x - 2] = 'i';

DrawBoxIn(man.x - 2, man.y);

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

--man.x;

DrawMan(man.x, man.y);

break;

default:

break;

}

break;

}

else

{

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

--man.x;

DrawMan(man.x, man.y);

break;

}

case RIGHT:

if (map[man.y][man.x + 1] == '#')

{

break;

}

else if (map[man.y][man.x + 1] == 'b' || map[man.y][man.x + 1] == 'i')

{

switch (map[man.y][man.x + 2])

{

case 'b':

case '#':

case 'i':

break;

case ' ':

/*move box*/

if (map[man.y][man.x + 1] == 'i')

{

map[man.y][man.x + 1] = '*';

}

else

{

map[man.y][man.x + 1] = ' ';

}

map[man.y][man.x + 2] = 'b';

DrawBox(man.x + 2, man.y);

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

++man.x;

DrawMan(man.x, man.y);

break;

case '*':

/*move box in*/

if (map[man.y][man.x + 1] == 'i')

{

map[man.y][man.x + 1] = '*';

}

else

{

map[man.y][man.x + 1] = ' ';

}

map[man.y][man.x + 2] = 'i';

DrawBoxIn(man.x + 2, man.y);

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

++man.x;

DrawMan(man.x, man.y);

break;

default:

break;

}

break;

}

else

{

if (map[man.y][man.x] == '*')

{

DrawDes(man.x, man.y);

}

else

{

DrawSpace(man.x, man.y);

}

DrawSpace(man.x, man.y);

++man.x;

DrawMan(man.x, man.y);

break;

}

defualt:

break;

}

for (i=0, count=0; des[i].x != -1; ++i)

{

if (map[des[i].y][des[i].x] == '*')

{

++count;

}

}

if (count == 0)

{

gotoxy(35, 3);

printf("Ok! you win!");

getch();

key = ESC;

}

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值