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

正文內(nèi)容

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

2025-02-06 22:38 上一頁面

下一頁面
  

【正文】 j]區(qū)域的雷方塊狀態(tài)拷貝相應(yīng)的圖像到 [i][j]雷區(qū)的特定區(qū)域 (MINEAREA_FRAME_X+16*j, MINEAREA_FRAME_Y+16*i, 16, 16, amp。 //將內(nèi)存設(shè)備與位圖資源關(guān)聯(lián) for (UINT i = 0。dc) { CDC dcMemory。 圖 13 位圖的繪制 ID 分別為 ID_BTN_COLOR、 ID_MINE_COLOR、 ID_NUM_COLOR,并分別添加三個位圖類型的變量,然后調(diào)用 LoadBitmap(UINT nIDResource)函數(shù)來實現(xiàn)位圖 資源與變量的關(guān)聯(lián)并添加函數(shù) DrawButton()、 DrawMineArea()、 DrawNumber()分別實現(xiàn)笑臉按鈕、雷區(qū)、數(shù)字圖像 (計時器數(shù)字和剩余雷數(shù)數(shù)字 )的繪圖。 default: 淮陰工學(xué)院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 21 頁 共 28 頁 break。 break。 break。 OnLRBtnDown(m_pNewMineuRow, m_pNewMineuCol)。 m_bLRBtnDown = FALSE。 鼠標右擊事件 其流程如圖 12 所示。amp。amp。 i maxRow。 淮陰工學(xué)院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 18 頁 共 28 頁 //顯示該區(qū)域的方塊狀態(tài) m_pMines[row][col].uState = 15 around。 UINT maxRow = row + 2。如果當前 小方塊相鄰區(qū)域的雷數(shù)為 0,則可以向 8 個方向進行拓展,并顯示該方塊區(qū)域,直到不可拓展為止;如果當前小方塊相鄰區(qū)域的雷數(shù)不為0,則顯示該方塊區(qū)域的相鄰雷數(shù),用作提供用戶對其他位置的信息判斷的提示。 } 在函數(shù)體的開始部分,先用 rcBtn 和 rcMineArea 兩個矩形變量存儲游戲的用戶提示區(qū)域位置中的笑臉圖區(qū)域以及雷區(qū)域的位置。 } else {//點擊非雷區(qū)域 if (m_uGameState == GS_WAIT || m_uGameState == GS_RUN) { m_uBtnState = BUTTON_NORMAL。 return。 ReleaseCapture()。 // 如果為空白區(qū)域,拓展,否則打開該區(qū)域(顯示周圍有多少雷數(shù)) if (around == 0) ExpandMines(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)。 淮陰工學(xué)院畢業(yè)設(shè)計 說明書 ( 論 文 ) 第 15 頁 共 28 頁 Invalidate()。 return。 return。 OnLRBtnUp(m_pOldMineuRow, m_pOldMineuCol)。 //根據(jù)不同的游戲狀態(tài)作處理 switch(m_uGameState) { //游戲進行狀態(tài) case GS_WAIT: case GS_RUN: // first get the MINEWND which if pushing down m_pOldMine = GetMine(, )。 if ((point)) {// 點擊笑臉圖 Invalidate()。流程如圖 11 所示。 if(m_pMines[i][j].uAttrib != ATTRIB_MINE) { m_pMines[i][j].uAttrib = ATTRIB_MINE。 j = rand() % m_uXNum。 UINT i, j。 // 雷方塊結(jié)構(gòu)體 然后定義雷方塊的狀態(tài)類別和屬性類別。 //所在雷區(qū)二位數(shù)組的列 UINT uState。 ( 2) 核心算法的實現(xiàn) 整個游戲程序包含 3 個階段:布雷、掃雷過程和結(jié)果(并不是操作結(jié)果展示,而是在掃雷過程中,玩家通過與游戲交互后的操作結(jié)果展 示)。 圖 7 記錄對話框 圖 8 排行榜 然后為 IDD_DLG_HERO對話框模板創(chuàng)建 CDlgHero類 ,分別為編輯框控件添加關(guān)聯(lián)變量 m_szBHolder、 m_szBRecord、 m_szEHolder、 m_szERecord、 m_szIHolder、m_szIRecord,并將 Cancel 按鈕的 ID 和標題分別改為 IDC_RESET 和重新計分,三個靜態(tài)文本標題設(shè)置為初級記錄、中級記錄、高級記錄,最后為重新計分按鈕創(chuàng)建命令消息處理函數(shù) OnReset()和其他成員函數(shù)。 } 淮陰工學(xué)院畢業(yè)設(shè)計 說明書 (論文) 第 7 頁 共 28 頁 圖 5 使用幫助 ( 4) 以往的記錄 每一次游戲破記錄則將有關(guān) 信息保存下來。 } ( 3) 使用幫助的實現(xiàn) 由于 Windows 自帶有掃雷游戲,所以直接調(diào)用它的使用手。 if (m_uNumber m_uWidth * m_uHeight) m_uNumber = m_uWidth * m_uHeight 1。 if (m_uWidth 30) m_uWidth = 30。結(jié)果如圖 4。 InitGame()。 m_uXNum = ADVANCE_XNUM。 由于難度級別的不同,窗口大小也會隨之改變,因此通過在 CMineWnd 類增加一個改變窗口大小的函數(shù) SizeWindow()去實現(xiàn)。 圖 3 游戲菜單 ( 1) 難度級別的選擇 不同的難度級別有不同的雷區(qū)大小和不同的布雷數(shù)目,所以通過宏定義預(yù)定義不同級別的橫向方塊數(shù)目、縱向方塊數(shù)目和雷數(shù)。 ( 2) 框架的改造 通過類向?qū)?加一個繼承于 CFrameWnd 的類,命名為 CMineWnd,刪除CMineDoc、 CMineView 和 CAboutDlg 類,將 CMineWnd 類代替 CFrameWnd,讓程序啟動的時候以此窗口為主窗口予以顯示。提示區(qū)包括兩個計數(shù)器和一個按鍵操作結(jié)果圖像提示。 在游戲開始后,雷區(qū)上方有兩個計數(shù)器。 如果某個數(shù)字方塊周圍的地雷全都標記完,可以指向該方塊并同時點擊鼠標左右鍵,將其周圍剩下的方塊挖開。安放好地雷的小方塊稱之為雷方塊,其他的稱之為非雷方塊。本次畢業(yè)設(shè)計既鍛煉了我們的實際動手能力,又在老師的指導(dǎo)下進行了一次模擬實際產(chǎn)品的開發(fā),對于我們以后工作能力的培養(yǎng)具有重要意義。 1. 1 開發(fā)背景 在計算機逐 步滲入社會生活各個層面的今天,計算機已經(jīng)成為了人們?nèi)粘I钪械囊徊糠?,越來越多的人使用計算機辦公、娛樂等等。安德森在 “Rlogic”的基礎(chǔ)上又編寫出了游戲 “地雷 ”,由此奠定了現(xiàn)代掃雷游戲的雛形。 淮陰工學(xué)院畢業(yè)設(shè)計 說明書 (論文) 第 1 頁 共 28 頁 1 引言 掃雷最原始的版本可以追溯到 1973 年一款名為 “方塊 ”的游戲。兩年后,湯姆 約翰遜兩位工程師在 Windows 系統(tǒng)上加載了該游戲,掃雷游戲才正式在全世界推廣開來。 1. 2 開發(fā)的目的以及意義 經(jīng)過四年的大學(xué)學(xué)習,我對理論知識已經(jīng)有了一定的了解與認知,本次的畢業(yè)設(shè)計 便是將書本上所學(xué)的理論知識與實際相結(jié)合,同時也是對所學(xué)知識的一種檢查,希望通過本次的畢業(yè)設(shè)計使自己在程序的開發(fā)和設(shè)計上有新的認識并能有所提高。 淮陰工學(xué)院畢業(yè)設(shè)計 說明書 (論文) 第 2 頁 共 28 頁 圖 1 初級雷區(qū) 游戲開始時,系統(tǒng)會在雷區(qū)的某些小方塊中隨機布下若干個地雷 。玩家可以根據(jù)這些信息去判斷是否可以打開某些方塊,并把認為是地雷的方塊打上標識。在游戲 過程中,一旦錯誤地打開了雷方塊則立即失敗,游戲結(jié)束;當玩家標識的地雷數(shù)超過程序設(shè)定,雖然打開了全部其余方塊,游戲仍然不會結(jié)束。按功能將游戲區(qū)域分成兩個區(qū)域:雷區(qū)和提示區(qū)。由于不需要諸如工具欄、狀態(tài)欄等功能,并且掃雷游戲的框架是不允許改變窗口大小的,所以在向?qū)У牡谒牟嚼锩姘阉械倪x項置空,然后點擊 “ Advanced” 按鈕,在彈出的對話框中選中 “ Windows Styles” 選項卡,將 “ Maximize box” 項置空,其他均使用默認設(shè)置。具體的菜單選項如圖 3 所示 。于是還需要定義關(guān)于位置的宏變量。 void CMineWnd::OnMenuAdvance() { m_uLevel = LEVEL_ADVANCE。 SetCheckedLevel()。 } ( 2) 雷區(qū)大小的自定義實現(xiàn) 首先新建一個自定義雷區(qū)對話框資源 (IDD_DLG_CUSTOM),然后添加高度、寬度、雷數(shù)三個靜態(tài)文本控件和三個對應(yīng)的 (IDC_HEIGHT) 、 (IDC_WIDTH) 、(IDC_NUMBER)編輯框控件,最后將 OK 和 Cancel 按鈕分別改名為 “ 確定 ” 和 “ 取消 ” 。 if (m_uWidth 9) m_uWidth = 9。 if (m_uNumber 10) m_uNumber = 10。// TODO: Add extra validation here CDialog::OnOK()。 void CMineWnd::OnMemuHelpUse() { ShellExecute(NULL,open,NULL,NULL,SW_SHOW)。如圖 7 和圖 8 所示 。這樣新的雷區(qū)展開又觸發(fā)這個事件,就這樣遞歸下去,一直蔓延到不可展開的雷區(qū)。 //所在雷區(qū)二維數(shù)組的行 UINT uCol。 //歷史狀態(tài) } MINEWND。 void CMineWnd::L
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1