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

正文內(nèi)容

計(jì)算機(jī)五子棋游戲?qū)南到y(tǒng)設(shè)計(jì)(更新版)

2025-01-25 01:17上一頁面

下一頁面
  

【正文】 第 27 頁 并將自己的姓名同樣用這條消息回發(fā)給客戶端;同時(shí)如果某一方在游戲進(jìn)行過程中改變了自己的名字,也會(huì)即時(shí)發(fā)送該消息給對(duì)手,讓其在主界面上做出相應(yīng)修改。 我知道這一切只要自己程序員時(shí)代的起點(diǎn),我希望以后做得越來越好,寫出更多優(yōu)秀的軟件。通過并行搜索,可充分利用當(dāng)前的多 CPU 硬件平臺(tái),在不改變程序大部分結(jié)構(gòu)的基礎(chǔ)上實(shí)現(xiàn)速度的倍增,由于對(duì)相同的搜索與估值函數(shù)來說,程序棋力隨速度的增加而增加,而這種增加其實(shí)是搜索深度增加與程序棋力的一種相對(duì)關(guān)系。因?yàn)槲遄悠迨嵌擞螒?,所以服?wù)端同時(shí)只能和一位玩家連接。接到這個(gè)消息后,將開啟一局新游戲。 圖 同意和棋 拒絕和棋消息 —— FM_REFUSE_DRAW 表明對(duì)方拒絕了玩家的和棋請(qǐng)求(如圖 所示),除 uID 成員外其余成員皆無效。 拒絕悔棋消息 —— FM_REFUSE_BACK 表明對(duì)方拒絕了玩家的悔棋請(qǐng)求(如圖 所 示),除 uID 成員外其余成員皆無效。 隨著 uID 表示 消息 ID, stonePos(有 x,y 兩個(gè)成員 )表示落子坐標(biāo) , szText 隨著 uID 的不同而有不同的含義。 “只運(yùn)行一個(gè) Five” 可以保證在同一時(shí)刻,系統(tǒng)只允許一個(gè) 智能 五子棋的實(shí)例 圖 重要菜單 中國礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 23 頁 5 聯(lián)機(jī)功能的實(shí)現(xiàn) Windows 系統(tǒng)擁有自己的消息機(jī)制,在不同事件發(fā)生的時(shí)候,系統(tǒng)可以提供不同的響應(yīng)方式。老板 鍵 也是游戲必備之 功能。所以程序用多線程解決了這個(gè)問題。這個(gè)頁面相當(dāng)簡潔而且selfexplanatory。在圖 最上面的組框“當(dāng)前播放歌曲 信息”里有 4 個(gè)靜態(tài)文本控件。它們分別是:聊天頁面(如圖 )、音樂頁面(如圖 )和人機(jī)大戰(zhàn)頁面(如圖 )。對(duì)于這種繪圖, 如果不使用 雙緩沖 繪制 ,棋盤在每一次玩家落子重畫時(shí)會(huì)閃得很厲害。二是棋譜管理:保存本局棋譜及載入并 播放 歷史棋譜??傊?,一切“系統(tǒng)性”的工作都來該類負(fù)責(zé)處理。即用戶當(dāng)前對(duì)程序某個(gè)功能進(jìn)行設(shè)定以后,程序假設(shè)用戶下次仍然對(duì)這個(gè)設(shè)定感興趣而記住當(dāng)前設(shè)定。在 智能 五子棋系統(tǒng)的 設(shè)計(jì) 過程中,界面設(shè)計(jì)上花費(fèi)的時(shí)間不會(huì)少于 AI設(shè)計(jì)。如果有沖四和活三的棋型,返回極值。 智能 五 子棋估值函數(shù)先對(duì)棋盤上五、四、三、二等各種棋型進(jìn)行分析。 return a。 中國礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 15 頁 // 將當(dāng)前走法匯入歷史記錄 EnterHistoryScore( amp。 // 記住最佳走法的位置 } // 恢復(fù)當(dāng)前節(jié)點(diǎn)的哈希值 Hash_UnMakeMove( amp。 if( t a amp。 for( i = 0。 i count。 if( score != 66666 ) return score。 ( 2)未引發(fā)剪枝,但是其兄弟走法中最值者。 ( 2)如果在 Transposition Table 中能查找到當(dāng)前結(jié)點(diǎn)信息,并且存儲(chǔ)深度比當(dāng)前結(jié)點(diǎn)大, 那么實(shí)際上是增加了當(dāng)前子樹的搜索深度,也即增加了結(jié)果的準(zhǔn)確性。 顯然,增量式計(jì)算哈希值的方法在思想上同 AlphaBeta 過程中的的MakeMove/UnMakeMove 是一致的。 為了快速檢測當(dāng)前結(jié)點(diǎn)是否已經(jīng)搜索過,我們一般對(duì)當(dāng)前狀態(tài)進(jìn)行編碼,然后利用 Hash 表的方式進(jìn)行查找,這里采用的編碼方式是 Zobrist Hash 方法 [13]。 //但 t仍在原窗口之中 if( a = β ) return ( a )。 // 遞歸調(diào)用 .注意返回值取負(fù) if(t 1amp。 int α, int β ) { // 計(jì)算局面 p的的極大極小值 int a, b, t, i。不管 L的值是多少,我們獲得的值總是 6, 或者用負(fù)極大值形式來說 6。 if( a = β ) return ( a )。 int α, int β ) { // 計(jì)算局面 p的的極大極小值 int a, t, i。 m_MoveList[nPly][m_nMoveCount]. = i。搜索類 CNegaScout_TT_HH的 CreatePossibleMove函數(shù)用來完成走法產(chǎn)生 [4]。 STONEPOS 結(jié)構(gòu)體定義如下: typedef struct _tagStonePosition { BYTE x, y。因?yàn)橥ㄐ烹p方既可以做服務(wù)端也可以做客戶端。其中搜索算法涉及 技術(shù) 有 : AlphaBeta 剪枝、NegaScout 算法、歷史啟發(fā)( History Heuristic)、置換表( Transposition Talbe)和 Zobrist 哈希方法等。 第五章討論聯(lián)機(jī)功能的實(shí)現(xiàn),核心技術(shù)在于五子棋消息系統(tǒng)。 Visual Studio 2021 ? Visual Assist X 運(yùn)行環(huán)境 ? Intel174。 本論文中五子棋基本規(guī)則如下: ( 1)棋盤:采用國際上標(biāo)準(zhǔn)的 15*15 路線的正方形 棋盤。搜索算法通常使用極大極小算法、 AlphaBeta 剪枝技術(shù),對(duì)形勢的好壞,用估值函數(shù)進(jìn)行判斷,這些將在論文中介紹。如圖 。它的研究為人工智能帶來了很多重要的方法和理論,產(chǎn)生了廣泛的社會(huì)影響和學(xué)術(shù)影響 [14]。它與生物工程、空間技術(shù)一起被并列為二十一世紀(jì)三大尖端技術(shù)。現(xiàn)在每一款成功的商業(yè) 軟件都越來越向功能多元化和界面簡單友好化方向發(fā)展,所以我決定開發(fā)一個(gè)能夠進(jìn)行人機(jī)、網(wǎng)絡(luò)對(duì)戰(zhàn),同時(shí)又具備許多附加功能的五子棋系統(tǒng)。 中國礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 2 頁 如果甲選擇形成局面 3, 4, ?? , N+1 走法,乙方都對(duì)應(yīng)有若干種走法。 五子棋不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。人機(jī)對(duì)弈時(shí)由于估值函數(shù)的特殊性,計(jì)算機(jī)只要發(fā)現(xiàn)某方局面估值的絕對(duì)值大于 8000 即判該方勝(如活三、沖四等棋型出現(xiàn)時(shí),系統(tǒng)可能就提示游戲結(jié)束了 ) 。 Windows? 2021 及以上操作系統(tǒng) ? 800*600 或以上的屏幕分辨率 本文結(jié)構(gòu) 本論文一共分為六大章,具體結(jié)構(gòu)如下: 中國礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 4 頁 第一章介紹了選題背景、計(jì)算機(jī)博弈和五子棋基本知識(shí)、開發(fā)運(yùn)行環(huán)境及文章結(jié)構(gòu)。本程序由 37 個(gè)類、 6 個(gè)結(jié)構(gòu)體、 12 個(gè)全局函數(shù)以及若干其它變量、枚舉類型、宏等組成。程序中使用 CFiveSocket 類負(fù)責(zé)收發(fā)網(wǎng)絡(luò)消息。棋盤右鍵快捷菜單可以使用戶迅速地對(duì)相應(yīng)功能進(jìn)行設(shè)置。沒有棋子的格子用 0xFF 表示。 for( i = 0。 return m_nMoveCount。 // 葉結(jié)點(diǎn)返回估值 a = α。完成對(duì) D的 左子結(jié) 點(diǎn)估值后, D的估值至少為 6,故以窗口( ∞ ,6)對(duì) D中間子 結(jié) 點(diǎn)進(jìn)行搜索。同時(shí)因 Minimal Window的 Alpha、 Beta限制范圍最小,所以產(chǎn)生剪枝的概率也比正常的搜索窗口的大 [10]。 // 葉結(jié)點(diǎn)返回估值 a = α。amp。 } 圖 NegaScout剪枝實(shí)例圖 (加 粗 部分是與圖 ) 本系統(tǒng)在實(shí)現(xiàn)時(shí) 是就是使用 NegaScout 算法,并輔之以置換表 (Transposition Table)和歷史啟發(fā)( History Heuristic)進(jìn)行增強(qiáng)。若要求某一局面的哈希值,則將棋盤上所有棋子在數(shù)組 Z 中對(duì)應(yīng)的隨機(jī)數(shù)相加,即可得到。( 2) Fail Low,結(jié)點(diǎn)值至多 =Alpha,但不知道具體值。也就是說對(duì)一棵極大極小樹來說,如果極大極小搜索需遍歷 106 個(gè) 結(jié)點(diǎn)求得結(jié)果,那么處于理想狀態(tài)的 AlphaBeta 搜索僅需遍歷 約 2021 個(gè) 結(jié) 點(diǎn)就可求得結(jié)果。 int a, b, t。 return score。 } // 將走法的歷史得分從大到小排序 MergeSort_Desc( m_MoveList[depth], count )。 // 走進(jìn)度條 // 走子節(jié)點(diǎn) MakeMove( amp。amp。m_MoveList[depth][i] )。 /* 剪枝 */ } b = a + 1。由于大部分研究對(duì)象不存在絕對(duì)準(zhǔn)確體現(xiàn)最終結(jié)果的估值函數(shù),所以使估值函數(shù)值盡量能刻 畫 研究對(duì)象是估值函數(shù)的主要目標(biāo),這就需要大量的領(lǐng)域相關(guān)的知識(shí)。得出各個(gè)方向上各種棋型的數(shù)量,然后對(duì)分析結(jié)果進(jìn)行統(tǒng)計(jì),得到每種棋型的數(shù)量。最后雙方棋子價(jià)值都加上棋子位置價(jià)值表(如 下表 所示)。模態(tài)對(duì)話框要求用戶必須首先處理完該對(duì)話框后才能繼續(xù)下一步操作。 ( 5)程序“大規(guī)?!钡啬7? 五子棋游戲。這個(gè)類不僅僅和用戶進(jìn)行交互,也對(duì)來自網(wǎng)絡(luò)的 14 種消息進(jìn)行分發(fā)處理,正是這 14 種 消息才支撐起了網(wǎng)絡(luò)通信的全部。包括顯示播放中歌曲信息、播放模式設(shè)定、音量控制、列表管理等等。而最后落子上的指示十字形和鼠標(biāo)跟隨提示框則是實(shí)實(shí)在在地一個(gè)一個(gè) Pixel 畫出來的。圖 右下角的 Check 控件是用來控制是否用語音向?qū)Ψ桨l(fā)送聊天輸入框自帶的聊天信息。中間的組框“請(qǐng)選擇播放模式”與千千靜聽相應(yīng)的功能是一致的。上面的四個(gè)和下面左邊第一個(gè)按鈕是只是簡單的調(diào)用前面 音樂頁面的 相應(yīng)按鈕函數(shù)罷了。不僅能拖放一個(gè)多個(gè)文件到播放列表,而且還能播放一個(gè)多個(gè)文件夾。 圖 設(shè)置對(duì)話框 其它 UI 元素 “關(guān)于”對(duì)話框唯一值得一提的地方是它退出時(shí) 是 動(dòng)畫效果 ( 它不是立即消失,而是“淡出”效果 ) 。 圖 自定義的消息機(jī)制 如上圖 所示,當(dāng) CChessBoard 獲得了來自網(wǎng)絡(luò)的消息之后,就可以使用一個(gè) switch 結(jié)構(gòu)來進(jìn)行消息的分發(fā)了。 請(qǐng)求悔棋消息 —— FM_REQUEST_BACK 表明對(duì)方請(qǐng)求悔棋,除 uID 成員外其余成員皆無效。接到這個(gè)消息后,會(huì)彈出MessageBox 詢問是否接受對(duì)方的請(qǐng)求(如圖 所示),并根據(jù)玩家的選擇回返FM_AGREE_DRAW 或 FM_REFUSE_DRAW 消息。接到這個(gè)消息后,整個(gè)界面將轉(zhuǎn)換為勝利后的狀態(tài)。 列表框聊天消息 —— FM_LIST_CHAT 表明對(duì)方在組合框的列表框選擇并發(fā)送了一條信息, szText[0]記錄對(duì)方選擇了列表框的第幾項(xiàng), szText[1]記錄對(duì)方是否開啟了語音發(fā)送( 0 表示沒有開啟, 1表示開啟), stonePos 成員無效。 圖 服務(wù)端忙 中國礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 28 頁 6 總結(jié)和展望 總結(jié) 本文 論述了五子棋程序“ 智能 五子棋”的設(shè)計(jì)與實(shí)現(xiàn)的方法與原理。 中國礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 29 頁 參考文獻(xiàn) [1] MSDN Library for Visual Studio 2021 ENU [2] 侯俊杰, 深入淺出 MFC(第 2版),華中科技大學(xué)出版社 , 2021 [3] 王正軍, Visual C++ 程序設(shè)計(jì)從入門到精通,人民郵電出版社 , 2021 [4] 王小春, PC游戲編程(人機(jī)博弈),重慶大學(xué)出版社 , 2021 [5] Mark Allen Weiss, 數(shù)據(jù)結(jié)構(gòu)與算法分析(第 3版),人民郵電出版社 , 2021 [6] IMGD 4000, Artificial Intelligence for Games [7] anonym, DEEP BLUE [8] lan Gent, Artificial Intelligence Games 2: Alpha Beta [9] Alexander Reinefeld, TwoPerson ZeroSum Game [10] anonym, AlphaBeta Search [11] Andrew Parks, AlphaBeta Search and General Issues [12] Jos Uiterwijk, Transposition Tables [13]
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1