C編寫的小游戲_第1頁
C編寫的小游戲_第2頁
C編寫的小游戲_第3頁
C編寫的小游戲_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、# i n c l u d e < i o s t r e a m > usingnamespacestd;constcharMOUSE='*'constcharWAY=''constcharWALL=''constcharPASS='.'constcharIMPASS='X'classGamepublic:Game(size_tuWidth,size_tuHeight):m_uWidth(uWidth),m_uHeight(uHeight),m_ pcMaze(newcharuWidth*uHeigh

2、t),m_mouse(0,1)srand(time(NULL);char(*pcMaze)m_uWidth=reinterpret_cast<char(*)m_uWidth>(m_pcMaze);for(size_ti=0;i<m_uHeight;i+)for(size_tj=0;j<m_uWidth;j+) if(i=1&&j<4)|(i=m_uHeight-2&&j>m_uWidth-5) pcMazeij=WAY;elseif(i=0|i=m_uHeight-1|j=0|j=m_uWidth-1)pcMazeij=WAL

3、L;elsepcMazeij=rand()%4WAY:WALL;Game(void)if(m_pcMaze)deletem_pcMaze; m_pcMaze=NULL;voidRun(void)for(Show();!Quit()&&Step(););private:classMousepublic: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_RI

4、GHT);voidStepDown(void)m_y+;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+; b

5、reak;private:typedefenumtag_DirectionEDIR_RIGHT,EDIR_DOWN,EDIR_LEFT,EDIR_UP,EDIR_STILLEDIR;classBrainpublic:Brain(void):m_pMemory(NULL)Brain(void) for(Step*pStep=m_pMemory,*pLast;pStep;pStep=pLast) pLast=pStep->m_pLast;deletepStep;voidRemember(EDIReDir) m_p Memory=n ewSte p( eDir,m_ pMemory);&quo

6、t; "EDIRRecollect(void) EDIReDir=EDIR_STILL; if(m_pMemory)Ste p*p Ste p=m_p Memory;m_p Memory=m _p Memory-m_p Last;eDir=p Ste p-> m_eDir; delete pSte p; returneDir;p rivate:classSte pp ublic:Ste p(EDIReDir,Ste p*p Last):m_eDir(eDir),m_pLast( pLast) EDIRm_eDir;Step*m_p Last; " Step*m_p M

7、emory; "size_tm_x;size_tm_y;Brai nm _brai n; "voidShow(void)char(* pcMaze)m_uWidth=rei nterpret_castvchar(*)m_uWidth>(m _p cMaze); for(size_ti=0;ivm_uHeight;i+)for(size_tj=0;jvm_uWidth;j+)cout< vp cMazeij;coutvve ndl;boolQuit(void)coutvv"鎸塓閫?鍑猴紝鍏朵粬閿戶緇"vvflush;in tch=getchar

8、();returnch=Q|ch='q'boolSte p(void)char(* pcMaze)m_uWidth=rei nterpret_castvchar(*)m_uWidth>(m _p cMaze);size_tx=m_mouse.GetX();size_ty=m_mouse.GetY(); if(x+1<=m_uWidth-1&&pcMazeyx+1=WAY)pcMazeyx=PASS;m_mouse.StepRight(); elseif(y+1<=m_uHeight-1&&pcMazey+1x=WAY) pcMa

9、zeyx=PASS;m_mouse.StepDown(); elseif(x-1>=0&&pcMazeyx-1=WAY) pcMazeyx=PASS; m_mouse.StepLeft();elseif(y-1>=0&&pcMazey-1x=WAY) pcMazeyx=PASS; m_mouse.StepUp();elsepcMazeyx=IMPASS; m_mouse.StepBack();x=m_mouse.GetX();y=m_mouse.GetY();pcMazeyx=MOUSE;Show();if(x=0&&y=1)cout<<"* 小老鼠贏了 *" returnfalse; if(x=m_uWidth-1&&y=m_uHeight-2) cout<<"* 小老鼠失敗了 *&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論