版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
浙江科技學院經(jīng)濟管理學院JAVA語言課程設(shè)計報告選題名稱五子棋小游戲?qū)W生學號專業(yè)班級信管092學生姓名學生成績指導教師朱軍工作時間2012-06-27
目錄TOC\o"1-3"\u1選題簡介 32需求分析 42.1系統(tǒng)要實現(xiàn)的目標分析 42.2對輸入輸出數(shù)據(jù)及流程的分析 42.3開發(fā)環(huán)境及運行環(huán)境分析 52.3.1開發(fā)環(huán)境 52.3.2運行環(huán)境 53系統(tǒng)設(shè)計 53.1系統(tǒng)功能模塊設(shè)計 53.2類設(shè)計 63.2.1服務(wù)器類 63.2.2游戲客戶端 63.2.3網(wǎng)絡(luò)客戶端類 73.2.4棋盤類 73.3界面設(shè)計 74測試 84.1測試用例及結(jié)果 84.2程序功能的評價 85.總結(jié) 95.1遇到的問題及解決的方法 95.2開發(fā)體會及自評成績 9參考文獻 101選題簡介電腦已經(jīng)深入到日常工作和生活的方方面面,比如文字處理、信息管理、輔助設(shè)計、圖形圖像處理、教育培訓以及游戲娛樂等,各行各業(yè)的人們無須經(jīng)過特別的訓練就能夠使用電腦完成許許多多復雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了花樣繁多的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發(fā)適合自己特殊需求的軟件。Java語言作為一種面向?qū)ο蟮木幊陶Z言,具有分布式,可移植,高性能,多線程等特點[1]。如今網(wǎng)絡(luò)休閑游戲發(fā)展迅速,它憑借健康、方便、互動性強、益智等諸多優(yōu)點,成為大部分現(xiàn)代人休閑娛樂的首選。網(wǎng)絡(luò)五子棋游戲是使用Java語言開發(fā)的一款游戲。它使用SOCKET建立連接,多線程處理數(shù)據(jù),這些特點使這款游戲無論是服務(wù)器還是客戶端的實現(xiàn)都相對容易。隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)游戲已經(jīng)成為計算機技術(shù)中最具潛力的熱點領(lǐng)域,隨著聯(lián)眾世界、騰訊游戲等網(wǎng)絡(luò)游戲平臺的拓展,越來越多的人參與到網(wǎng)絡(luò)游戲中。特別是其中一些休閑益智類的棋牌游戲,集趣味性、娛樂性、互動性和益智性于一體,擁有大量的用戶。因此使用Java開發(fā)網(wǎng)絡(luò)五子棋游戲是一個實用性很強的畢業(yè)設(shè)計項目。網(wǎng)絡(luò)五子棋游戲的總體功能是要設(shè)計出具有精美界面的,具備人工智能的,支持網(wǎng)絡(luò)對弈的五子棋游戲。本系統(tǒng)最終的目的是建立一個有具體規(guī)則的五子棋平臺,使兩臺不同計算機的使用者通過一定的網(wǎng)絡(luò)連接,達到網(wǎng)絡(luò)對弈的目的,以及單機上的人機對戰(zhàn)。2需求分析2.1系統(tǒng)要實現(xiàn)的目標分析本課題為了熟悉五子棋規(guī)則及技巧,以及研究簡單的人工智能,決定用Java開發(fā)五子棋游戲。主要完成人人對戰(zhàn)的功能。網(wǎng)絡(luò)連接部分為Socket編程應用,客戶端負責界面維護和收集用戶輸入的信息及錯誤處理。服務(wù)器維護在線用戶的基本信息和任意兩個對戰(zhàn)用戶的棋盤信息,動態(tài)維護用戶列表。分析估值模塊中的影響精準性的幾個要素,以及提出若干提高精準性的辦法,以及對它們的搜索進行比較,在這些算法的基礎(chǔ)上分析一些提高電腦智能方案。開始1.初始化2.主控制開始1.初始化2.主控制3.白方下子白方黑方否則勝利4.判斷勝負結(jié)束3.黑方下子2.3開發(fā)環(huán)境及運行環(huán)境分析2.3.1開發(fā)環(huán)境 MicrosoftWindowsXPProfessionalServicePack3 JDK1.60 JCreatorPro2.3.2運行環(huán)境 MicrosoftWindowsXP操作系統(tǒng) 1024*768或以上的屏幕分辨率3系統(tǒng)設(shè)計3.1系統(tǒng)功能模塊設(shè)計根據(jù)上面的系統(tǒng)的設(shè)計要求,可以將此網(wǎng)絡(luò)五子棋游戲分為以下幾個模塊: 初始化模塊:建立棋盤數(shù)組并清零以備使用;初始化鍵盤/鼠標等輸入輸出設(shè)備并在屏幕上畫出棋盤。 主循環(huán)控制模塊:負責控制下棋順序,當輪到某方下子時,負責將程序流程轉(zhuǎn)到相應的模塊中,主要擔當一個調(diào)度者的角色。 玩家落子模塊:即用戶在指定落子區(qū)域單擊后,程序會計算該子的坐標,并且將棋盤數(shù)組中坐標處記錄棋子的顏色,1代表黑色,2代表白色,以表明是哪方下的棋子。 分析盤面填寫棋型表模塊:本程序核心模塊之一,人工智能算法的根本依據(jù)。 電腦落子模塊:根據(jù)填寫的棋盤表,選擇最優(yōu)落子位置。 勝負判斷模塊:根據(jù)預先設(shè)定的規(guī)則,判斷游戲勝負。 網(wǎng)絡(luò)模塊:在人機對弈的基礎(chǔ)上,添加網(wǎng)絡(luò)功能的實現(xiàn),使兩臺不同計算機的用戶通過網(wǎng)絡(luò)連接,實現(xiàn)網(wǎng)絡(luò)對弈的功能[9]。3.2類設(shè)計3.2.1服務(wù)器類服務(wù)器類用于接收客戶端的連接,并為每個客戶端在服務(wù)器端啟動單獨的一個守護線程,線程的主要功能是接收客戶端發(fā)送過來的消息并做出相應的處理,客戶端發(fā)送到服務(wù)器端的主要消息有兩部分:一部分是客戶端發(fā)送給服務(wù)器端需要服務(wù)器端進行處理的。如客戶端發(fā)送過的連接信息、客戶端發(fā)送過來的改名信息、客戶端發(fā)送過的斷開連接信息等。另一部分是客戶端發(fā)送給服務(wù)器端需要服務(wù)端轉(zhuǎn)發(fā)給其他客戶端的消息。如客戶端給游戲另一方發(fā)送的棋盤狀態(tài)數(shù)據(jù)、倒計時信息、聊天信息。3.2.2游戲客戶端類游戲客戶端的主要功能是為了初始化和組織用戶界面,并且定義了各個按鈕的功能。游戲客戶端的主要對象如下:1. GameMain本程序的主函數(shù),初始化棋盤。用于判定玩家是否與服務(wù)器連接。2. isChess用于判定玩家是否已經(jīng)在開局游戲中。3.2.3網(wǎng)絡(luò)客戶端類網(wǎng)絡(luò)客戶端的主要功能是當前玩家與其他玩家進行對弈時,網(wǎng)絡(luò)客戶端需要發(fā)送和接收的消息處理。3.2.4棋盤類棋盤類的主要功能是繪制玩家的棋盤狀態(tài)與棋子信息以及電腦落子算法的實現(xiàn)。棋盤類的主要對象:1. board玩家所維護的棋盤二維數(shù)組。結(jié)果為1表示(x,y)位置為黑子,結(jié)果為2表示(x,y)位置為白子。2. withComputer玩家與電腦對弈的標志。如果當前玩家是與電腦對弈,此變量值為真;否則為假。3. isMouseEnable以此變量來控制在網(wǎng)絡(luò)對弈的雙方中,當前玩家是否處于可以落子狀態(tài)。因為網(wǎng)絡(luò)對弈要求當一玩家下完后,對方才能落子,因此當此變量為真時,玩家可以落子;當此變量為假時,玩家不可以落子。4. isRegretEnable判斷當前的悔棋按鈕是否可用。為真時,玩家可以悔棋;為假時,玩家不可以悔棋。3.3界面設(shè)計操作界面如下圖(1)所示,游戲畫面簡單易懂:(1)4測試4.1測試用例及結(jié)果用例名稱:網(wǎng)絡(luò)客戶端功能用例描述:玩家連接上服務(wù)器后,是否可以進行正常的對弈操作。測試結(jié)果:連接成功,測試結(jié)果正確。見圖(2)(2)可以實現(xiàn)勝負的判斷,并終止游戲4.2程序功能的評價本程序主要實現(xiàn)簡單的五子棋對戰(zhàn)功能,游戲界面簡單,操作簡易。開局后由系統(tǒng)默認分配先下棋的一方,黑白方先實現(xiàn)五子連珠的一方則取得勝利。本程序由6個基本功能模塊構(gòu)成,各模塊的詳細分析如下:1.主函數(shù)GameMain本程序的主函數(shù),初始化棋盤。2.BlackWin實現(xiàn)黑方獲勝,WhiteWin實現(xiàn)白方獲勝。3.Draw雙方平局4.GameFramesetTitle("五子棋");setSize(400,420);4.PaintPanel游戲界面。5.總結(jié)5.1遇到的問題及解決的方法問題:設(shè)計的游戲沒有游戲界面。解決方法:進行界面設(shè)計。去網(wǎng)上查找資料,準備需要的圖片文件等;設(shè)計圖形界面。如創(chuàng)建鍵盤for(inti=0;i<16;i++){ g2.draw(newLine2D.Double(startX,startY+20*i,startX+300,startY+20*i));//創(chuàng)建盤面 g2.draw(newLine2D.Double(startX+20*i,startY,startX+20*i,startY+300)); }5.2開發(fā)體會及自評成績經(jīng)過這幾周對Java面向?qū)ο蟪绦蛟O(shè)計的學習,我更加了解到Java學習的重要性,以及Java對我們專業(yè)的發(fā)展發(fā)揮的作用。在上個學期我們也學習了Java語言程序設(shè)計基礎(chǔ),在此基礎(chǔ)之上學習起來就方便了一些,做起實驗來也順手很多,能很快地進入狀態(tài)。要想成為一個出色的程序員,一定要有耐心和恒心。我也感謝我的java課程的任課老師朱軍老師,因為是他讓我對java產(chǎn)生了好奇與無窮的興趣。由于自己的分析設(shè)計和程序經(jīng)驗不足,該系統(tǒng)設(shè)計和實現(xiàn)過程中,還有許多沒有完善的地方,比如用戶界面設(shè)計不夠美觀,異常出錯處理比較差等多方面問題,這些都有待進一步完善和提高。對于文中出現(xiàn)的不足和系統(tǒng)中出現(xiàn)的問題敬請老師指導。參考文獻[1]埃史爾,陳昊鵬.Java編程思想(第4版)[M].北京:機械工業(yè)出版社,2007.6:105-121[2]李鐘尉,馬文強,陳丹丹.Java從入門到精通[M].北京:清華大學出版社,2008.9:234-250[3]Y.DanielLiang,萬波,鄭海紅,潘蓉.Java語言程序設(shè)計:基礎(chǔ)篇(原書第6版)[M].北京:機械工業(yè)出版社,2008.6:355-363[4]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 德宏云南德宏盈江縣人民檢察院招聘省級聘用制書記員筆試歷年參考題庫附帶答案詳解
- 2025年浙教版七年級生物下冊階段測試試卷含答案
- 2025年滬科版必修2地理下冊月考試卷含答案
- 2025年統(tǒng)編版選擇性必修1歷史下冊月考試卷
- 2025年蘇科版選擇性必修2地理上冊月考試卷
- 2025年外研版八年級歷史下冊月考試卷
- 2025年蘇人新版八年級語文上冊階段測試試卷
- 2025幼兒園場所租賃合同范本
- 2025贈與合同格式范本
- 2025房地產(chǎn)顧問合同模板
- 創(chuàng)新者的窘境讀書課件
- 綜合素質(zhì)提升培訓全面提升個人綜合素質(zhì)
- 如何克服高中生的社交恐懼癥
- 聚焦任務(wù)的學習設(shè)計作業(yè)改革新視角
- 淋巴瘤患者的護理
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)三 APP的品牌建立與價值提供
- 電子競技范文10篇
- 食堂服務(wù)質(zhì)量控制方案與保障措施
- VI設(shè)計輔助圖形設(shè)計(2022版)
- 眼科學??己喆痤}
- 物料分類帳的應用
評論
0/150
提交評論