JAVA語言課程設計報告 五子棋源代碼_第1頁
JAVA語言課程設計報告 五子棋源代碼_第2頁
JAVA語言課程設計報告 五子棋源代碼_第3頁
JAVA語言課程設計報告 五子棋源代碼_第4頁
JAVA語言課程設計報告 五子棋源代碼_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

浙江科技學院經濟管理學院JAVA語言課程設計報告選題名稱五子棋小游戲學生學號專業(yè)班級信管092學生姓名學生成績指導教師朱軍工作時間2012-06-27

目錄TOC\o"1-3"\u1選題簡介 32需求分析 42.1系統(tǒng)要實現(xiàn)的目標分析 42.2對輸入輸出數據及流程的分析 42.3開發(fā)環(huán)境及運行環(huán)境分析 52.3.1開發(fā)環(huán)境 52.3.2運行環(huán)境 53系統(tǒng)設計 53.1系統(tǒng)功能模塊設計 53.2類設計 63.2.1服務器類 63.2.2游戲客戶端 63.2.3網絡客戶端類 73.2.4棋盤類 73.3界面設計 74測試 84.1測試用例及結果 84.2程序功能的評價 85.總結 95.1遇到的問題及解決的方法 95.2開發(fā)體會及自評成績 9參考文獻 101選題簡介電腦已經深入到日常工作和生活的方方面面,比如文字處理、信息管理、輔助設計、圖形圖像處理、教育培訓以及游戲娛樂等,各行各業(yè)的人們無須經過特別的訓練就能夠使用電腦完成許許多多復雜的工作。然而,雖然現(xiàn)在世界上已經充滿了花樣繁多的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發(fā)適合自己特殊需求的軟件。Java語言作為一種面向對象的編程語言,具有分布式,可移植,高性能,多線程等特點[1]。如今網絡休閑游戲發(fā)展迅速,它憑借健康、方便、互動性強、益智等諸多優(yōu)點,成為大部分現(xiàn)代人休閑娛樂的首選。網絡五子棋游戲是使用Java語言開發(fā)的一款游戲。它使用SOCKET建立連接,多線程處理數據,這些特點使這款游戲無論是服務器還是客戶端的實現(xiàn)都相對容易。隨著計算機網絡技術的發(fā)展,網絡游戲已經成為計算機技術中最具潛力的熱點領域,隨著聯(lián)眾世界、騰訊游戲等網絡游戲平臺的拓展,越來越多的人參與到網絡游戲中。特別是其中一些休閑益智類的棋牌游戲,集趣味性、娛樂性、互動性和益智性于一體,擁有大量的用戶。因此使用Java開發(fā)網絡五子棋游戲是一個實用性很強的畢業(yè)設計項目。網絡五子棋游戲的總體功能是要設計出具有精美界面的,具備人工智能的,支持網絡對弈的五子棋游戲。本系統(tǒng)最終的目的是建立一個有具體規(guī)則的五子棋平臺,使兩臺不同計算機的使用者通過一定的網絡連接,達到網絡對弈的目的,以及單機上的人機對戰(zhàn)。2需求分析2.1系統(tǒng)要實現(xiàn)的目標分析本課題為了熟悉五子棋規(guī)則及技巧,以及研究簡單的人工智能,決定用Java開發(fā)五子棋游戲。主要完成人人對戰(zhàn)的功能。網絡連接部分為Socket編程應用,客戶端負責界面維護和收集用戶輸入的信息及錯誤處理。服務器維護在線用戶的基本信息和任意兩個對戰(zhàn)用戶的棋盤信息,動態(tài)維護用戶列表。分析估值模塊中的影響精準性的幾個要素,以及提出若干提高精準性的辦法,以及對它們的搜索進行比較,在這些算法的基礎上分析一些提高電腦智能方案。開始1.初始化2.主控制開始1.初始化2.主控制3.白方下子白方黑方否則勝利4.判斷勝負結束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)設計3.1系統(tǒng)功能模塊設計根據上面的系統(tǒng)的設計要求,可以將此網絡五子棋游戲分為以下幾個模塊: 初始化模塊:建立棋盤數組并清零以備使用;初始化鍵盤/鼠標等輸入輸出設備并在屏幕上畫出棋盤。 主循環(huán)控制模塊:負責控制下棋順序,當輪到某方下子時,負責將程序流程轉到相應的模塊中,主要擔當一個調度者的角色。 玩家落子模塊:即用戶在指定落子區(qū)域單擊后,程序會計算該子的坐標,并且將棋盤數組中坐標處記錄棋子的顏色,1代表黑色,2代表白色,以表明是哪方下的棋子。 分析盤面填寫棋型表模塊:本程序核心模塊之一,人工智能算法的根本依據。 電腦落子模塊:根據填寫的棋盤表,選擇最優(yōu)落子位置。 勝負判斷模塊:根據預先設定的規(guī)則,判斷游戲勝負。 網絡模塊:在人機對弈的基礎上,添加網絡功能的實現(xiàn),使兩臺不同計算機的用戶通過網絡連接,實現(xiàn)網絡對弈的功能[9]。3.2類設計3.2.1服務器類服務器類用于接收客戶端的連接,并為每個客戶端在服務器端啟動單獨的一個守護線程,線程的主要功能是接收客戶端發(fā)送過來的消息并做出相應的處理,客戶端發(fā)送到服務器端的主要消息有兩部分:一部分是客戶端發(fā)送給服務器端需要服務器端進行處理的。如客戶端發(fā)送過的連接信息、客戶端發(fā)送過來的改名信息、客戶端發(fā)送過的斷開連接信息等。另一部分是客戶端發(fā)送給服務器端需要服務端轉發(fā)給其他客戶端的消息。如客戶端給游戲另一方發(fā)送的棋盤狀態(tài)數據、倒計時信息、聊天信息。3.2.2游戲客戶端類游戲客戶端的主要功能是為了初始化和組織用戶界面,并且定義了各個按鈕的功能。游戲客戶端的主要對象如下:1. GameMain本程序的主函數,初始化棋盤。用于判定玩家是否與服務器連接。2. isChess用于判定玩家是否已經在開局游戲中。3.2.3網絡客戶端類網絡客戶端的主要功能是當前玩家與其他玩家進行對弈時,網絡客戶端需要發(fā)送和接收的消息處理。3.2.4棋盤類棋盤類的主要功能是繪制玩家的棋盤狀態(tài)與棋子信息以及電腦落子算法的實現(xiàn)。棋盤類的主要對象:1. board玩家所維護的棋盤二維數組。結果為1表示(x,y)位置為黑子,結果為2表示(x,y)位置為白子。2. withComputer玩家與電腦對弈的標志。如果當前玩家是與電腦對弈,此變量值為真;否則為假。3. isMouseEnable以此變量來控制在網絡對弈的雙方中,當前玩家是否處于可以落子狀態(tài)。因為網絡對弈要求當一玩家下完后,對方才能落子,因此當此變量為真時,玩家可以落子;當此變量為假時,玩家不可以落子。4. isRegretEnable判斷當前的悔棋按鈕是否可用。為真時,玩家可以悔棋;為假時,玩家不可以悔棋。3.3界面設計操作界面如下圖(1)所示,游戲畫面簡單易懂:(1)4測試4.1測試用例及結果用例名稱:網絡客戶端功能用例描述:玩家連接上服務器后,是否可以進行正常的對弈操作。測試結果:連接成功,測試結果正確。見圖(2)(2)可以實現(xiàn)勝負的判斷,并終止游戲4.2程序功能的評價本程序主要實現(xiàn)簡單的五子棋對戰(zhàn)功能,游戲界面簡單,操作簡易。開局后由系統(tǒng)默認分配先下棋的一方,黑白方先實現(xiàn)五子連珠的一方則取得勝利。本程序由6個基本功能模塊構成,各模塊的詳細分析如下:1.主函數GameMain本程序的主函數,初始化棋盤。2.BlackWin實現(xiàn)黑方獲勝,WhiteWin實現(xiàn)白方獲勝。3.Draw雙方平局4.GameFramesetTitle("五子棋");setSize(400,420);4.PaintPanel游戲界面。5.總結5.1遇到的問題及解決的方法問題:設計的游戲沒有游戲界面。解決方法:進行界面設計。去網上查找資料,準備需要的圖片文件等;設計圖形界面。如創(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ā)體會及自評成績經過這幾周對Java面向對象程序設計的學習,我更加了解到Java學習的重要性,以及Java對我們專業(yè)的發(fā)展發(fā)揮的作用。在上個學期我們也學習了Java語言程序設計基礎,在此基礎之上學習起來就方便了一些,做起實驗來也順手很多,能很快地進入狀態(tài)。要想成為一個出色的程序員,一定要有耐心和恒心。我也感謝我的java課程的任課老師朱軍老師,因為是他讓我對java產生了好奇與無窮的興趣。由于自己的分析設計和程序經驗不足,該系統(tǒng)設計和實現(xiàn)過程中,還有許多沒有完善的地方,比如用戶界面設計不夠美觀,異常出錯處理比較差等多方面問題,這些都有待進一步完善和提高。對于文中出現(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語言程序設計:基礎篇(原書第6版)[M].北京:機械工業(yè)出版社,2008.6:355-363[4]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論