推箱子C语言小游戏代码文档格式.docx
- 文档编号:21104925
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:12
- 大小:15.86KB
推箱子C语言小游戏代码文档格式.docx
《推箱子C语言小游戏代码文档格式.docx》由会员分享,可在线阅读,更多相关《推箱子C语言小游戏代码文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
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,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,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++;
//清屏
cls"
//如果没有关卡,那就恭喜你成功通关。
if(g_nCurrentLevel>
=sizeof(g_map)/sizeof(g_map[0])){printf("
恭喜你已经通关!
"
break;
}//打印地图
DrawMap();
nInput=_getch();
switch(nInput){//往上
case'
w'
:
case72:
Up();
s'
case80:
Down();
a'
case75:
Left();
d'
case77:
Right();
}}
pause"
return0;
voidDrawMap(){for(inti=0;
i<
10;
i++){for(intj=0;
j<
12;
j++){switch(g_map[g_nCurrentLevel][i][j]){case0:
//道路,空地
printf("
case1:
SetColor(FOREGROUND_RED|FOREGROUND_INTENSITY);
■"
case3:
SetColor(FOREGROUND_GREEN|FOREGROUND_INTENSITY);
☆"
case4:
SetColor(FOREGROUND_RED|FOREGROUND_BLUEFOREGROUND_INTENSITY);
□"
case6:
♂"
case7:
★"
case9:
\n"
voidSetColor(intnColor){HANDLEhConsole=GetStdHandle(STD_OUTPUT_HANDLE);
//MSD
SetConsoleTextAttribute(hConsole,nColor);
}//获取玩家的坐标
POINTGetGamerPosition()
{||}POINTpos={-1,-1};
for(inti=0;
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;
//人在目的地
//改成空地}//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;
//箱子变人
//改成空地
//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;
//箱子位子变成人
//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;
}//如果人原来站在目的地上面
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;
//箱子变成人
//改成空地}}}//下
voidDown(){//获取玩家坐标
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+1][pos.y]==3){g_map[g_nCurrentLevel][pos.x+1][pos.y]=9;
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+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+1][pos.y]==7){//a.箱子前面是空地
g_map[g_nCurrentLevel][pos.x+1][pos.y]=9;
//改成空地}}}voidLeft(){//获取玩家坐标
if(g_map[g_nCurrentLevel][pos.x][pos.y-1]==0){g_map[g_nCurrentLevel][pos.x][pos.y-1]=6;
//2,人前是目的地
if(g_map[g_nCurrentLevel][pos.x][pos.y-1]==3){g_map[g_nCurrentLevel][pos.x][pos.y-1]=9;
//人站在目的地
//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-2]==3){g_map[g_nCurrentLevel][pos.x][pos.y-2]=7;
//箱子到达目的地重合
}}//如果人原来站在目的地上面
if(g_map[g_nCurrentLevel][pos.x][pos.y-1]==7){//a.箱子前面是空地
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;
//改成空地}}
voidRight(){//获取玩家坐标
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+1]==3){g_map[g_nCurrentLevel][pos.x][pos.y+1]=9;
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;
//改成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 箱子 语言 小游戏 代码