C++实现推箱子小游戏
本文实例为大家分享了C++实现推箱子小游戏的具体代码,供大家参考,具体内容如下
游戏效果
简单易懂的推箱子闯关小游戏。
游戏代码
#include#include #include usingnamespacestd; #defineVERSION"2.2" #defineM55 intn,m,wall[M][M],hole[M][M],box[M][M]; intstep,dct,query,cross,rx[233],ry[233]; charstr[M][M],title[M],o; charatlas[M][M][M]={ {"...#@.","@..*..","#*##..","..##*#","..X.&.",".@#..."}, {"########...####","########..*####","########*....##","######.*..*..##" ,"@@..##.###.#...","@@.X......*..*.","@@..#.####.####","#####......####"}, {"####..#...##","##.*..*.#.##","...#.**#....","X*.....#*##.","#.*###**....","##..##.#*..." ,"###@@@.#.*#.","###@@@@@#.*.","####@@@@@...","#######.#*.#","#######....#","#######...##"}, {"..@*.##",".@*@*..","&*@*@X.",".@*@*.#","..@*..#"} }; intA[M]={6,8,12,5},B[M]={6,15,12,7}; structpos{ intx,y; }player; structnode{ posman; intdct; vector box; node(){ box.clear(); } }rec[M*M*M]; voidcolor(intx); voidclean(); boolcheck(intx,inty,intcross); boolforward(intrx,intry); boolwin(); voidpt(); voidupdate(); voidplaying(); voidin(); voidpass(); voidInit(); voidremain(); intmain(){ MessageBox(NULL,"欢迎来到推箱子游戏!","温馨提示",MB_OK); Init(); while(true){ remain(); } return0; } voidcolor(intx){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x); } voidclean(){ system("cls"); color(7); } boolcheck(intx,inty,intcross){ if(!cross){ returnx<1||x>n||y<1||y>m||wall[x][y]; } returnx<0||x>n+1||y<0||y>m+1; } boolforward(intrx,intry){ intx=player.x+rx,y=player.y+ry,X=x+rx,Y=y+ry; if(check(x,y,cross)){ returnfalse; } if(box[x][y]){ if(check(X,Y,0)||box[X][Y]){ returnfalse; } } returntrue; } boolwin(){ for(inti=0;i ='1'&&o<='4'){ intid=o-48-1; n=A[id]; m=B[id]; for(inti=1;i<=n;i++){ for(intj=1;j<=m;j++){ charo=atlas[id][i-1][j-1]; if(o=='X'){ player.x=i; player.y=j; } if(o=='#'){ wall[i][j]=1; } if(o=='@'||o=='&'){ hole[i][j]=1; } if(o=='*'||o=='&'){ box[i][j]=1; } } } playing(); break; }elseif(o==48){ break; } } } voidInit(){ system("modeconcols=40lines=20"); SetConsoleTitle("推箱子"); rx[72]=-1; rx[80]=1; ry[77]=1; ry[75]=-1; } voidremain(){ clean(); puts("1.闯关模式"); puts("2.输入模式"); puts("Esc.退出游戏"); while(o=getch()){ if(o=='1'){ pass(); break; }elseif(o=='2'){ in(); break; }elseif(o==27){ exit(0); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。