freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于c的掃雷游戲設計與實現(xiàn)(編輯修改稿)

2024-09-07 12:06 本頁面
 

【文章內容簡介】 case GS_WAIT: case GS_RUN: // first get the MINEWND which if pushing down m_pOldMine = GetMine(, )。 if (!m_pOldMine) { ReleaseCapture()。 return。 } //檢測判斷當前狀態(tài)是否為左右鼠標同時按下 if (m_bLRBtnDown) { m_bLRBtnDown = FALSE。 OnLRBtnUp(m_pOldMineuRow, m_pOldMineuCol)。 if (m_uGameState == GS_WAIT) { m_uBtnState = BUTTON_NORMAL。 Invalidate()。 ReleaseCapture()。 return。 } //假若周圍已經標識的雷=周圍真正的雷數(shù),拓展 if (m_pOldMineuState != STATE_FLAG) { OpenAround(m_pOldMineuRow, m_pOldMineuCol)。 } if (ErrorAroundFlag(m_pOldMineuRow, m_pOldMineuCol)) { Dead(m_pOldMineuRow, m_pOldMineuCol)。 ReleaseCapture()。 return。 } } else { //如果游戲尚未開始,點擊左鍵啟動游戲 if (m_uGameState == GS_WAIT) { if (m_uTimer) { KillTimer(ID_TIMER_EVENT)。 m_uTimer = 0。 } m_uSpendTime = 1。 Invalidate()。 if (m_bSoundful) { sndPlaySound((LPCTSTR)LockResource(m_pSndClock), SND_MEMORY | SND_ASYNC | SND_NODEFAULT)。 } //啟動定時器 m_uTimer = SetTimer(ID_TIMER_EVENT, 1000, NULL)。 //布雷 LayMines(m_pOldMineuRow, m_pOldMineuCol)。 //改變游戲狀態(tài)為運行/GS_RUN m_uGameState = GS_RUN; } if (m_pOldMineuOldState == STATE_NORMAL) {//當該雷區(qū)域為正常未作標記才打開 //如果該區(qū)域為雷,則死亡 if (IsMine(m_pOldMineuRow, m_pOldMineuCol)) { Dead(m_pOldMineuRow, m_pOldMineuCol)。 ReleaseCapture()。 return。 } //不是雷的時候,獲取其周圍的雷數(shù)目 around = GetAroundNum(m_pOldMineuRow, m_pOldMineuCol)。 // 如果為空白區(qū)域,拓展,否則打開該區(qū)域(顯示周圍有多少雷數(shù)) if (around == 0) ExpandMines(m_pOldMineuRow, m_pOldMineuCol)。 else DrawDownNum(m_pOldMine, around)。 } else if (m_pOldMineuOldState == STATE_DICEY) {//標志為“?”問號的時候 m_pOldMineuState = STATE_DICEY。 } //判斷是否為勝利 if (Victory()) { Invalidate()。 ReleaseCapture()。 return。 } } break。 case GS_VICTORY: case GS_DEAD: ReleaseCapture()。 return。 default : break。 } m_uBtnState = BUTTON_NORMAL。 Invalidate()。 } else {//點擊非雷區(qū)域 if (m_uGameState == GS_WAIT || m_uGameState == GS_RUN) { m_uBtnState = BUTTON_NORMAL。 InvalidateRect(rcBtn)。 } } ReleaseCapture()。 CWnd::OnLButtonUp(nFlags, point)。}在函數(shù)體的開始部分,先用rcBtn和rcMineArea兩個矩形變量存儲游戲的用戶提示區(qū)域位置中的笑臉圖區(qū)域以及雷區(qū)域的位置。利用接口函數(shù)PtInRect()判斷當前鼠標的位置(由參數(shù)point攜帶鼠標當前位置信息)是否在這兩個區(qū)域內,如果檢測到鼠標左鍵點擊并釋放在笑臉圖的按鈕區(qū)域rcBtn上,則調用初始化函數(shù)重新開始游戲,如果檢測到鼠標左鍵點擊并釋放在雷區(qū)域rcMineArea,假若當前游戲狀態(tài)處于已初始化完成但尚未開始的狀態(tài)GS_WAIT時,則打開計時器,并且調用LayMines()函數(shù)進行布雷,然后修改游戲狀態(tài)為GS_RUN進入游戲。接著判斷點擊在小方塊的狀態(tài)是否被用于通過右鍵標記(可以標記為雷或者未知,此時游戲規(guī)則規(guī)定左鍵點擊不生效),如果未標記,該狀態(tài)為普通狀態(tài)STATE_NORMAL時,先通過IsMine()檢測是否點中地雷而失敗地結束游戲,如果是,則調用函數(shù)Dead()來進行失敗后的工作處理,反之對它進行打開顯示與拓展操作。先通過GetAroundNum()函數(shù)獲取當前小方塊相鄰的8個位置的雷數(shù)。如果當前小方塊相鄰區(qū)域
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1