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

正文內(nèi)容

網(wǎng)絡(luò)聊天與五子棋的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁(yè)

2024-12-06 03:22本頁(yè)面

【導(dǎo)讀】密級(jí):公開(kāi)編號(hào):2021032???指導(dǎo)教師姓名(職稱(chēng)):???戶(hù)提供了更加周到和人性化的服務(wù)。個(gè)性化已逐漸成為當(dāng)今網(wǎng)絡(luò)應(yīng)用的潮流。對(duì)其具體應(yīng)用中的實(shí)現(xiàn)模塊進(jìn)行剖析。游戲模塊具有悔棋、戰(zhàn)績(jī)顯示、人機(jī)對(duì)弈、人人對(duì)弈、聊天等功。其次,此系統(tǒng)利用java語(yǔ)言進(jìn)行開(kāi)發(fā)的。系統(tǒng)使用Socket來(lái)完成服務(wù)端和。最后,此系統(tǒng)服務(wù)端通過(guò)定期的將數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)到內(nèi)存中的。方式解決數(shù)據(jù)庫(kù)并發(fā)訪問(wèn)的瓶頸問(wèn)題。

  

【正文】 頁(yè) 圖 34 人機(jī)對(duì)弈算法圖 用戶(hù)落棋后計(jì)算機(jī)取得用戶(hù)落棋的位置并以該位置為起點(diǎn)放射性的進(jìn)行四個(gè)方向的搜尋統(tǒng)計(jì)棋子。并取得各個(gè)方向的棋子加權(quán)值(遍歷統(tǒng)計(jì)方法采用前面的最小起始點(diǎn)和最大結(jié)束點(diǎn)的分割算法)。對(duì)四個(gè)方向的加權(quán)值進(jìn)行比較取得加權(quán)值最大的那個(gè)方向作為落棋方向的最優(yōu)方向。再在最優(yōu)方向上搜索空位置落棋,算法流程如下圖: 圖 35 人機(jī)對(duì)弈流程圖 第 32 頁(yè) 共 38 頁(yè) 流程說(shuō)明: 1 用戶(hù)下 棋 2 判斷下棋點(diǎn)是否是合法下棋點(diǎn),是則落下棋子,不是則重新選擇位置下棋。 3 計(jì)算機(jī)取得用戶(hù)落棋的坐標(biāo)并轉(zhuǎn)換成棋盤(pán) 結(jié)構(gòu) 中的相應(yīng)位置。 4 在棋盤(pán)數(shù)組中以此位置作為起點(diǎn)進(jìn)行橫向,縱向,斜向搜索。搜索的距離是五個(gè)棋子位置的距離。 5 統(tǒng)計(jì)各個(gè)方向的加權(quán)值。 6 根據(jù)各個(gè)方向的加權(quán)值取得最大加權(quán)值 的方向 作為計(jì)算機(jī)落棋的最優(yōu)方向。 7 在此方向上尋找空位置,如果找到則在空位上落棋,如果沒(méi)有找到隨機(jī)落棋。 數(shù)據(jù)庫(kù)表效率問(wèn)題 的 解決方案 如果規(guī)范化設(shè)計(jì)產(chǎn)生了許多 4路或更多路合并關(guān)系,而在具體應(yīng)用中會(huì)大量使用這些 合并關(guān)系,就可以考慮在數(shù)據(jù)庫(kù)實(shí)體 (表 )中加入重復(fù)屬性 (列 )。 采用標(biāo)準(zhǔn)的范式進(jìn)行數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)會(huì)在存儲(chǔ)空間上獲得補(bǔ)償,但是在性能上會(huì)有損失,因此數(shù)據(jù)庫(kù)的設(shè)計(jì)不應(yīng)僅僅考慮標(biāo)準(zhǔn)的范式,還要根據(jù)具體的應(yīng)用增加適當(dāng)?shù)娜哂?。為了減少實(shí)體外部屬性數(shù)據(jù)或行數(shù)據(jù)的開(kāi)支而把 1個(gè)實(shí)體 (表 )垂直分割成 2 個(gè)表 (把所有的屬性分成 2組 )。這樣就把頻繁被訪問(wèn)的數(shù)據(jù)同較少被訪問(wèn)的數(shù)據(jù)分開(kāi)了。所以把用戶(hù)信息表分割成了兩個(gè)表,一個(gè)是用戶(hù)永久不變的信息表和用戶(hù)經(jīng)常變動(dòng)的好友表。而單獨(dú)把游戲數(shù)據(jù)的信息構(gòu)造成一個(gè)表。 圖 36 數(shù)據(jù)庫(kù)設(shè)計(jì)圖 第 33 頁(yè) 共 38 頁(yè) 防止灌水性注冊(cè)的解決方案 本程序中采用了兩種方式注冊(cè)用戶(hù)一種是在 應(yīng)用程序中注冊(cè)。另一種是在網(wǎng)頁(yè)中注冊(cè)。現(xiàn)在在應(yīng)用程序中注冊(cè)不會(huì)出現(xiàn) 灌水性注冊(cè)。但在網(wǎng)頁(yè)中注冊(cè)時(shí)卻容易出現(xiàn)灌水性注冊(cè) (沒(méi)有目的的大量注冊(cè)用戶(hù)) ,所以在網(wǎng)頁(yè)注冊(cè)的時(shí)候選擇了填寫(xiě)驗(yàn)證碼的機(jī)制來(lái)防止惡意用戶(hù)的注冊(cè)。如下圖所示: 圖 37 驗(yàn)證碼 整體提升性能的解決方案 性能提 升 的原則和方法主要在以下幾個(gè)方面: 凡是大量用到字符串連接的操作時(shí),變量結(jié)構(gòu)摒棄 String 而是采用StringBuider,原因是 String 的連接操作會(huì)產(chǎn)生新的變量 。這樣對(duì)內(nèi)存的開(kāi)銷(xiāo)會(huì) 有很大的浪費(fèi) , 同時(shí)對(duì)于 gc 也是一個(gè)很大的負(fù)擔(dān)。程序中涉及查詢(xún)的結(jié)構(gòu)時(shí)都是采用 hash 的方式。對(duì)于不需要同步的則采用 hashmap 這樣可以減少很多關(guān)于同步機(jī)制維護(hù)的開(kāi)銷(xiāo)。對(duì)于同步的則采用 hashtable 的方式進(jìn)行。對(duì)于動(dòng) 態(tài)數(shù)組的選擇根據(jù)應(yīng)用采用不同的動(dòng)態(tài)數(shù)組。對(duì)于只需要快速隨機(jī)訪問(wèn)的操作, 則采用arrylist 而對(duì)于需要頻繁的插入和刪除采用 linkedlist。對(duì)于 server 端和客戶(hù)端的數(shù)據(jù)包傳送,盡量用 String 類(lèi)型的數(shù)據(jù)流進(jìn)行傳送。而對(duì)于大量異構(gòu)類(lèi)型的數(shù)據(jù)傳送則采用序列化類(lèi)。 在 服務(wù)端于客戶(hù)端 之間傳送類(lèi)。在讀字符流的時(shí)候采用bufferreader 進(jìn)行快速讀取。 用戶(hù)下載好友和黑名單列表信息 的 實(shí)現(xiàn)說(shuō)明 當(dāng)用戶(hù)登錄聊天程序后輸入合法的帳戶(hù) 并 發(fā)送到服務(wù)器端去驗(yàn)證 ,當(dāng)服務(wù)器端驗(yàn)證成功后就根據(jù)用戶(hù)的帳戶(hù)在內(nèi)存表中查詢(xún)?cè)撚脩?hù)的所有好友和黑名單信息,并放入一個(gè)用戶(hù)信息類(lèi)列表中。因?yàn)?list 是可序列化的類(lèi)類(lèi)型。所 以 通過(guò)序列化的方式傳送到客戶(hù)端,客戶(hù)端收到數(shù)據(jù)后將用戶(hù)信息類(lèi)進(jìn)行反序列化得到原始數(shù)據(jù)。并根據(jù)這些信息來(lái)填寫(xiě)自己的好友列表好黑名單列表。 多人并發(fā)聊天的實(shí)現(xiàn)方式 客戶(hù)端根據(jù)記 錄每個(gè)用戶(hù)聊天的聊天窗口對(duì)象來(lái)處理多人聊天的信息記錄及信息的顯示。服務(wù)端根據(jù)記錄每個(gè)連接用戶(hù)的線程信息來(lái)處理每個(gè)用戶(hù)的業(yè)務(wù)。其具體流程如下: 1 服務(wù)端接收到聊天請(qǐng)求數(shù)據(jù)后,分析該數(shù)據(jù)得到要聊天者的信息。 2 服務(wù)端到線程記錄表中查找是否有該聊天者的線程記錄。如果有的話(huà)就把數(shù)據(jù)交給該線程進(jìn)行轉(zhuǎn)發(fā),如果沒(méi)有則 向 請(qǐng)求 者 返回相應(yīng)的提示信息。 3 客戶(hù)端接收到消息后分析數(shù)據(jù)。如果是聊天數(shù)據(jù)就到聊天窗口信息記錄表第 34 頁(yè) 共 38 頁(yè) 中查找是否有 該 聊天者的窗口對(duì)象,有則換出,并設(shè)置為活躍窗口,進(jìn)行信息的顯示 。沒(méi)有則建立該用戶(hù)的聊天窗口對(duì)象 ,并將對(duì)象加入到聊天窗口信息記錄表中。如果是錯(cuò)誤提示信息則顯示提示信息。 多用戶(hù)并發(fā)下棋的實(shí)現(xiàn)方式 多用戶(hù)并發(fā)下棋主要是由服務(wù)端負(fù)責(zé)。首先客戶(hù)端的游戲大廳界面構(gòu)造采用了臺(tái)面類(lèi)作為元素構(gòu)造多臺(tái)面的游戲大廳。 其次服務(wù)端定義了臺(tái)面狀態(tài)類(lèi)。該類(lèi)中含有與該臺(tái)面的椅子信息屬性, ip 屬性,輸入輸出流屬性。主要流程如下: 1 客戶(hù)端選擇臺(tái)面進(jìn)入游戲,就會(huì)向服務(wù)端發(fā)送入座的臺(tái)面和臺(tái)面中的椅子位置。 2 服務(wù)端接收到數(shù)據(jù)對(duì)其分析,最后 將該客戶(hù)的臺(tái)面和椅子信息記錄到負(fù)責(zé)該客戶(hù)的線程中的臺(tái)面狀態(tài)類(lèi)的相應(yīng)屬性中。 3 客戶(hù)端 下棋,并向服務(wù)端發(fā)送相應(yīng)的數(shù)據(jù)包。 4 服務(wù)端接收到下棋數(shù)據(jù)包后進(jìn)行分析,取得數(shù)據(jù)包中的臺(tái)面和椅子信息并用服務(wù)端相應(yīng)的臺(tái)面線程來(lái)負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā)。 5 客戶(hù)端收到信息后更新自己界面中的數(shù)據(jù)。 6 跳轉(zhuǎn)到 3中繼續(xù)執(zhí)行。 用戶(hù)移動(dòng)好友,刪除好友,增加好友的實(shí)現(xiàn)說(shuō)明 用戶(hù)在選擇了移動(dòng)好友,刪除好友,增加好友的業(yè)務(wù)時(shí),均采用客戶(hù)端向服務(wù)端發(fā)送包含業(yè)務(wù)相關(guān)信息的數(shù)據(jù)包。服務(wù)端分析數(shù)據(jù)包并請(qǐng)求數(shù)據(jù)層進(jìn)行數(shù)據(jù)庫(kù)操作。只有在數(shù)據(jù)層操作成功的情況下,客戶(hù)端才能更新結(jié)果。 棋盤(pán)結(jié)構(gòu)的構(gòu)造說(shuō)明 游戲客戶(hù)端用做 好的圖片作為棋盤(pán)。程序中用二維數(shù)組來(lái)存儲(chǔ)棋盤(pán)中的交叉點(diǎn)。 程序啟動(dòng)后此數(shù)組的各元素值均為 0,用戶(hù)下棋后系統(tǒng)會(huì)取得下棋的坐標(biāo)點(diǎn),系統(tǒng)將坐標(biāo)點(diǎn)進(jìn)行調(diào)整轉(zhuǎn)換為二維數(shù)組中的相應(yīng) 維 的位置。 并存儲(chǔ)到數(shù)組中。黑棋子則存儲(chǔ) 1,白棋子則存儲(chǔ) 1,空位則存儲(chǔ) 0。 游戲積分處理的實(shí)現(xiàn)說(shuō)明 游戲采用積分制度。每一種游戲狀態(tài)都對(duì)應(yīng)一定的積分。 程序中定義存儲(chǔ)積分信息的積分類(lèi)。當(dāng)游戲結(jié)果出來(lái)時(shí)客戶(hù)端取得記錄自己積分信息類(lèi)的對(duì)象中的積分信息并與本次的積分作累加再寫(xiě)入到對(duì)象的屬性中。同時(shí)也取得記錄對(duì)方的積分信息類(lèi)的對(duì)象的積分信息并與 本次對(duì)方應(yīng) 得 的積分作累加再寫(xiě)入到對(duì)象的屬性中 ,同時(shí)發(fā)送到服務(wù)端,服務(wù)端向數(shù)據(jù)層發(fā)送消息進(jìn)行數(shù)據(jù)的存儲(chǔ)。 最后呈現(xiàn)給用戶(hù)并更新到戰(zhàn)績(jī)顯示面板中。程序中的自己的積分信息和對(duì)方的積分信息是單獨(dú)統(tǒng)計(jì)的。如果對(duì)方贏棋則自己的積分減少 5 分,對(duì)方積分加 5分,如果自第 35 頁(yè) 共 38 頁(yè) 己贏棋則對(duì)方信 積分 減少 5 分 , 自己 積分 加 5 分。如果對(duì)方悔棋成功則自己獎(jiǎng)勵(lì)積分加 5 分,對(duì)方處罰積分加 2分。如果自己悔棋成功,則自己懲罰積分加 2分 ,對(duì)方獎(jiǎng)勵(lì)積分加 5 分。 最后統(tǒng)計(jì)分?jǐn)?shù)的公式 =獲勝積分 +獎(jiǎng)勵(lì)積分 處罰積分。 悔棋功能的實(shí)現(xiàn)方式 系統(tǒng)通過(guò)將每一步棋 子的位置進(jìn)棧,當(dāng)有悔棋請(qǐng)求時(shí),將棧頂元素出棧,將相應(yīng)棋盤(pán)數(shù)組中的位置設(shè)置為 0。刷新棋盤(pán)。當(dāng)棧中沒(méi)有元素時(shí),悔棋業(yè)務(wù)失效。 音樂(lè)播放器的實(shí)現(xiàn)說(shuō)明 音樂(lè)播放器主要是在多線程中工作。程序中界面類(lèi)負(fù)責(zé)線程的管理, 主要由SongTablePane(歌曲點(diǎn)播面板 ), PlayMusic(音樂(lè)播放類(lèi) ), WaveGraphPane(音樂(lè)曲線圖繪制類(lèi) )。 界面中負(fù)責(zé)各個(gè)線程的啟動(dòng)為停止或者掛起。歌曲點(diǎn)播面板 負(fù)責(zé)歌曲的顯示和對(duì)歌曲的控制。音樂(lè)播放類(lèi)負(fù)責(zé)對(duì)歌曲的播放。音樂(lè)曲線圖繪制類(lèi)負(fù)責(zé)對(duì)把音樂(lè)中的 ” 音 ” 用圖形的形式繪制出來(lái) 。 第 6 章系統(tǒng)測(cè)試與性能分析 在程序中為每個(gè)測(cè)試模塊 的 關(guān)鍵點(diǎn)進(jìn)行數(shù)據(jù)捕捉,然后打印出來(lái)。再結(jié)合真實(shí)模擬測(cè)試。進(jìn)行對(duì)比分析。如果打印出來(lái)的數(shù)據(jù)正常而頁(yè)面反映出來(lái)的數(shù)據(jù)不正常則是表示層的問(wèn)題。如果界面正常,而打印出來(lái)到數(shù)據(jù)有問(wèn)題說(shuō)明邏輯上的設(shè)計(jì)有錯(cuò)誤。 系統(tǒng)要求:支持 java 虛擬機(jī) 運(yùn)行環(huán)境: Java 虛擬機(jī) 瀏覽器:支持 java 插件的瀏覽器 內(nèi)存: 至少 20M 硬盤(pán): 至少 20M 驅(qū)動(dòng): Microsoft SQL Server 2021 Driver for JDBC Service pack3 數(shù)據(jù)庫(kù): MS SQL2021 測(cè)試條件 : 具有 合 法帳戶(hù) 系統(tǒng)性能分析 系統(tǒng)中由于采用了數(shù)據(jù)庫(kù)到內(nèi)存 , 所 以服務(wù)器 對(duì)用戶(hù)的內(nèi)存要求較高。在以?xún)?nèi)存耗費(fèi)為代價(jià)下提高了查詢(xún)速度, 并 解決了并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)瓶頸的問(wèn)題。 整 個(gè)系統(tǒng)能滿(mǎn)足大量用戶(hù)的同時(shí)并發(fā)操作,而在網(wǎng)絡(luò)速度比較慢的情況下也就會(huì)延遲5秒左右。 第 36 頁(yè) 共 38 頁(yè) 結(jié)論 經(jīng)過(guò)幾個(gè)月的時(shí)間終于完成 網(wǎng)絡(luò) 聊天與五子棋的設(shè)計(jì)與實(shí)現(xiàn) 。 經(jīng)過(guò)多次測(cè)試,運(yùn)行效果良好。能滿(mǎn)足用戶(hù)聊天和休閑愉悅的需求。如果在系統(tǒng)中加入文件的傳輸和語(yǔ)音的傳輸,再進(jìn)一步 完善 各功能模塊, 就可以作為大眾 化 的網(wǎng)絡(luò)聊天工具。 此五子棋游戲能夠在互連網(wǎng)中進(jìn)行雙人對(duì)弈。 博弈是人工智能的主要研究領(lǐng)域之一,他涉及人工智能中的推理技術(shù)、搜索方法和決策規(guī)劃 。本系統(tǒng) 人機(jī)對(duì)弈的算法 采用 棋盤(pán) 最小推算點(diǎn) 的 局部遍歷的方法 ,在判斷 精度 上 不是很高, 有待于繼續(xù)優(yōu)化邏輯實(shí)現(xiàn)上的代碼,進(jìn)行更細(xì)致的劃分和處理 。 系統(tǒng)中刷新數(shù)據(jù)到內(nèi)存的方法能很好的解決數(shù)據(jù)庫(kù)并發(fā)訪問(wèn) 的瓶頸 問(wèn)題,此方法適合大量查詢(xún)數(shù)據(jù)的數(shù)據(jù)庫(kù)系統(tǒng)如:炒股軟件,地鐵路線查詢(xún)系統(tǒng),訂票系統(tǒng)等 。 通 過(guò)序列化類(lèi)的方式在服務(wù)端與客戶(hù)端傳送大量異構(gòu)型數(shù)據(jù)。通過(guò)此技術(shù)可以解決跨應(yīng)用程序 邊界進(jìn)行訪問(wèn)數(shù)據(jù)的目的。 程序中利用了 Factory 模式和 Proxy 模式和 Bridge 模式,有利于程序的擴(kuò)展。 參考文獻(xiàn) [1] 方睿,刁仁宏,吳四九 .網(wǎng)絡(luò)數(shù)據(jù)庫(kù)原理與應(yīng)用 [M].四川: 四川大學(xué)出版社 ,2021 [2] 葉至軍 .Java2 自學(xué)教程 [M].北京: 人民郵電出版社 ,2021。 [3] 鄭阿奇 ,王燕平 ,湯玫 .ASP 程序設(shè)計(jì)教程 [M].北京:機(jī)械工業(yè) 出版社 ,2021。 [4] Mick O′ ( 版 )[M].北京:清華大學(xué)出版社 ,2021。 [5] 殷兆 麟,張永平,姜淑娟 .Java網(wǎng)絡(luò)高級(jí)編程 [M].北京:清華大學(xué)出版社 ,北京交通大學(xué)出版社, 2021。 [6] 結(jié)城浩 .設(shè)計(jì)模式 JAVA語(yǔ)言中的應(yīng)用 [M].北京: 中國(guó)鐵道 出版社 ,2021。 [7] 里德 .JAVA與 UML 協(xié)同應(yīng)用開(kāi)發(fā) [M].北京:清華大學(xué)出版社 ,2021。 [8] Wendy Boggs, Michael Boggs .UML with Rational Rose 從入門(mén)到精通 [M].北京: 電子工業(yè)出版社 ,2021。 第 37 頁(yè) 共 38 頁(yè) 致謝 本文是在 ???老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)闹?學(xué)作風(fēng)使我受益匪淺,對(duì)順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝! 在論文完成過(guò)程中,本人還得到萬(wàn)得信息技術(shù)股份有限公司 CTO???和 萬(wàn)得信息技術(shù)股份有限公司的子公司萬(wàn)點(diǎn) 的 Director???的熱心幫助,本人向他們表示深深的謝意! 最后向在百忙之中評(píng)審本文的各位專(zhuān)家、老師表示衷心的感謝! 作者簡(jiǎn)介: 姓 名: ??? 性別:男 出生年月: 1984 年 07 月 民族:漢 Email: ???@第 38 頁(yè) 共 38 頁(yè) 聲明 本論文的工作是 2021年 2月至 2021年 6月在成都信息工程 學(xué)院網(wǎng)絡(luò)工程系完成的。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。除非另有說(shuō)明,本文的工作是原始性工作。 關(guān)于學(xué)位論文使用權(quán)和研究成果知識(shí)產(chǎn)權(quán)的說(shuō)明 本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括: ( 1)學(xué)校有權(quán)保管并向有關(guān)部門(mén)遞交學(xué)位論文的原件與復(fù)印件。 ( 2)學(xué)??梢圆捎糜坝?、縮印或其他復(fù)制方式保存學(xué)位論文。 ( 3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。 ( 4)學(xué)校可允許學(xué)位論文被 查閱或借閱。 ( 5)學(xué)校可以公布學(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定)。 除非另有科研合同和其他法律文書(shū)的制約,本論文的科研成果屬于成都信息工程學(xué)院。 特此聲明! 作者簽名: 年 月 日
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1