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

正文內(nèi)容

網(wǎng)絡(luò)中國象棋設(shè)計(jì)-本科畢業(yè)論-wenkub.com

2025-06-03 03:15 本頁面
   

【正文】 用這種表示方法,就可以很容易得到每個(gè)棋子在棋盤上的位置,同時(shí)通過一些函數(shù)就可以得到棋盤上每個(gè)位置上都是些什么樣的棋子。 前面已經(jīng)說了 QPoint, 表示一個(gè)二維平面上的一個(gè)點(diǎn),它有表示 X 坐標(biāo)和 Y坐標(biāo)的私有成員,并有獲取和修改坐標(biāo)的共有函數(shù),故可以用 QPoint 表示棋盤上的一個(gè)位置。 由于前綴不同,棋子移動(dòng)信息和棋子操作信息可以和稱下棋信息,下棋信息也是唯一標(biāo)志的,下棋信息可以用一個(gè) 32bit 無符號(hào)整數(shù)表示。在源代碼文件里面有兩個(gè)文件分別是 文件和 文件,里面的函數(shù)可以用來生 成編碼,也可以解析編碼。這樣用“ fid+tid+fx+fy+tx+ty”就可以表示一次棋子移動(dòng),這一共是 6+6+4+4+4+4=28bit,一方面為了湊夠 32bit,另一方面為了與后面的棋子操作編碼區(qū)別開來,于是就在棋子移動(dòng)信息編碼前面都加上“ 0011”作為前綴,而 棋子操作指令的前綴都為“ 0000”,這樣就區(qū)別開來了。 無棋子,或空棋子就用“ 100000”表示。 X 坐標(biāo)和 Y 坐標(biāo)用二進(jìn)制表示的話都各需要 4bit,如表 41 所示。 數(shù)據(jù)模塊 數(shù)據(jù)的表示 下棋信息的編碼 中國象棋,紅方先走,黑方后走,紅在下,黑在上。 圖 41 ChessInfo 類圖 其中, chessColor 指的是棋子的顏色,是紅色和黑色之間的一個(gè); chessType指的是下棋類型,是服務(wù)器類型( ServerType)、客戶端類型( ClientType)、復(fù)盤類型( ReplayType)和人機(jī)對(duì)戰(zhàn)類型( ComputerType)中的一個(gè); chessIP 指的是服務(wù)器的 IP 地址; chessPort 指的是服務(wù)器監(jiān)聽的端口號(hào),默認(rèn)值是 8888。 圖 326 中國象棋界面 聊天界面在復(fù)盤和人機(jī)對(duì)戰(zhàn)時(shí)是禁用狀態(tài),呈現(xiàn)灰色,既無法輸入信息,也無法收到信息。 音效功能的設(shè)計(jì) 這個(gè)功能實(shí)現(xiàn)起來比較簡單?,F(xiàn)在用的比較多的是 AlphaBeta 搜索算法、靜態(tài)搜索算法等,它們的實(shí)用性都在實(shí)際應(yīng)用中得到了驗(yàn)證。因此,對(duì)于復(fù)盤模塊來說,它是從棋譜模塊獲取下棋信息,對(duì)于服務(wù)器模塊和客戶端模塊來說,它們是從網(wǎng)絡(luò)獲取下棋信息,對(duì)于計(jì)算機(jī)接口模塊來說,他是從計(jì)算機(jī)模塊獲取下棋信息,但不管從什么地方獲取的下棋信息,由信息轉(zhuǎn)發(fā)模塊封裝后對(duì)調(diào)度中心來說沒有多大區(qū)別。 有了這些信息,根據(jù)中國象棋棋譜記錄規(guī)則(詳見章節(jié) ),就可以計(jì)算出文本棋譜。關(guān)于棋譜的記錄請(qǐng)見章節(jié) 。棋譜分為文本棋譜和二進(jìn)制棋譜。對(duì)于此功能是這樣設(shè)計(jì)的,當(dāng)用戶點(diǎn)擊檢測(cè)按鈕時(shí),會(huì)向?qū)Ψ桨l(fā)送一個(gè)網(wǎng)絡(luò)檢測(cè)請(qǐng)求,如果請(qǐng)求發(fā)送失敗則說明網(wǎng)絡(luò)連接有問題,無法通信,如果發(fā)送成功,但對(duì)方?jīng)]有響應(yīng),也說明網(wǎng)絡(luò)有問題,不能正常通信。因此需要向?qū)Ψ桨l(fā)送交換請(qǐng)求,如果對(duì)方同意則雙方交換紅黑,否則維持當(dāng)前狀態(tài)不變。只有在游戲開始之前才能進(jìn)行交 換,所謂交換就是紅方變黑方,黑方變紅方。因此需要向?qū)Ψ桨l(fā)送言和請(qǐng)求,如果對(duì)方同意則雙方言和,否則維持當(dāng)前狀態(tài)不變。認(rèn)輸不需要對(duì)方同意,只有在輪到自己走棋的時(shí)候才可以認(rèn)輸。 只有在輪到自己走棋的時(shí)候才可以悔棋,悔棋一次只能撤銷雙方各一步棋,但可以悔棋多次,直到恢復(fù)到和剛進(jìn)入游戲一樣才不能也無法悔棋。 開始按鈕在功能按鈕模塊,當(dāng)點(diǎn)擊它時(shí),按鈕模塊會(huì)把這個(gè)信息告訴調(diào)度中心,由調(diào)度中心做出處理。 在此系統(tǒng)中要求只能在開始游戲前才能交換紅黑,如果有了開始這個(gè)功能,只要自己不點(diǎn)擊開始游戲就不會(huì)開始,這樣就可以在自己點(diǎn)開始之前進(jìn)行交換。 新建游戲需要對(duì)方同意,因此需要發(fā)送新建游戲請(qǐng)求,若對(duì)方同意則重置游戲,否則維持當(dāng)前狀態(tài)不變。新建就 相當(dāng)于初始化游戲,它把游戲的狀態(tài)重置為和初始狀態(tài)一樣。在聊天信息和下棋信息前面加上不同的前綴,就可以同一編碼所有信息了。 游戲控制功能的設(shè)計(jì) 第三章 概要設(shè)計(jì) 19 這一部分的功能基本都在調(diào)度中心模塊里面實(shí)現(xiàn),也可以說調(diào)度中心是整個(gè)程序的核心。 聊天功能的設(shè)計(jì) 有了網(wǎng)絡(luò)連接網(wǎng)絡(luò)通信的基礎(chǔ),聊天功能也可以設(shè)計(jì)了。相對(duì)的,當(dāng)用戶選擇客戶端的時(shí)候,程序會(huì)根據(jù)所輸入的 IP 地址和端口號(hào)去連接遠(yuǎn)程服務(wù)器,也就是去主動(dòng)連接另外一位用戶。 在用戶剛打開程序的時(shí)候,會(huì)首先出來一個(gè)選擇界面,有 4 個(gè)選項(xiàng)可供用戶選擇,分別是服務(wù)器、客戶端、復(fù)盤和人機(jī)對(duì)戰(zhàn)。 由章節(jié) 可以看到,里面有服務(wù)器模塊和客戶端模塊這兩個(gè)模塊。 網(wǎng)絡(luò)連接功能的設(shè)計(jì) 網(wǎng)絡(luò)通信用兩種模式可供選擇,分別如圖 320 和圖 321 所示。 電子科技大學(xué)學(xué)士學(xué)位論文 16 圖 317 計(jì)算機(jī)接口模塊和計(jì) 算機(jī)模塊關(guān)系圖 圖 318 計(jì)算機(jī)模塊和數(shù)據(jù)模塊關(guān)系圖 系統(tǒng)提示功能的設(shè)計(jì) 由章節(jié) 可知,提示信息最終會(huì)在界面模塊中的提示信息模塊中顯示出來。如圖 317 所示。如圖 315 所示。如圖 313 所示。如圖 311 所示。如圖 39 所示。如圖 37 所示。如圖 35 所示。如圖 33 所示。 ( 11) 計(jì)算機(jī)接口模 塊( ChessComputer),負(fù)責(zé)連接信息轉(zhuǎn)發(fā)模塊和計(jì)算機(jī)模塊,處理一些簡單的請(qǐng)求。 ( 7) 信息轉(zhuǎn)發(fā)模塊( ChessDispatch),信息中轉(zhuǎn)站,統(tǒng)一各方的接口,使調(diào)度中心模塊只需寫一套接口就可以與各方通信。 ⑤提示信息模塊( TipsWidget),負(fù)責(zé)顯示系統(tǒng)提示信息。 ①棋盤模塊( ChessWidget),負(fù)責(zé)繪制棋盤和棋子。 圖 32 界面模塊子模塊劃分 第三章 概要設(shè)計(jì) 11 其實(shí),除了圖 31 所示的那些模塊外,還有一個(gè)象棋信息模塊,它負(fù)責(zé)維護(hù)下棋類型、棋子顏色、 IP 地址和端口號(hào)這些信息,供各個(gè)模塊使用。 人機(jī)對(duì)戰(zhàn) 此處人機(jī)對(duì)戰(zhàn)就是指人和電腦可以下象棋。文本形式的棋譜文件可以使用戶很方便的閱讀。 ( 5) 上面說前兩個(gè)字的時(shí)候都加以一般兩字,說明還有特殊情況。 ( 3) 第三個(gè)字是“平”、“進(jìn)”和“退”中的一個(gè),表示 棋子的移動(dòng)方向。 棋譜 棋譜介紹 中國象棋棋譜,就是把一盤棋中走的每一步棋記錄下來保存。若檢測(cè)請(qǐng)求發(fā)送失敗或者對(duì)方無響應(yīng)都表明網(wǎng)絡(luò)連接出現(xiàn)問題。 ( 2) 一方申請(qǐng)交換,另一方不同意,則雙方交換紅黑失敗。按照中國象棋的規(guī)則,紅方先走,黑方后走。當(dāng)雙方誰也無法獲得勝利的時(shí)候可以言和。 認(rèn)輸。 悔棋。具體描述如下: ( 1) 剛進(jìn)入游戲時(shí),需要用戶點(diǎn)擊開始,以表明自己已經(jīng)準(zhǔn)備就緒。具體描述如下: ( 1) 一方請(qǐng)求新建棋局,另一方同意,則開始新棋局。對(duì)于本系統(tǒng)來說,有新建、開始、悔棋、認(rèn)輸、言和、交換、保存、檢測(cè)、退出。 ( 3) 如果網(wǎng)絡(luò)連接有問題,在點(diǎn)擊發(fā)送后,系統(tǒng)會(huì)提示發(fā)送聊天信息失敗。因?yàn)閺?fù)盤和人機(jī)對(duì)戰(zhàn)都是在本地進(jìn)行,只有自己一個(gè)人,自己不需和自己聊天,也就不需要聊天功能了。 聊天功能 因?yàn)?能進(jìn)行網(wǎng)絡(luò)對(duì)戰(zhàn),雙方可以通過網(wǎng)絡(luò)下中國象棋,如果不能進(jìn)行交流,相互傳遞信息,遇到了問題或其它一些情況就無法告訴對(duì)方。此時(shí)應(yīng)該把自己的 IP 地址和端口號(hào)告之另一方,好讓對(duì)方進(jìn)行連接。 電子科技大學(xué)學(xué)士學(xué)位論文 6 網(wǎng)絡(luò)連接功能 有了網(wǎng)絡(luò)連接功能,才能進(jìn)行網(wǎng)絡(luò)對(duì)戰(zhàn)。 圖 21 系統(tǒng)功能劃分 系統(tǒng)提示功能 這個(gè)功能用于在界面上顯示一些系統(tǒng)提示信息,用于提示用戶。 ( 2)編譯器: Microsoft Visual Studio 2021。對(duì)于本課題而言,傳送的數(shù)據(jù)量少,并對(duì)可靠性有要求,因而選擇 TCP 協(xié)議比較合適。 Qt 是一個(gè)跨平臺(tái)的圖形界面開發(fā)庫,支持Windows、 Linux、 Mac OS 等許多的操作系統(tǒng)。為了完成這一任務(wù),需要解決以下主要問題: 第一,要了解中國象棋的規(guī)則,知道怎么下象棋,象棋的每種棋子走法,怎么判斷輸贏,知道了這些才會(huì)知道該去做什么以及該怎么去做; 第二,數(shù)據(jù)要存儲(chǔ)為哪種格式,怎么交換數(shù)據(jù),怎么通過網(wǎng)絡(luò)傳遞數(shù)據(jù),這是整個(gè)設(shè)計(jì)的基礎(chǔ); 第三,怎么 進(jìn)行交互,兩個(gè)人怎么通過網(wǎng)絡(luò)可以協(xié)調(diào)的玩游戲; 電子科技大學(xué)學(xué)士學(xué)位論文 4 第四,悔棋、認(rèn)輸、言和、交換、棋譜、復(fù)盤等功能要如何處理,如何處理它們之間的關(guān)系,這些都需要清晰的數(shù)據(jù)結(jié)構(gòu)和程序邏輯; 第五,人機(jī)對(duì)戰(zhàn)要如何實(shí)現(xiàn),機(jī)器 AI(人工智能)要怎么做,如何協(xié)調(diào)它與網(wǎng)絡(luò)對(duì)戰(zhàn)之間的關(guān)系等?,F(xiàn)在有許多人致力于象棋引擎算法的研究。因此,人機(jī)對(duì)弈也就成了當(dāng)今象棋軟件的發(fā)展趨勢(shì)。 另外,中國象棋是一項(xiàng)智力游戲,千年來都是人和人下棋,可是現(xiàn)在隨著計(jì)算機(jī)技術(shù)高速發(fā)展的今天,人機(jī)對(duì)弈也成為可能。 圖 11 中國象棋 項(xiàng)目背景和意義 象棋在中國擁有悠久的歷史,有著豐厚的文化底蘊(yùn),從古至今都有很多人喜歡象棋,是千年來不斷發(fā)展變化的一種休閑娛樂方式。伴隨著這些大賽的舉行,涌現(xiàn)出一大批熱愛象棋并棋藝高超的個(gè)人。正因?yàn)槿绱?,它極大地鍛煉著人們的大腦,讓雙方靜下心來思考該怎樣走。對(duì)于將和帥來說,只能在九宮格內(nèi)移動(dòng),每次只能沿直線走一步;對(duì)于士和仕來說,也只能在九宮格內(nèi)移動(dòng),但每次只能沿斜線走一步;對(duì)于相和象來說,不允許過河,只能在己方范圍沿斜線走兩步,且中間不能有棋子阻擋;對(duì)于車來說,只要無棋子阻擋,上下左右沿直線隨便走;對(duì)于馬來說,走“日”字步,細(xì)分是先走長步,再走短步,若長步上有棋子阻擋,則不能走,俗稱“蹩馬腿”;對(duì)于炮來說,只能走直線,如果不是吃子,則和車的走法一致,否則需要和所吃棋子之間有且僅有一個(gè)棋子;對(duì)于兵和 卒來說,每次只能沿直線走一步,未過界前只能前進(jìn),過界后可以平移和前進(jìn),但不能后退 [1]。 中國象棋棋盤 9 縱 10 橫共 90 個(gè)點(diǎn),紅方從右到左用漢字“一”到“九”表示,黑方另一端從右到左用數(shù)字“ 1”到“ 9”表示。 Network war。摘要 i 摘要 近年來,隨著互聯(lián)網(wǎng)的高速發(fā)展和普及,越來越多的人開始通過網(wǎng)絡(luò)來休閑娛樂。 Manmachine war 目錄 目 錄 第一章 緒論 ..................................................................................................................... 1 中國象棋簡介 ..................................................................................................... 1 項(xiàng)目背景和意義 ................................................................................................. 2 主要問題和關(guān)鍵技術(shù) ......................................................................................... 3 主要問題 ................................................................................................... 3 關(guān)鍵技術(shù) ................................................................................................... 4 開發(fā)平臺(tái)和工具 ................................................................................................. 4 第二章 需求分析 ............................................................................................................. 5 . 總體功能劃分 .................................................................................................... 5 系統(tǒng)提示功能 ..................................................................................................... 5 網(wǎng)絡(luò)連接功能 ..................................................................................................... 6 聊天功能 ............................................................................................................. 6 游戲控制 ...............................................................
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1