版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目 錄1 設(shè)計任務(wù)及目標(biāo) 11.1 開發(fā)背景以及設(shè)計目標(biāo) 1設(shè)計任務(wù) 12 需求分析 2系統(tǒng)需求 2用戶需求 222服務(wù)端需求客戶端需求3技術(shù)上可行性分析2.3.系統(tǒng)運行環(huán)境 43 總體設(shè)計 4系統(tǒng)結(jié)構(gòu)設(shè)計 4服務(wù)器設(shè)計 5客戶端設(shè)計 6棋類設(shè)計 74 詳細(xì)設(shè)計 84.1 服務(wù)器 8服務(wù)器主類的設(shè)計開發(fā)8服務(wù)器線程的設(shè)計開發(fā)124.2 客戶端 22棋盤以及規(guī)那么 265 軟件實現(xiàn)以及使用說明 46服務(wù)器運行使用及測試 4652 客戶端運行使用及測試 486 總結(jié) 51任務(wù)完成情況 51特色與不足 51特色 51不足 52所遇到的問題 52體會 527 參考文獻(xiàn) 531 設(shè)計任務(wù)及目標(biāo)開發(fā)背景以
2、及設(shè)計目標(biāo)五子棋有著悠久的歷史,五子棋愛好者更是不計其數(shù),但是由于人們工作地點,時間的限制,生活節(jié)奏的加快,人們之間的交流越來越少,面對面下五子棋的機(jī)會更是少了很多,那種面對面的下棋的方式已經(jīng)不再適應(yīng)人們的生活,但網(wǎng)絡(luò)給了人們一個交流的平臺,因此人們開始轉(zhuǎn)向網(wǎng)絡(luò)五子棋。網(wǎng)絡(luò)五子棋有很多優(yōu)點,通過網(wǎng)絡(luò)五子棋,對弈雙方可以是網(wǎng)絡(luò)上任意兩個五子棋的愛好者,甚至從不認(rèn)識。網(wǎng)絡(luò)五子棋讓對弈的范圍更加的廣泛,讓玩家可以與更多的五子棋愛好者切磋棋藝。所以我此次網(wǎng)絡(luò)課程設(shè)計綜合運用計算機(jī)網(wǎng)絡(luò)、JAVA 語言程序設(shè)計、網(wǎng)絡(luò)編程等課程知識;從需求分析入手,系統(tǒng)地掌握計算機(jī)網(wǎng)絡(luò)編程初級技術(shù),獨立、合理地完成網(wǎng)絡(luò)五子
3、棋對弈程序設(shè)計任務(wù)。設(shè)計目標(biāo)主要包括:(1)實現(xiàn)需求分析階段所要求的服務(wù)器端以及客戶端的功能。(2)游戲界面樸素美觀。(3)棋子樣式采用傳統(tǒng)樣式,黑色和白色。(4)客戶端的信息交流完全通過服務(wù)器傳遞完成。完成一個網(wǎng)絡(luò)五子棋對弈程序設(shè)計工作。根據(jù)自身多年來進(jìn)行網(wǎng)絡(luò)對弈的經(jīng)驗,以及了解,對網(wǎng)絡(luò)五子棋對弈的設(shè)計進(jìn)行需求分析。根根設(shè)計目標(biāo)以及需求分析對五子棋游戲界面總體規(guī)劃和設(shè)計,游戲界面設(shè)計好以后進(jìn)行服務(wù)器端和客戶端的規(guī)劃設(shè)計,最后進(jìn)行棋盤以及棋子的設(shè)計。設(shè)計階段要進(jìn)行服務(wù)器端框架設(shè)計與業(yè)務(wù)代碼開發(fā),客戶端框架設(shè)計與業(yè)務(wù)代碼的開發(fā),棋子以及棋盤類的設(shè)計開發(fā),規(guī)那么類的設(shè)計開發(fā)等。2 需求分析(1)
4、滿足客戶端連接到服務(wù)器的基本要求。(2) 服務(wù)器滿足記錄客戶端游戲動作的基本要求。(3) 滿足服務(wù)器實時獲得客戶端游戲狀態(tài)的基本要求。2.2 用戶需求2.2.1 服務(wù)端需求(1)可以有一個顯示服務(wù)器狀態(tài)的界面,用于記錄各個客戶端的連接狀態(tài)。服務(wù)器是用于連接各個客戶端的通信,如果獨立地創(chuàng)建一個直觀的服務(wù)器,將有力地顯示客戶端的每個狀態(tài),直觀地向用戶反應(yīng)各類信息。(2)可以支持多人同時在線。一個服務(wù)器能夠你能夠接受來自其他多個客戶端的請求,提供相應(yīng)的響應(yīng)服務(wù),是網(wǎng)絡(luò)對弈的基本要求。(3)可以顯示在線用戶的信息。顯示在線用戶的信息,比如主機(jī)名,IP (4)不允許玩家同名。不允許客戶端同名即是不允許客
5、戶端的端口號相同,如果相同,將會造成游戲登陸用戶的管理混亂。(5)服務(wù)器界面節(jié)約大方。服務(wù)器是用于監(jiān)控客戶端的連接情況,沒用必要做得繁雜,用戶只需要直觀的狀態(tài)顯示,所以我們的服務(wù)器不需要設(shè)計太多按鈕,只需要有顯示服務(wù)器狀態(tài),關(guān)閉服務(wù)器,清空列表的按鈕,方便用戶操作。2.2.2 客戶端需求(1) 能夠通過主機(jī) IP 及端口號登陸到服務(wù)器。(2) 可以顯示當(dāng)前所有用戶。游戲客戶端應(yīng)設(shè)計一個可以顯示當(dāng)前所有在線用戶的列表,有助于用戶隨意選擇玩家挑戰(zhàn)。(3) 可以從在線用戶列表中選擇玩家進(jìn)行挑戰(zhàn)。(4) 可以創(chuàng)建以及接受挑戰(zhàn)。(5) 如果對方正在與其他玩家對弈,那么應(yīng)給出相應(yīng)提示。(6) 五子棋規(guī)那么
6、一定要嚴(yán)密。其中五子棋游戲的規(guī)那么如下: 棋盤,棋子:a) 棋盤為十五路,正中一點為天元,周圍四點為小星。b) 棋子分黑白兩色,黑子 113枚,白子 112枚,共 225 枚。 比賽規(guī)那么:a) 點上落子,白第二著棋應(yīng)布在自己河界的一側(cè)。此后,執(zhí)黑方在以天元為中心的 25 個交叉點的范圍內(nèi)布盤面的第三著棋。b) 最先在橫向,豎向,斜向形成連續(xù)的相同色五個棋子的一方為勝。c) 三三四四”,“長連。黑方只能“四三勝。所謂禁手,是指黑方一子落下同時形成兩個或六個以上的連續(xù)棋子。d) 雙方均不能形成五連為和棋。e) 對局中拔子,中途退場均判為負(fù)。f) 黑方勝。g) 黑方禁手形成時,白方應(yīng)立即指出禁手點
7、,黑方即負(fù)。若白方繼續(xù)應(yīng)子,那么黑方禁手不成立。h) 三手可交換:黑下完第手,執(zhí)白五手兩打法:執(zhí)黑下第五手時,必須下兩手棋,執(zhí)白者從這兩手棋中任選一步。i) 本文所論述的聯(lián)機(jī)五子棋系統(tǒng)就是依照這種方式進(jìn)行的。2.2.3 技術(shù)上可行性分析對需求分析階段的結(jié)果進(jìn)行總結(jié),對軟件的可行性分析如下:(1) 網(wǎng)絡(luò)對弈需要兩個客戶端進(jìn)行通信,而利用服務(wù)器的線程開發(fā),進(jìn)行中間中介連接正好可以完成。(2) 五子棋的規(guī)那么雖然嚴(yán)密,但是通過各種情況分析,然后將每個情況分析設(shè)計出來。(3) 本系統(tǒng)的設(shè)計運行環(huán)境只用到 MyEclipse 的編程軟件,無需借用到其它的軟件,比較容易實現(xiàn)。系統(tǒng)運行環(huán)境:MyEclips
8、e3 總體設(shè)計3.1 系統(tǒng)結(jié)構(gòu)設(shè)計該游戲主要分為服務(wù)器端與客戶端兩部分。斷開的狀態(tài),接收客戶端發(fā)送的信息以及向客戶端發(fā)送信息??蛻舳说墓δ苤饕沁B接服務(wù)器端,創(chuàng)建游戲用戶,創(chuàng)建游戲,加入游戲,選擇玩家挑戰(zhàn),向服務(wù)器發(fā)送信息,接收服務(wù)器端發(fā)送來的信息。其具體的功能模塊如圖所示:接收服務(wù)器傳來的信息創(chuàng)建游戲向客戶端發(fā)送信息向服務(wù)器發(fā)送信息3.2 服務(wù)器設(shè)計服務(wù)器的設(shè)計主要分為服務(wù)器主界面,服務(wù)器線程,服務(wù)器主機(jī)面板三個部分。比如清空列表,服務(wù)器狀態(tài),關(guān)閉服務(wù)器的設(shè)計,以及啟動對客戶端的監(jiān)聽,啟動服務(wù)器線程。息,向客戶端發(fā)送信息。小,背景顏色。其具體的功能模塊如圖所示:服務(wù)器端服務(wù)器主機(jī)面板清空,顯
9、示,關(guān)閉向客戶端發(fā)送信息啟動服務(wù)器線程信息板的顯示收客戶端信息3.3 客戶端設(shè)計客戶端的設(shè)計主要分為客戶端界面,客戶端線程兩部分。創(chuàng)建游戲,加入游戲,連接到服務(wù)器,放棄游戲,退出游戲的設(shè)計以及它們對應(yīng)事件的處理。受服務(wù)器信息的設(shè)計以及它們對應(yīng)的事件處理,比如收到服務(wù)器發(fā)送來的游戲勝利,信息錯誤,信息有效等的處理。其具體功能模塊如圖所示:向服務(wù)器發(fā)送信息接收服務(wù)器信息連接到服務(wù)器退出游戲3.4 棋類設(shè)計五子棋類的設(shè)計主要分為棋盤,棋子,五子棋動作線程,規(guī)那么四部分。棋盤的設(shè)計主要包括畫棋子,捕獲下棋事件,畫網(wǎng)絡(luò)棋盤。 棋 子的設(shè)計包括黑棋以及白旗的設(shè)計,其中有大小,顏色,所屬棋盤的設(shè)計。五子棋動
10、作線程的設(shè)計包括處理捕獲下棋信息,發(fā)送當(dāng)前下棋信息,這一部分的設(shè)計是五子棋類設(shè)計的重點。規(guī)那么的設(shè)包括取得指定棋子的位置,判斷當(dāng)前棋子是否取得勝利,當(dāng)前棋子各個方向的判斷,當(dāng)前所要下的棋子是否越界。發(fā)送當(dāng)前下棋信越界判斷4 詳細(xì)設(shè)計4.1 服務(wù)器4.1.1 服務(wù)器主類的設(shè)計開發(fā)主界面。其中包括創(chuàng)建服務(wù)器端用到的控件以及聲明用到的對象引用,完成對控件的初始化:設(shè)置窗體的標(biāo)題,圖標(biāo),大小以及可見性,將各個控件添加到各面板的相應(yīng)位置FIRServer.java 類:/ 服務(wù)器界面類=utton(清空列表);=utton(服務(wù)器狀態(tài));=utton(關(guān)閉服務(wù)器);=/=/=/將游戲創(chuàng)建者和游戲加入 =
11、 = =serverMsgPanel.msgTextArea.setText(服務(wù)器啟動于:+ = 已 連 接 用 戶 + = 新玩家+ thread=new serverMsgPanel.msgTextArea.append(服務(wù)器信息:+ =4.1.2 服務(wù)器線程的設(shè)計開發(fā)服務(wù)器線程是服務(wù)器啟動后創(chuàng)建并啟動的第一個線程,該線程主要用于接收客戶端的連接,并未每個連接分配一個服務(wù)器代理線程。服務(wù)器代理線程主要用于接收客戶端傳來的消息,并將該消息轉(zhuǎn)發(fā)給另一個客戶端。服務(wù)器為所有客戶端都分配了一個該類線程實例,單獨為特定客戶端進(jìn)行服務(wù)。同時每一個服務(wù)器代理線程都有能唯一標(biāo)識的名稱。類: Hash
12、Hash Hash= =取 + =1-= = + + + = = + =+ = =Feedback(無效命令); = + + = = = = = = =+ valuekey= + -更新用戶列表);-私聊);Feedback(注意:命令必須對所有用戶發(fā)送);serverMsgPanel.msgTextArea.append(用戶斷開連接:+/如果是游戲客戶端主機(jī) 當(dāng) 前 連 接 數(shù) += 當(dāng) 前 連 接 數(shù) + =4.2 客戶端客戶端主類即客戶端的運行類,用戶通過運行該類連接服務(wù)器,也是通過在該類的窗體中與其他玩家對弈。FIRClientThread.java類:= = firClient.u
13、serInputPad.userChoice.addItem(所有用戶); = 0 下 = 取 +用戶名:+ Frame firClient.firPad.statusText.setText(不能加入游戲!); = = =firClient.firPad.statusText.setText(黑方下.); = 游戲加入,等待對 =firClient.firPad.statusText.setText(對手退出);= firClient.firPad.statusText.setText(游戲創(chuàng)建等待對手); 錯誤,退出程+= wait=棋盤以及規(guī)那么FIRPad.java類: = = = x
14、= y= = x= y= x= y= = = = = =TextField(請連接服務(wù)器!);= = =new =statusText.setText(連接失敗! i=i= i=i= = = statusText.setText(黑方勝,黑:白+,游戲重啟,等待白方.); statusText.setText(白方勝,黑:白+,游戲重啟,等待黑方.); =*=* =*=* = = = = = 1/以下每對端= 4= +* 4=+ 數(shù)加1 +else/ =-*& 4+ for=*+* 4+=*-* 4+=-*+* 4+=+*-* 4+= = + * + * 4+=-*-* 4+ =+* 4+=-
15、* 4+= = * + * 4+= = * - * 4+= = - * + * 4+=+*-* 4+= + * + * 4+= = - * - * 4+ i=ii=i+j=jj=j+ =1 = + *-*- statusText.setText(黑(第+步)+,輪到白方.);= +*-*- = =+*-*-statusText.setText(白(第+步)+,輪到黑方.);=+*-*- = =*-*-statusText.setText(黑(第+步)+,輪到白方.);=+*-*-=*-*-statusText.setText(白(第+步)+,輪到黑方.);=+*-*-= =a=+/b=+/2/
16、 線用戶列表的處理也都完成了,下面可以對服務(wù)器進(jìn)行測試,啟動服務(wù)器,然后從客戶端登陸幾個用戶,查看服務(wù)器端的在線用戶列表中是否有變化,如果有那么連段通信成功,測試后的服務(wù)器如圖所示:啟動服務(wù)器,服務(wù)器的界面運行如下:機(jī)號,端口號,IP 地址,如圖所示:主機(jī)號,端口號,IP 地址,如圖所示:客戶端 1 創(chuàng)建游戲,等待對手,如圖所示:客戶端 2 選擇玩家 1,并且選擇加入游戲,當(dāng)加入游戲成功那么系統(tǒng)提示加入成功,如圖所示:當(dāng)有一方五子連珠,即有一方勝利時,系統(tǒng)將會提示消息,如圖所示:通信,并在服務(wù)器界面上清晰地顯示每個客戶端的連接和斷開的狀態(tài)。客戶端也能完成與服務(wù)器的連接通信,創(chuàng)建游戲,加入游戲,
17、退出游戲,與挑戰(zhàn)者的對戰(zhàn),勝利的判斷。實現(xiàn)網(wǎng)絡(luò)對弈,比較靈活,不會像人機(jī)交戰(zhàn)那樣死板。 界面簡單大方,用戶能簡易的操作使用。 能夠隨意挑選對手進(jìn)行對戰(zhàn),增加了用戶的興趣。 能夠記錄下黑白棋所下的步數(shù),以及給予用戶相應(yīng)的提示。不足 如果操作不正確時將會導(dǎo)致軟件異常,異常處理不完整。 聊天功能不夠健全,不能進(jìn)行私聊,這塊功能有待于完整。 沒有背景音樂,游戲比較死寂,沒有生機(jī)。所遇到的問題總體來說,在參考書的幫助下,沒有遇到什么解決不了的問題。但是在設(shè)計開發(fā)的時候還是遇到了一些小問題。1. 在設(shè)計開發(fā)服務(wù)器線程的時候,對 Hashtable 類的理解比較困難,一剛開始不知道這個類到底是有什么用,后來經(jīng)過查API,查資料才知道它是實現(xiàn)哈希表,也就是用于綁定一個對象與另一個對象,在開發(fā)中就是用于客戶端端口號與其輸入輸出流綁定。2. 到很多種情況,比如像越界處理,上下左右方向的判斷處理。體會對于五子棋網(wǎng)絡(luò)對弈的總體設(shè)計,一剛開始是沒有什么思路,雖然以前有玩過五子棋,也知道五子棋必須要有兩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024廣告征集代理合同范本
- 2024貨物運輸托運合同范文
- 短期流動資金借款合同
- 2024汽車公司運輸合同范本
- 2024年度工程分包合同條款詳細(xì)描述
- 出租車經(jīng)營權(quán)轉(zhuǎn)讓協(xié)議
- 技術(shù)合同在企業(yè)競爭力提升中的作用
- 2024公司房產(chǎn)土地轉(zhuǎn)讓合同
- 2024新版大學(xué)場地租賃合同(商業(yè)活動)
- 房地產(chǎn)項目轉(zhuǎn)讓協(xié)議書
- 小記者第一課我是一名小記者
- 團(tuán)結(jié)友愛和睦相處主題班會
- 2024年福建省托育服務(wù)職業(yè)技能競賽理論考試題庫(含答案)
- 2024下半年江蘇蘇州城市學(xué)院招聘管理崗位工作人員27人歷年(高頻重點提升專題訓(xùn)練)共500題附帶答案詳解
- 二年級乘除法口算題大全500題(可直接打印)
- 半導(dǎo)體芯片項目創(chuàng)業(yè)計劃書(參考范文)
- 困難職工基本情況匯總統(tǒng)計表
- 檔案統(tǒng)計臺帳
- (完整word版)CSAMT和EH-4原理、工作方法簡介
- 七大浪費實戰(zhàn)案例(消除企業(yè)中的浪費)
- 停用常壓儲罐管理辦法
評論
0/150
提交評論