推箱子C语言小游戏代码.docx

上传人:b****5 文档编号:7487197 上传时间:2023-05-11 格式:DOCX 页数:17 大小:16.54KB
下载 相关 举报
推箱子C语言小游戏代码.docx_第1页
第1页 / 共17页
推箱子C语言小游戏代码.docx_第2页
第2页 / 共17页
推箱子C语言小游戏代码.docx_第3页
第3页 / 共17页
推箱子C语言小游戏代码.docx_第4页
第4页 / 共17页
推箱子C语言小游戏代码.docx_第5页
第5页 / 共17页
推箱子C语言小游戏代码.docx_第6页
第6页 / 共17页
推箱子C语言小游戏代码.docx_第7页
第7页 / 共17页
推箱子C语言小游戏代码.docx_第8页
第8页 / 共17页
推箱子C语言小游戏代码.docx_第9页
第9页 / 共17页
推箱子C语言小游戏代码.docx_第10页
第10页 / 共17页
推箱子C语言小游戏代码.docx_第11页
第11页 / 共17页
推箱子C语言小游戏代码.docx_第12页
第12页 / 共17页
推箱子C语言小游戏代码.docx_第13页
第13页 / 共17页
推箱子C语言小游戏代码.docx_第14页
第14页 / 共17页
推箱子C语言小游戏代码.docx_第15页
第15页 / 共17页
推箱子C语言小游戏代码.docx_第16页
第16页 / 共17页
推箱子C语言小游戏代码.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

推箱子C语言小游戏代码.docx

《推箱子C语言小游戏代码.docx》由会员分享,可在线阅读,更多相关《推箱子C语言小游戏代码.docx(17页珍藏版)》请在冰点文库上搜索。

推箱子C语言小游戏代码.docx

推箱子C语言小游戏代码

#include

#include

#include

#include

//打印地图

voidDrawMap();

//设置颜色

voidSetColor(intnColor);

//获取玩家坐标

POINTGetGamerPosition();

//上

voidUp();

//下

voidDown();

//左

voidLeft();

//右

voidRight();

//获取空箱子个数

intGetSpareBox();

//地图

//0:

空地;3箱子的目的地4箱子

//6人7箱子与目的地的集合

//1:

墙壁;9人在箱子的目的地

intg_map[2][10][12]=

{

{

{0,0,0,0,1,1,1,0,0,0,0,0},

{0,0,0,0,1,3,1,0,0,0,0,0},

{0,0,0,0,1,0,1,1,1,1,1,1},

{1,1,1,1,1,4,0,4,0,0,3,1},

{1,3,0,0,0,4,6,1,1,1,1,1},

{1,1,1,1,1,1,4,1,0,0,0,0},

{0,0,0,0,0,1,0,1,0,0,0,0},

{0,0,0,0,0,1,0,1,0,0,0,0},

{0,0,0,0,0,1,3,1,0,0,0,0},

{0,0,0,0,0,1,1,1,0,0,0,0},

},

{

{1,1,1,1,1,0,0,0,0,0,0,0},

{1,0,0,0,1,0,1,1,1,0,0,0},

{1,0,4,0,1,0,1,1,1,1,1,1},

{1,0,4,6,1,0,1,0,0,0,3,1},

{1,1,1,4,1,1,1,0,0,0,3,1},

{1,1,1,0,0,0,0,0,0,0,3,1},

{0,1,0,0,0,1,0,0,0,0,0,1},

{0,1,0,0,0,1,0,0,0,0,0,1},

{0,1,0,0,0,1,1,1,1,1,1,1},

{1,1,1,1,1,1,0,0,0,0,0,0},

}

};

intg_nCurrentLevel=0;//当前管卡

intmain()

{

//设置窗口大小

system("modeconcols=26lines=11");

//设置标题

//SetConsoLeTitle("推箱子");

charnInput=0;//输入字符

while

(1)

{

//如果箱子推完了过关

if(0==GetSpareBox())

g_nCurrentLevel++;

//清屏

system("cls");

//如果没有关卡,那就恭喜你成功通关。

if(g_nCurrentLevel>=sizeof(g_map)/sizeof(g_map[0]))

{

printf("恭喜你已经通关!

");

break;

}

//打印地图

DrawMap();

nInput=_getch();

switch(nInput)

{

//往上

case'w':

case72:

Up();

break;

case's':

case80:

Down();

break;

case'a':

case75:

Left();

break;

case'd':

case77:

Right();

break;

}

}

system("pause");

return0;

}

//打印地图

voidDrawMap()

{

for(inti=0;i<10;i++)

{

for(intj=0;j<12;j++)

{

switch(g_map[g_nCurrentLevel][i][j])

{

case0:

//道路,空地

printf("");

break;

case1:

SetColor(FOREGROUND_RED|FOREGROUND_INTENSITY);

printf("■");

break;

case3:

SetColor(FOREGROUND_GREEN|FOREGROUND_INTENSITY);

printf("☆");

break;

case4:

SetColor(FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY);

printf("□");

break;

case6:

SetColor(FOREGROUND_GREEN|FOREGROUND_INTENSITY);

printf("♂");

break;

case7:

SetColor(FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY);

printf("★");

break;

case9:

SetColor(FOREGROUND_GREEN|FOREGROUND_INTENSITY);

printf("♂");

break;

}

}

printf("\n");

}

}

//设置颜色

voidSetColor(intnColor)

{

HANDLEhConsole=GetStdHandle(STD_OUTPUT_HANDLE);

//MSD

SetConsoleTextAttribute(hConsole,nColor);

}

//获取玩家的坐标

POINTGetGamerPosition()

{

POINTpos={-1,-1};

for(inti=0;i<10;i++)

{

for(intj=0;j<12;j++)

{

if(g_map[g_nCurrentLevel][i][j]==6||g_map[g_nCurrentLevel][i][j]==9)

{

pos.x=i;

pos.y=j;

returnpos;

}

}

}

returnpos;

}

//上

voidUp()

{

//获取玩家坐标

POINTpos=GetGamerPosition();

//1.人的前面是空地

if(g_map[g_nCurrentLevel][pos.x-1][pos.y]==0)

{

g_map[g_nCurrentLevel][pos.x-1][pos.y]=6;//空地改为人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//2,人前是目的地

if(g_map[g_nCurrentLevel][pos.x][pos.y]==3)

{

g_map[g_nCurrentLevel][pos.x-1][pos.y]=9;//人在目的地

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//3.人前是箱子

if(g_map[g_nCurrentLevel][pos.x-1][pos.y]==4)

{

//a.箱子前面是空地

if(g_map[g_nCurrentLevel][pos.x-2][pos.y]==0)

{

g_map[g_nCurrentLevel][pos.x-2][pos.y]=4;//空地变箱子

g_map[g_nCurrentLevel][pos.x-1][pos.y]=6;//箱子变人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//b.箱子前面是目的地

if(g_map[g_nCurrentLevel][pos.x-2][pos.y]==3)

{

g_map[g_nCurrentLevel][pos.x-2][pos.y]=7;//箱子到达目的地重合

g_map[g_nCurrentLevel][pos.x-1][pos.y]=6;//箱子位子变成人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

}

//4.人的前面是箱子和目的地的重合

if(g_map[g_nCurrentLevel][pos.x-1][pos.y]==7)

{

//a.箱子前面是空地

if(g_map[g_nCurrentLevel][pos.x-2][pos.y]==0)

{

g_map[g_nCurrentLevel][pos.x-2][pos.y]=4;

g_map[g_nCurrentLevel][pos.x-1][pos.y]=6;

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;

}

//b.箱子前面是目的地

if(g_map[g_nCurrentLevel][pos.x-2][pos.y]==3)

{

g_map[g_nCurrentLevel][pos.x-2][pos.y]=7;//箱子到达目的地

g_map[g_nCurrentLevel][pos.x-1][pos.y]=9;//箱子变成人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

}

}

//下

voidDown()

{

//获取玩家坐标

POINTpos=GetGamerPosition();

//1.人的前面是空地

if(g_map[g_nCurrentLevel][pos.x+1][pos.y]==0)

{

g_map[g_nCurrentLevel][pos.x+1][pos.y]=6;//空地改为人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//2,人前是目的地

if(g_map[g_nCurrentLevel][pos.x+1][pos.y]==3)

{

g_map[g_nCurrentLevel][pos.x+1][pos.y]=9;//人在目的地

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//3.人前是箱子

if(g_map[g_nCurrentLevel][pos.x+1][pos.y]==4)

{

//a.箱子前面是空地

if(g_map[g_nCurrentLevel][pos.x+2][pos.y]==0)

{

g_map[g_nCurrentLevel][pos.x+2][pos.y]=4;//空地变箱子

g_map[g_nCurrentLevel][pos.x+1][pos.y]=6;//箱子变人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//b.箱子前面是目的地

if(g_map[g_nCurrentLevel][pos.x+2][pos.y]==3)

{

g_map[g_nCurrentLevel][pos.x+2][pos.y]=7;//箱子到达目的地重合

g_map[g_nCurrentLevel][pos.x+1][pos.y]=6;//箱子位子变成人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

}

//4.人的前面是箱子和目的地的重合

if(g_map[g_nCurrentLevel][pos.x+1][pos.y]==7)

{

//a.箱子前面是空地

if(g_map[g_nCurrentLevel][pos.x+2][pos.y]==0)

{

g_map[g_nCurrentLevel][pos.x+2][pos.y]=4;

g_map[g_nCurrentLevel][pos.x-1][pos.y]=6;

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;

}

//b.箱子前面是目的地

if(g_map[g_nCurrentLevel][pos.x+2][pos.y]==3)

{

g_map[g_nCurrentLevel][pos.x+2][pos.y]=7;//箱子到达目的地

g_map[g_nCurrentLevel][pos.x+1][pos.y]=9;//箱子变成人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

}

}

voidLeft()

{

//获取玩家坐标

POINTpos=GetGamerPosition();

//1.人的前面是空地

if(g_map[g_nCurrentLevel][pos.x][pos.y-1]==0)

{

g_map[g_nCurrentLevel][pos.x][pos.y-1]=6;//空地改为人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//2,人前是目的地

if(g_map[g_nCurrentLevel][pos.x][pos.y-1]==3)

{

g_map[g_nCurrentLevel][pos.x][pos.y-1]=9;//人站在目的地

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//3.人前是箱子

if(g_map[g_nCurrentLevel][pos.x][pos.y-1]==4)

{

//a.箱子前面是空地

if(g_map[g_nCurrentLevel][pos.x][pos.y-2]==0)

{

g_map[g_nCurrentLevel][pos.x][pos.y-2]=4;//空地变箱子

g_map[g_nCurrentLevel][pos.x][pos.y-1]=6;//箱子变人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

//b.箱子前面是目的地

if(g_map[g_nCurrentLevel][pos.x][pos.y-2]==3)

{

g_map[g_nCurrentLevel][pos.x][pos.y-2]=7;//箱子到达目的地重合

g_map[g_nCurrentLevel][pos.x][pos.y-1]=6;//箱子位子变成人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;//改成目的地

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;//改成空地

}

}

//4.人的前面是箱子和目的地的重合

if(g_map[g_nCurrentLevel][pos.x][pos.y-1]==7)

{

//a.箱子前面是空地

if(g_map[g_nCurrentLevel][pos.x][pos.y-2]==0)

{

g_map[g_nCurrentLevel][pos.x][pos.y-2]=4;

g_map[g_nCurrentLevel][pos.x][pos.y-1]=6;

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLevel][pos.x][pos.y]=3;

else

g_map[g_nCurrentLevel][pos.x][pos.y]=0;

}

//b.箱子前面是目的地

if(g_map[g_nCurrentLevel][pos.x][pos.y-2]==3)

{

g_map[g_nCurrentLevel][pos.x][pos.y-2]=7;//箱子到达目的地

g_map[g_nCurrentLevel][pos.x][pos.y-1]=9;//箱子变成人

//如果人原来站在目的地上面

if(g_map[g_nCurrentLevel][pos.x][pos.y]==9)

g_map[g_nCurrentLe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2