基于控制台的C++推箱子.

上传人:我** 文档编号:115320159 上传时间:2019-11-13 格式:DOC 页数:26 大小:86KB
返回 下载 相关 举报
基于控制台的C++推箱子._第1页
第1页 / 共26页
基于控制台的C++推箱子._第2页
第2页 / 共26页
基于控制台的C++推箱子._第3页
第3页 / 共26页
基于控制台的C++推箱子._第4页
第4页 / 共26页
基于控制台的C++推箱子._第5页
第5页 / 共26页
点击查看更多>>
资源描述

《基于控制台的C++推箱子.》由会员分享,可在线阅读,更多相关《基于控制台的C++推箱子.(26页珍藏版)》请在金锄头文库上搜索。

1、C+实现推箱子游戏:主函数部分:#includeMap.h#includePush.h#include#include#includeusing namespace std;void Game();int main()Game();return 0;void Game()int level = 0;Map myMap;Push myPush;bool flag = false; while(true) if(!flag) cout t*经典推箱子*tnn tt1.开始游戏ttn tt2.退出游戏ttn n=n; char start = getch(); system(cls); if(sta

2、rt != 1) cout 游戏结束!n; break; myMap.setLevel(level%7+1); myMap.downloadMap(); myMap.findPerson(); myMap.printMap(level%7+1); myPush.getPos(myMap); while(true) char play = getch(); system(cls); if(play=q) flag = false; break; switch(play) case A:case a: myPush.toLeft(myMap); break; case D:case d: myPu

3、sh.toRight(myMap); break; case W:case w: myPush.toTop(myMap); break; case S:case s: myPush.toBottom(myMap); myMap.printMap(level%7+1); if(myMap.is_win() cout 恭喜你过了第 level%7+1 关!n; cout 1.进行下一关n 2.返回主菜单n; char next = getch(); system(cls); if(next = 1) flag = true; level+; break; 推箱子方法类:头文件#ifndef Pus

4、h_H_#define Push_H_#includeMap.hclass Pushprivate:int posX;int posY;public:Push();void getPos(Map & myMap);void toLeft(Map & myMap);/向左推void toRight(Map & myMap);/向右推void toTop(Map & myMap);/向上推void toBottom(Map & myMap);/向下推;#endifCPP文件:#includePush.hPush:Push()void Push:getPos(Map & myMap)/myMap =

5、 Map();posX = myMap.getPersonX();posY = myMap.getPersonY();void Push:toLeft(Map & myMap)int presentPos, nextPos, lastPos;presentPos = myMap.getUnit(posX, posY);if( presentPos = 2)nextPos = myMap.getUnit(posX, posY-1);if(nextPos = 0)posY-;myMap.setUnit(posX, posY+1, 0);myMap.setUnit(posX, posY, 2);el

6、se if(nextPos = 3)lastPos = myMap.getUnit(posX,posY-2);if(lastPos = 0)posY-;myMap.setUnit(posX, posY+1, 0);myMap.setUnit(posX, posY, 2);myMap.setUnit(posX, posY-1, 3);else if(lastPos = 4)posY-;myMap.setUnit(posX, posY+1, 0);myMap.setUnit(posX, posY, 2);myMap.setUnit(posX, posY-1, 7);else if(nextPos

7、= 4)posY-;myMap.setUnit(posX, posY+1, 0);myMap.setUnit(posX, posY, 6);else if(nextPos = 7)lastPos = myMap.getUnit(posX, posY-2);if(lastPos = 0)posY-;myMap.setUnit(posX, posY+1, 0);myMap.setUnit(posX, posY, 6);myMap.setUnit(posX, posY-1, 3);else if(presentPos = 6)nextPos = myMap.getUnit(posX, posY-1)

8、;if(nextPos = 0) posY-; myMap.setUnit(posX, posY+1, 4); myMap.setUnit(posX, posY, 2);else if(nextPos = 3)lastPos = myMap.getUnit(posX, posY-2);if(lastPos = 0) posY-; myMap.setUnit(posX, posY+1, 4); myMap.setUnit(posX, posY, 2); myMap.setUnit(posX, posY-1, 3);void Push:toRight(Map & myMap) int presen

9、tPos, nextPos, lastPos; presentPos = myMap.getUnit(posX, posY); if(presentPos = 2) nextPos = myMap.getUnit(posX, posY+1); if(nextPos = 0) posY+; myMap.setUnit(posX, posY-1,0); myMap.setUnit(posX, posY,2); else if(nextPos = 3) lastPos = myMap.getUnit(posX, posY+2); if(lastPos = 0) posY+; myMap.setUni

10、t(posX, posY-1,0); myMap.setUnit(posX, posY,2); myMap.setUnit(posX, posY+1,3); else if(lastPos = 4) posY+; myMap.setUnit(posX, posY-1,0); myMap.setUnit(posX, posY,2); myMap.setUnit(posX, posY+1,7); else if(nextPos = 4) posY+; myMap.setUnit(posX, posY-1,0); myMap.setUnit(posX, posY,6); else if(nextPo

11、s = 7) lastPos = myMap.getUnit(posX, posY+2); if(lastPos = 0) posY+; myMap.setUnit(posX, posY-1,0); myMap.setUnit(posX, posY,6); myMap.setUnit(posX, posY+1,3); else if(presentPos = 6) nextPos = myMap.getUnit(posX, posY+1); if(nextPos = 0) posY+; myMap.setUnit(posX, posY-1,4); myMap.setUnit(posX, posY,2); if(nextPos = 3) lastPos = myMap.getUnit(posX,posY+2); if(lastPos = 0) posY+; myMap.setUnit(posX, posY-1,4); myMap.setUnit(posX, posY,2); myMap.setUnit(posX, po

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号