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

正文內(nèi)容

掃雷游戲設(shè)計(jì)與實(shí)現(xiàn)-全文預(yù)覽

  

【正文】 RMAL InvalidateRect rcBtn ReleaseCapture CWndOnLButtonUp nFlags point 在函數(shù)體的開(kāi)始部分先用 rcBtn 和 rcMineArea 兩個(gè)矩形變量存儲(chǔ)游戲的用戶(hù) 提示區(qū)域位置中的笑臉圖區(qū)域以及雷區(qū)域的位置利用接口函數(shù) PtInRect 判斷當(dāng)前鼠標(biāo)的位置由參數(shù) point 攜帶鼠標(biāo)當(dāng)前位置信息是否在這兩個(gè)區(qū)域內(nèi)如果檢測(cè)到鼠標(biāo)左鍵點(diǎn)擊并釋放在笑臉圖的按鈕區(qū)域 rcBtn 上則調(diào)用初始化函數(shù)重新開(kāi)始游戲如果檢測(cè)到鼠標(biāo)左鍵點(diǎn)擊并釋放在雷區(qū)域 rcMineArea 假若當(dāng)前游戲狀態(tài)處于已初始化完成但尚未開(kāi)始的狀態(tài) GS_WAIT 時(shí)則打開(kāi)計(jì)時(shí)器并且調(diào)用LayMines 函數(shù)進(jìn)行布雷然后修改游戲狀態(tài)為 GS_RUN 進(jìn)入游戲接著判斷點(diǎn)擊在小方塊的狀態(tài)是否被用于通過(guò)右鍵標(biāo)記可以標(biāo)記為雷或者未知此 時(shí)游戲規(guī)則規(guī)定左鍵點(diǎn)擊不生效如果未標(biāo)記該狀態(tài)為普通狀態(tài) STATE_NORMAL時(shí)先通過(guò) IsMine 檢測(cè)是否點(diǎn)中地雷而失敗地結(jié)束游戲如果是則調(diào)用函數(shù) Dead 來(lái)進(jìn)行失敗后的工作處理反之對(duì)它進(jìn)行打開(kāi)顯示與拓展操作先通過(guò) GetAroundNum 函數(shù)獲取當(dāng)前小方塊相鄰的 8個(gè)位置的雷數(shù)如果當(dāng)前小方塊相鄰區(qū)域的雷數(shù)為 0則可以向 8個(gè)方向進(jìn)行拓展并顯示該方塊區(qū)域直到不可拓展為止如果當(dāng)前小方塊相鄰區(qū)域的雷數(shù)不為 0 則顯示該方塊區(qū)域的相鄰雷數(shù)用作提供用戶(hù)對(duì)其他位置的信息判斷的提示拓展操作的實(shí)現(xiàn)代碼如下 void CMineWndExpandMines UINT row UINT col UINT i j UINT minRow row 0 0 row 1 UINT Row row 2 UINT minCol col 0 0 col 1 UINT Col col 2 UINT around GetAroundNum row col 顯示該區(qū)域的方塊狀態(tài) m_pMines[row][col]uState 15 around m_pMines[row][col]uOldState 15 around 打開(kāi)該區(qū)域重繪 DrawSpecialMine row col 對(duì)周?chē)粋€(gè)雷都沒(méi)有的空白區(qū)域 if around 0 for i minRow i Row i for j minCol j Col j 對(duì)于周?chē)梢酝卣沟膮^(qū)域進(jìn)行的規(guī)拓展 if i row j col m_pMines[i][j]uState STATE_NORMAL m_pMines[i][j]uAttrib ATTRIB_MINE if IsInMineArea i j continue ExpandMines i j 遞歸拓展操作 經(jīng)過(guò)打開(kāi)或拓展后最后通過(guò) Victory 判斷游戲是否已經(jīng)勝利結(jié)束如果是則作勝利處理 鼠標(biāo)右擊事件 其流程如圖 12 所示 圖 12 右擊事件 其實(shí)現(xiàn)代碼如下所示 void CMineWndOnRButtonDown UINT nFlags CPoint point 笑臉圖按鈕所在的區(qū)域 CRect rcBtn m_uBtnRect[1] 15 m_uBtnRect[2] 39 雷區(qū)所在的區(qū)域 CRect rcMineArea MINE_AREA_LEFT MINE_AREA_TOP MINE_AREA_LEFT m_uXNum MINE_WIDTH MINE_AREA_TOP m_uYNum MINE_HEIGHT m_bLRBtnDown FALSE if rcMineAreaPtInRect point 點(diǎn)擊雷區(qū)域 if m_uGameState GS_WAIT m_uGameState GS_RUN m_pNewMine GetMine pointx pointy if m_pNewMine return 檢測(cè)判斷當(dāng)前狀態(tài)是否為左右鼠標(biāo)同時(shí)按下 if nFlags MK_LBUTTON MK_RBUTTON m_bLRBtnDown TRUE OnLRBtnDown m_pNewMine uRow m_pNewMine uCol else switch m_pNewMine uState 普通狀態(tài) case STATE_NORMAL m_pNewMine uState STATE_FLAG m_pNewMine uOldState STATE_FLAG m_nLeaveNum break 標(biāo)記狀態(tài) case STATE_FLAG m_pNewMine uState STATE_DICEY m_pNewMine uOldState STATE_DICEY m_nLeaveNum break 未知狀態(tài) case STATE_DICEY m_pNewMine uState STATE_NORMAL m_pNewMine uOldState STATE
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1