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

正文內(nèi)容

畢業(yè)論文-基于visualc的新版掃雷游戲設(shè)計與實現(xiàn)-在線瀏覽

2025-03-05 22:38本頁面
  

【正文】 圖 9 布雷流程 淮陰工學院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 11 頁 共 28 頁 if (i == row amp。 j == col) continue。//修改屬性為雷 index++。 開始 獲取該區(qū)域周圍雷 的數(shù)目 num Num = 0 拓展該區(qū)域 修改標志,打開顯示該區(qū)域 結(jié)束 否 是 圖 11 左擊響應(yīng) 淮陰工學院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 12 頁 共 28 頁 圖 10 游戲流程 當鼠標左鍵點擊雷區(qū)域,并且該區(qū)域不是雷方塊,需要進行打開 以及拓展工作。 鼠標左鍵點擊事件的關(guān)鍵代碼如下所示。 開始 在雷區(qū) 雷方塊定位 游戲結(jié)束 勝利 失敗處理 顯示 結(jié)束 繼續(xù)處理 打開區(qū)域 拓展最大的可能 顯示范圍 其他區(qū)域處理 勝利處理 否 是 是 否 否 淮陰工學院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 13 頁 共 28 頁 //雷區(qū)所在的區(qū)域 CRect rcMineArea(MINE_AREA_LEFT, MINE_AREA_TOP, MINE_AREA_LEFT + m_uXNum * MINE_WIDTH, MINE_AREA_TOP + m_uYNum * MINE_HEIGHT)。 InitGame()。 UINT around = 0。 if (!m_pOldMine) { ReleaseCapture()。 } //檢測判斷當前狀態(tài)是否為左右鼠標同時按下 if (m_bLRBtnDown) { m_bLRBtnDown = FALSE。 淮陰工學院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 14 頁 共 28 頁 if (m_uGameState == GS_WAIT) { m_uBtnState = BUTTON_NORMAL。 ReleaseCapture()。 } //假若周圍已經(jīng)標識的雷=周圍真正的雷數(shù),拓展 if (m_pOldMineuState != STATE_FLAG) { OpenAround(m_pOldMineuRow, m_pOldMineuCol)。 ReleaseCapture()。 } } else { //如果游戲尚未開始,點擊左鍵啟動游戲 if (m_uGameState == GS_WAIT) { if (m_uTimer) { KillTimer(ID_TIMER_EVENT)。 } m_uSpendTime = 1。 if (m_bSoundful) { sndPlaySound((LPCTSTR)LockResource(m_pSndClock), SND_MEMORY | SND_ASYNC | SND_NODEFAULT)。 //布雷 LayMines(m_pOldMineuRow, m_pOldMineuCol)。 ReleaseCapture()。 } //不是雷的時候,獲取其周圍的雷數(shù)目 around = GetAroundNum(m_pOldMineuRow, m_pOldMineuCol)。 else DrawDownNum(m_pOldMine, around)。 } //判斷是否為勝利 if (Victory()) { Invalidate()。 return。 case GS_VICTORY: case GS_DEAD: ReleaseCapture()。 default : break。 Invalidate()。 InvalidateRect(rcBtn)。 CWnd::OnLButtonUp(nFlags, point)。利用接口函數(shù) PtInRect()判斷當前鼠標的位置(由參數(shù) point 攜帶鼠標當前位置信息)是否在這兩個區(qū)域內(nèi),如果檢測到鼠標左鍵點擊并釋放在笑臉圖的按鈕區(qū)域 rcBtn 上,則調(diào)用初始化函數(shù)重新開始游戲,如果檢測到鼠標左鍵點擊并釋放在雷區(qū)域 rcMineArea,假若當前游戲狀態(tài)處于已初始化完成但尚 未開始的狀態(tài) GS_WAIT 時,則打開計時器,并且調(diào)用 LayMines()函數(shù)進行布雷,然后修改游戲狀態(tài)為 GS_RUN 進入游戲。先通過 GetAroundNum()函數(shù)獲取當前小方塊相鄰的 8 個位置的雷數(shù)。拓展操作的實現(xiàn)代碼如下。 UINT minRow = (row == 0) ? 0 : row 1。 UINT minCol = (col == 0) ? 0 : col 1。 UINT around = GetAroundNum(row, col)。 m_pMines[row][col].uOldState = 15 around。 //對周圍一個雷都沒有的空白區(qū)域 if (around == 0) { for (i = minRow。 i++) { for (j = minCol。 j++) {//對于周圍可以拓展的區(qū)域進行的規(guī)拓展 if (!(i == row amp。 j == col) amp。 m_pMines[i][j].uState == STATE_NORMAL amp。 m_pMines[i][j].uAttrib != ATTRIB_MINE) { if (!IsInMineArea(i, j)) continue。 // 遞歸拓展操作 } } } } } 經(jīng)過打開或拓展后,最后通過 Victory()判斷游戲是否已經(jīng)勝利結(jié)束,如果是則作勝利處理。 淮陰工學院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 19 頁 共 28 頁 圖 12 右擊事件 其實現(xiàn)代碼如下所示。 //雷區(qū)所在的區(qū)域 CRect rcMineArea(MINE_AREA_LEFT, MINE_AREA_TOP, MINE_AREA_LEFT + m_uXNum * MINE_WIDTH, MINE_AREA_TOP + m_uYNum * MINE_HEIGHT)。 if ((point)) {//點擊雷區(qū)域 if (m_uGameState == GS_WAIT || m_uGameState == GS_RUN) { 開始 雷方塊定位 判斷歷史屬性以及相關(guān)狀態(tài) 修改相關(guān)狀態(tài) 顯示 結(jié)束 淮陰工學院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 20 頁 共 28 頁 m_pNewMine = GetMine(, )。 //檢測判斷當前狀態(tài)是否為左右鼠標同時按下 if (nFlags == (MK_LBUTTON | MK_RBUTTON)) { m_bLRBtnDown = TRUE。 } else { switch(m_pNewMineuState) { //普通狀態(tài) case STATE_NORMAL: m_pNewMineuState = STATE_FLAG。 m_nLeaveNum。 //標記狀態(tài) case STATE_FLAG: m_pNewMineuState = STATE_DICEY。 m_nLeaveNum++。 //未知狀態(tài) case STATE_DICEY: m_pNewMineuState = STATE_NORMAL。 break。 } } Invalidate()。 } 繪圖界面的設(shè)計 ( 1) 雷區(qū)、笑臉模塊的繪制 添加三個位圖資源如圖 13 所示。繪制雷區(qū)的函數(shù)DrawMineArea()的實現(xiàn)代碼如下。 void CMineWnd::DrawMineArea(CPaintDC amp。 //用作內(nèi)存設(shè)備 //源設(shè)備 淮陰工學院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 22 頁 共 28 頁 (amp。 //使得這個設(shè)備與 dc 兼容 //dc 是目標設(shè)備 (m_bmpMine)。 im_uYNum。 jm_uXNum。dcMemory, 0, 16*m_pMines[i][j].uState, 16, 16, SRCCOPY)。 3D 效果外殼繪制結(jié)果顯示如圖16。首先在CMineWnd 類中添加定時器標識的成員變量 m_uTimer 和一個記錄游戲開始直到目前所花費的時間的成員變量 m_uSpendTime。接著在 CMineWnd 類中找到對應(yīng)的消息 WM_TIMER,并為其添加重寫函數(shù) OnTimer(),該函數(shù)首先判斷這次的 WM_TIMER 命令是否為所布下的時間種子到時而產(chǎn)生的,如果是則讓使用的時間變量 m_uSpendTime 自增,然后通知系統(tǒng)重繪圖像。其函數(shù)代碼如下所示。 //創(chuàng)建一個 CPaintDC 類型的用以屏幕顯示的 dc 設(shè)備 //參數(shù)是指向當前框架窗口 CDC dcMemory。 //創(chuàng)建臨時的位圖資源 if (!()) //判斷不是使用打印機來進行繪制工作 { // 使 內(nèi)存設(shè)備與 dc 設(shè)備兼容 if ((amp。dc, )) { // 內(nèi)存設(shè)備選擇物件-位圖 (amp。 //繪制背景框 (amp。m_brsBG)。) dcMemory)。) dcMemory)。) dcMemory)。) dcMemory)。dcMemory, 0, 0, SR
點擊復制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1