欢迎来到天天文库
浏览记录
ID:43510376
大小:33.01 KB
页数:4页
时间:2019-10-09
《C++编写的小游戏》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#includeusingnamespacestd;constcharMOUSE='*';constcharWAY='';constcharWALL='@';constcharPASS='.';constcharIMPASS='X';classGame{public:Game(size_tuWidth,size_tuHeight):m_uWidth(uWidth),m_uHeight(uHeight),m_pcMaze(newchar[uWidth*uHeight]),m_mouse(0,1){srand(time(NULL));char(*pcMaze)[
2、m_uWidth]=reinterpret_cast(m_pcMaze);for(size_ti=0;i3、4、(i==m_uHeight-2&&j>m_uWidth-5))pcMaze[i][j]=WAY;elseif(i==05、6、i==m_uHeight-17、8、j==09、10、j==m_uWidth-1)pcMaze[i][j]=WALL;elsepcMaze[i][j]=rand()%4?WAY:WALL;}~Game(void11、){if(m_pcMaze){delete[]m_pcMaze;m_pcMaze=NULL;}}voidRun(void){for(Show();!Quit()&&Step(););}private:classMouse{public:Mouse(size_tx,size_ty):m_x(x),m_y(y){}size_tGetX(void){returnm_x;}size_tGetY(void){returnm_y;}voidStepRight(void){m_x++;m_brain.Remember(EDIR_RIGHT);}voidStepDown(void){m_y++12、;m_brain.Remember(EDIR_DOWN);}voidStepLeft(void){m_x--;m_brain.Remember(EDIR_LEFT);}voidStepUp(void){m_y--;m_brain.Remember(EDIR_UP);}voidStepBack(void){switch(m_brain.Recollect()){caseEDIR_RIGHT:m_x--;break;caseEDIR_DOWN:m_y--;break;caseEDIR_LEFT:m_x++;break;caseEDIR_UP:m_y++;break;}}privat13、e:typedefenumtag_Direction{EDIR_RIGHT,EDIR_DOWN,EDIR_LEFT,EDIR_UP,EDIR_STILL}EDIR;classBrain{public:Brain(void):m_pMemory(NULL){}~Brain(void){for(Step*pStep=m_pMemory,*pLast;pStep;pStep=pLast){pLast=pStep->m_pLast;deletepStep;}}voidRemember(EDIReDir){m_pMemory=newStep(eDir,m_pMemory);}EDIRRe14、collect(void){EDIReDir=EDIR_STILL;if(m_pMemory){Step*pStep=m_pMemory;m_pMemory=m_pMemory->m_pLast;eDir=pStep->m_eDir;deletepStep;}returneDir;}private:classStep{public:Step(EDIReDir,Step*pLast):m_eDir(eDir),m_pLast(pLast){}EDIRm_eDir;Step*m_pLast;};Step*m_pMemory;};size_tm_x;size_tm_y;Brainm_15、brain;};voidShow(void){char(*pcMaze)[m_uWidth]=reinterpret_cast(m_pcMaze);for(size_ti=0;i
3、
4、(i==m_uHeight-2&&j>m_uWidth-5))pcMaze[i][j]=WAY;elseif(i==0
5、
6、i==m_uHeight-1
7、
8、j==0
9、
10、j==m_uWidth-1)pcMaze[i][j]=WALL;elsepcMaze[i][j]=rand()%4?WAY:WALL;}~Game(void
11、){if(m_pcMaze){delete[]m_pcMaze;m_pcMaze=NULL;}}voidRun(void){for(Show();!Quit()&&Step(););}private:classMouse{public:Mouse(size_tx,size_ty):m_x(x),m_y(y){}size_tGetX(void){returnm_x;}size_tGetY(void){returnm_y;}voidStepRight(void){m_x++;m_brain.Remember(EDIR_RIGHT);}voidStepDown(void){m_y++
12、;m_brain.Remember(EDIR_DOWN);}voidStepLeft(void){m_x--;m_brain.Remember(EDIR_LEFT);}voidStepUp(void){m_y--;m_brain.Remember(EDIR_UP);}voidStepBack(void){switch(m_brain.Recollect()){caseEDIR_RIGHT:m_x--;break;caseEDIR_DOWN:m_y--;break;caseEDIR_LEFT:m_x++;break;caseEDIR_UP:m_y++;break;}}privat
13、e:typedefenumtag_Direction{EDIR_RIGHT,EDIR_DOWN,EDIR_LEFT,EDIR_UP,EDIR_STILL}EDIR;classBrain{public:Brain(void):m_pMemory(NULL){}~Brain(void){for(Step*pStep=m_pMemory,*pLast;pStep;pStep=pLast){pLast=pStep->m_pLast;deletepStep;}}voidRemember(EDIReDir){m_pMemory=newStep(eDir,m_pMemory);}EDIRRe
14、collect(void){EDIReDir=EDIR_STILL;if(m_pMemory){Step*pStep=m_pMemory;m_pMemory=m_pMemory->m_pLast;eDir=pStep->m_eDir;deletepStep;}returneDir;}private:classStep{public:Step(EDIReDir,Step*pLast):m_eDir(eDir),m_pLast(pLast){}EDIRm_eDir;Step*m_pLast;};Step*m_pMemory;};size_tm_x;size_tm_y;Brainm_
15、brain;};voidShow(void){char(*pcMaze)[m_uWidth]=reinterpret_cast(m_pcMaze);for(size_ti=0;i
此文档下载收益归作者所有