版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第24章Java項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)五子棋游戲,系統(tǒng)概述 開(kāi)發(fā)前的知識(shí)準(zhǔn)備之一Swing編程 開(kāi)發(fā)前的知識(shí)準(zhǔn)備之二顯示窗體的類(lèi)ImageIO 開(kāi)發(fā)前的知識(shí)準(zhǔn)備之三圖形的繪制類(lèi)Graphics 游戲界面開(kāi)發(fā) 繪制棋子 保存棋局 判斷游戲勝負(fù) 處理屏幕閃爍問(wèn)題 實(shí)現(xiàn)各個(gè)功能按鈕 完整代碼,24.1 系統(tǒng)概述,24.1.1 運(yùn)行本系統(tǒng) 24.1.2 本系統(tǒng)的開(kāi)發(fā)步驟 24.1.3 數(shù)據(jù)庫(kù)表的準(zhǔn)備,24.1.1 運(yùn)行本系統(tǒng) 為對(duì)本程序的功能有所了解,下面簡(jiǎn)述運(yùn)行步驟 把光盤(pán)中的“finalch24FiveChessProject”目錄復(fù)制到硬盤(pán)中 運(yùn)行Eclipse,新建一個(gè)Java項(xiàng)目,本例命名為“WuZi
2、”,勾選“從現(xiàn)有資源創(chuàng)建項(xiàng)目”復(fù)選項(xiàng),并在【目錄】文本框中輸入“E: FiveChessProject”。然后單擊【完成】按鈕 在包資源管理器中依次選擇【W(wǎng)uZi】【org.liky.game.test】【Test.java】,右擊該項(xiàng)然后選擇【運(yùn)行方式】【1 Java應(yīng)用程序】菜單項(xiàng) 后面就可以玩一玩該游戲,測(cè)試一下它的功能了,24.1.2 本系統(tǒng)的開(kāi)發(fā)步驟 開(kāi)發(fā)本程序的主要步驟為 新建項(xiàng)目,并新建一個(gè)測(cè)試類(lèi)用于研究技術(shù)和創(chuàng)建五子棋窗體 新建一個(gè)類(lèi)FiveChessFrame。大部分程序代碼要在這個(gè)類(lèi)中完成 測(cè)試代碼 運(yùn)行程序,24.1.3 五子棋游戲的功能 五子棋游戲的基本功能如下: 在單
3、擊鼠標(biāo)時(shí),在相應(yīng)的位置顯示棋子 自動(dòng)判斷游戲是否結(jié)束,是否黑方或白方已經(jīng)勝利 對(duì)游戲時(shí)間進(jìn)行設(shè)置,判斷是否超出規(guī)定時(shí)間,24.1.4 主要技術(shù) 本程序主要用到以下3種技術(shù): Swing編程 ImageIO類(lèi)的使用 圖片的繪制,24.2 開(kāi)發(fā)前的知識(shí)準(zhǔn)備之一Swing編程,24.2.1 與窗體相關(guān)的類(lèi)JFrame 24.2.2 與對(duì)話(huà)框相關(guān)的類(lèi)JOptionPane 24.2.3 與監(jiān)聽(tīng)鼠標(biāo)相關(guān)的類(lèi) MouseListener,23.2 開(kāi)發(fā)前的知識(shí)準(zhǔn)備之一Swing編程,Swing是一個(gè)用于開(kāi)發(fā)Java應(yīng)用程序用戶(hù)界面的開(kāi)發(fā)工具包。它以抽象窗口工具包(AWT)為基礎(chǔ),使跨平臺(tái)應(yīng)用程序可以使用統(tǒng)
4、一的外觀風(fēng)格。Swing開(kāi)發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來(lái)創(chuàng)建優(yōu)雅的用戶(hù)界面,24.2.1 與窗體相關(guān)的類(lèi)JFrame JFrame是創(chuàng)建窗體的swing類(lèi),存在于javax.swing.JFrame包中。用來(lái)創(chuàng)建一個(gè)圖形界面的原始窗口 1. JFrame中的主要方法如下 setVisible(): 設(shè)置窗體是否顯示 setTitle() : 設(shè)置窗體標(biāo)題 setSize() : 設(shè)置窗體大小 setLocation(): 設(shè)置窗體初始顯示的位置 setResizable(): 設(shè)置窗體是否可以改變大小,24.2.1 與窗體相關(guān)的類(lèi)JFrame 2. 和J
5、Frame相關(guān)的取得屏幕大小的方法如下: Toolkit.getDefaultToolkit().getScreenSize().width: 取得當(dāng)前屏幕的寬度 Toolkit.getDefaultToolkit().getScreenSize().height: 取得當(dāng)前屏幕的高度 【范例24-1】 生成一個(gè)窗體并顯示到屏幕上,在測(cè)試類(lèi)文件Test.Java中輸入以下代碼 【范例24-2】 設(shè)置窗體的標(biāo)題、位置和大小,在測(cè)試類(lèi)文件Test.Java中輸入以下代碼,24.2.1 與窗體相關(guān)的類(lèi)JFrame 【范例24-3】 使窗體不可調(diào)整大小,并且在關(guān)閉窗體時(shí)關(guān)閉應(yīng)用程序,在測(cè)試類(lèi)文件Tes
6、t.Java中輸入以下代碼 【范例24-4】 得到當(dāng)前屏幕的分辨率在測(cè)試類(lèi)文件Test.Java中輸入以下代碼 【范例24-5】 把窗口放在屏幕的正中央,在測(cè)試類(lèi)文件Test.Java中輸入以下代碼 【范例24-6】 把主窗體封裝成一個(gè)類(lèi),24.2.2 與對(duì)話(huà)框相關(guān)的類(lèi)JOptionPane 在Swing編程中提供了JOptionPane類(lèi)來(lái)實(shí)現(xiàn)類(lèi)似Windows平臺(tái)下的MessageBox的功能 【范例24-7】 測(cè)試由JOptionPane產(chǎn)生的各種對(duì)話(huà)框,在測(cè)試類(lèi)文件Test.Java中輸入以下代碼,24.2.3 與監(jiān)聽(tīng)鼠標(biāo)相關(guān)的類(lèi)MouseListener MouseListeneru
7、是一個(gè)接口。用于接收組件上“感興趣”的鼠標(biāo)事件(按下、釋放、單擊、進(jìn)入或離開(kāi))的偵聽(tīng)器接口 【范例24-8】 測(cè)試MouseListener,在主窗口類(lèi)文件FiveChessFrame.java中輸入以下代碼,24.2.4 確定鼠標(biāo)坐標(biāo)的類(lèi)MouseEvent getX() : 得到鼠標(biāo)的橫向位置坐標(biāo) getY() : 得到鼠標(biāo)的縱向位置坐標(biāo),24.3 開(kāi)發(fā)前的知識(shí)準(zhǔn)備之二顯示圖片的類(lèi)ImageIO,ImageIO類(lèi)包含一些用來(lái)查找 ImageReader 和 ImageWriter 以及執(zhí)行簡(jiǎn)單編碼和解碼的靜態(tài)便捷方法,24.4 開(kāi)發(fā)前的知識(shí)準(zhǔn)備之三圖形的繪制類(lèi)Graphics,Java 語(yǔ)
8、言中提供繪制、著色操作功能的基類(lèi)稱(chēng)作 java.awt.Graphics,paint() 方法只有一個(gè)參數(shù),該參數(shù)是 Graphics 類(lèi)的實(shí)例。下面介紹幾個(gè)程序用到的方法 drawString() : 繪制字符串 drawOval() : 繪制一個(gè)空心的圓形 fillOval() : 繪制一個(gè)實(shí)心的圓形 drawLine() : 繪制一條線(xiàn) drawRect() : 繪制一個(gè)空心的矩形 fillRect() : 繪制一個(gè)實(shí)心的矩形 drawImage() : 繪制一個(gè)已經(jīng)存在的圖片,將一個(gè)圖片直接顯示到窗體 中 setColor() : 設(shè)置畫(huà)筆的顏色 setFont() : 設(shè)置繪制文字的
9、字體,24.5 游戲界面開(kāi)發(fā),計(jì)算棋盤(pán)中每一條線(xiàn)的間距:這里用的是19 X 19的圍棋棋盤(pán) 總寬度為360象素,分成18份,每份是20象素 總高度同樣為 360 象素, 分成 18 份 ,每份是 20 象素 (詳見(jiàn)代碼),24.6 繪制棋子,在棋盤(pán)上的鼠標(biāo)點(diǎn)擊位置,顯示一個(gè)棋子 黑子:一個(gè)實(shí)心的黑圓來(lái)表示 白子:一個(gè)空心的黑圓+一個(gè)實(shí)心的白圓來(lái)表示 repaint()方法:表示重新執(zhí)行一次 paint()方法 (詳見(jiàn)代碼),24.7 保存棋局,保存之前下過(guò)的棋子 通過(guò)一個(gè)二維的數(shù)組來(lái)保存之前下過(guò)的所有棋子 (詳見(jiàn)代碼),24.8 判斷游戲勝負(fù),依據(jù)五子棋的基本游戲規(guī)則,判斷是否有同一顏色的棋子連成 5 個(gè)完成了五子棋游戲的核心算法 這里可以把核心算法總結(jié)成一個(gè)靈活的方法 (詳見(jiàn)代碼),24.9 處理屏幕閃爍問(wèn)題,雙緩沖技術(shù):用在手機(jī)游戲中用的是最多的,原因是手機(jī)的內(nèi)存相對(duì)較小,屏幕閃爍問(wèn)題比較明顯 (詳見(jiàn)代碼),24.10 實(shí)現(xiàn)各個(gè)功能按鈕,開(kāi)始游戲:從新開(kāi)始新的游戲 游戲設(shè)置:設(shè)置倒計(jì)時(shí) 游戲說(shuō)明:用來(lái)說(shuō)明游戲規(guī)則和操作 認(rèn)輸:表示某一方放棄游戲,投子認(rèn)負(fù) 關(guān)于:用來(lái)顯示程序的作者或編寫(xiě)單位的相關(guān)信息
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030物聯(lián)網(wǎng)平臺(tái)應(yīng)用場(chǎng)景適用性用戶(hù)體驗(yàn)隱私保護(hù)行業(yè)競(jìng)爭(zhēng)標(biāo)準(zhǔn)化
- 2025-2030物流行業(yè)自動(dòng)化設(shè)備應(yīng)用與倉(cāng)儲(chǔ)布局優(yōu)化及效率提升研究
- 學(xué)生腿部皮膚護(hù)理方案
- 白酒市場(chǎng)操作方案
- 精神分裂癥長(zhǎng)效針劑路徑的成本效果分析
- 精準(zhǔn)預(yù)防策略的健康風(fēng)險(xiǎn)評(píng)估工具
- 精準(zhǔn)營(yíng)養(yǎng)與藥物相互作用的臨床管理
- 精準(zhǔn)康復(fù):基于功能評(píng)估的個(gè)性化方案
- 精準(zhǔn)醫(yī)療靶點(diǎn)選擇的臨床研究終點(diǎn)優(yōu)化策略體系構(gòu)建體系
- 精準(zhǔn)醫(yī)療醫(yī)保支付的健康管理創(chuàng)新
- 《實(shí)踐論》《矛盾論》導(dǎo)讀課件
- 中試基地運(yùn)營(yíng)管理制度
- 老年病康復(fù)訓(xùn)練治療講課件
- DB4201-T 617-2020 武漢市架空管線(xiàn)容貌管理技術(shù)規(guī)范
- 藥品追溯碼管理制度
- 腳手架?chē)?guó)際化標(biāo)準(zhǔn)下的發(fā)展趨勢(shì)
- 購(gòu)銷(xiāo)合同范本(塘渣)8篇
- 生鮮業(yè)務(wù)采購(gòu)合同協(xié)議
- GB/T 4340.2-2025金屬材料維氏硬度試驗(yàn)第2部分:硬度計(jì)的檢驗(yàn)與校準(zhǔn)
- 銷(xiāo)售合同評(píng)審管理制度
- 資產(chǎn)評(píng)估員工管理制度
評(píng)論
0/150
提交評(píng)論