




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、蜘蛛紙牌概要設(shè)計(jì)說(shuō)明書南昌航空大學(xué)軟件學(xué)院2011 年 10 月1. 引言1.1 編寫目的1.1 編寫目的 本詳細(xì)設(shè)計(jì)說(shuō)明書是針對(duì)蜘蛛紙牌游戲的課程作業(yè)而編寫。 目的是對(duì)該軟件進(jìn)行詳細(xì)設(shè) 計(jì),在概要設(shè)計(jì)的基礎(chǔ)上進(jìn)一步明確系統(tǒng)結(jié)構(gòu), 詳細(xì)地介紹系統(tǒng)的各個(gè)模塊, 為進(jìn)行后面的 實(shí)現(xiàn)和測(cè)試作準(zhǔn)備。本詳細(xì)設(shè)計(jì)說(shuō)明書的預(yù)期讀者為本項(xiàng)目小組的成員以及對(duì)該系統(tǒng)感興 趣,在以后想對(duì)系統(tǒng)進(jìn)行擴(kuò)展和維護(hù)的人員。1.2 背景a. 待開發(fā)的系統(tǒng)的名稱:蜘蛛紙牌游戲軟件b. 本項(xiàng)目的任務(wù)提出者 : 周璇、羅書惟、羅劍、王天宇 開發(fā)者:周璇、羅書惟、羅劍、王天宇用戶:所有對(duì)該軟件感興趣,并且對(duì)該游戲熟悉的用戶 1.3 定
2、義AboutDialog :游戲關(guān)于類;Frame1:游戲界面設(shè)計(jì);PKCard:撲克牌的排列算法;Spider :游戲規(guī)則;SpiderMenuBar:游戲菜單欄1.4 參考資料Java 實(shí)用教程 清華大學(xué)出版社 張躍平 耿祥義著 Java 實(shí)用教程 2. 系統(tǒng)的結(jié)構(gòu)蜘蛛紙牌游戲總體結(jié)構(gòu)圖蜘蛛紙牌游戲軟件選擇難度系數(shù) 撲克牌算法 游戲選項(xiàng)序號(hào)控制系統(tǒng)功能描述1選擇難度系數(shù)通過(guò)選擇的難度系數(shù)確定牌的花色及牌的算法。2撲克牌算法撲克牌的排牌規(guī)則;3游戲選項(xiàng)控制游戲的戰(zhàn)況統(tǒng)計(jì)、可行性操作的顯示等;3模塊 1(Frame1)設(shè)計(jì)說(shuō)明3.1 模塊描述實(shí)現(xiàn)用戶界面的類,含有 1個(gè)類 3種方法,是本系統(tǒng)中
3、最簡(jiǎn)單的代碼3.2 功能實(shí)現(xiàn)用戶友好界面。3.3 性能負(fù)責(zé)接受用戶輸入,顯示系統(tǒng)輸出,其他模塊功能的協(xié)調(diào)調(diào)用。3.4 輸入項(xiàng) 選擇游戲的難度系數(shù)(簡(jiǎn)單、中等、高等)、顯示可行性操作、統(tǒng)計(jì)戰(zhàn)況、發(fā)牌、保存游戲等。3.5 輸出項(xiàng) 得出游戲的結(jié)果界面。3.6 接口import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JRadioButtonMenuItem;import javax.swing.ButtonGroup 。3.7 注釋設(shè)計(jì)ImageIcon
4、 icon = new ImageIcon("images/ 測(cè)試 .gif"); /gif,jpg 格式能用, bmp格式不能用3.8 限制條件 撲克牌的圖畫格式只能是 gif,jpg 。3.9 尚未解決的問(wèn)題圖畫的格式應(yīng)該讓所有的格式都適用。4模塊 2(SpiderMenuBar )設(shè)計(jì)說(shuō)明4.1 模塊描述實(shí)現(xiàn)游戲上所有的按鈕的類,含有 2個(gè)類 14種方法,是本系統(tǒng)中較難的代4.2 功能 實(shí)現(xiàn)游戲中所有游戲中的按鈕的功能。4.3 性能 游戲中所有功能的按鈕,方便用戶使用。4.4 輸入項(xiàng) 選擇游戲的難度系數(shù)(簡(jiǎn)單、中等、高等)、顯示可行性操作、統(tǒng)計(jì)戰(zhàn)況、發(fā)牌、保存游戲等。
5、4.5 輸出項(xiàng) 得出游戲的結(jié)果界面。4.6 接口import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JRadioButtonMenuItem;import javax.swing.ButtonGroup; 。4.7 注釋設(shè)計(jì)/* 為生成蜘蛛紙牌游戲的菜單欄,* 實(shí)現(xiàn)菜單欄中各個(gè)組件的事件監(jiān)聽*/ jNewGame.addSeparator(); / 將新分隔符追加到菜單的末尾5模塊 3(AboutDialog )設(shè)計(jì)說(shuō)明5.1 模塊描述實(shí)現(xiàn)游戲上
6、有關(guān)說(shuō)明的類, 含有 1個(gè)類 2種方法,是本系統(tǒng)中較簡(jiǎn)單的代碼5.2 功能實(shí)現(xiàn)游戲中游戲的有關(guān)說(shuō)明的功能。5.3 性能游戲的相關(guān)說(shuō)明,方便用戶使用。5.4 輸入項(xiàng)無(wú)。5.5 輸出項(xiàng)得出游戲的相關(guān)說(shuō)明。5.6 接口import javax.swing.*;import java.awt.* 。5.7 注釋設(shè)計(jì)/* 主要功能是為生成蜘蛛紙牌游戲的幫助欄6模塊 3(PKCard)設(shè)計(jì)說(shuō)明6.1 模塊描述定義紙牌的屬性,包括名稱、位置等相關(guān)信息。并通過(guò)相關(guān)方法實(shí)現(xiàn)紙牌的移動(dòng)等,含有 2 個(gè)類 21 種方法,是本系統(tǒng)中非常 難的代碼實(shí)現(xiàn)紙牌移動(dòng)的相關(guān)6.2 功能實(shí)現(xiàn)游戲中紙牌的定義, 包括名稱、 位置等
7、相關(guān)信息 。 方法。6.3 性能游戲的主要算法實(shí)現(xiàn)和關(guān)鍵代碼段。6.4 輸入項(xiàng)移動(dòng)鼠標(biāo)實(shí)現(xiàn)紙牌的移動(dòng)。6.5 輸出項(xiàng)得出移動(dòng)過(guò)后紙牌的擺放位置。6.6 接口import java.awt.*;import java.awt.event.*;import javax.swing.* 。6.7 注釋設(shè)計(jì)/* 該類的作用為定義紙牌的屬性,包括名稱、位置等相關(guān)信息* 并通過(guò)相關(guān)方法實(shí)現(xiàn)紙牌的移動(dòng)等。*/public class PKCard extends JLabel implements MouseListener,MouseMotionListener/ 紙牌的位置public void fla
8、shCard(PKCard card)/ 啟動(dòng) Flash 線程new Flash(card).start();/ 不停地獲得下一張牌,直到完成/ 點(diǎn)擊鼠標(biāo)public void mousePressed(MouseEvent mp)point = mp.getPoint();main.setNA();this.previousCard = main.getPreviousCard(this);/ 釋放鼠標(biāo)public void mouseReleased(MouseEvent mr)Point point = (JLabel)mr.getSource().getLocation();/ 判斷
9、可行列/ 放置紙牌public void setNextCardLocation(Point point)/ 判斷可用列public int whichColumnAvailable(Point point)/ 用鼠標(biāo)拖動(dòng)紙牌public void mouseDragged(MouseEvent argO)/ 移動(dòng) (x,y) 個(gè)位置public void moving(int x,int y)/ 將主件移動(dòng)到容器中指定的順序索引pane.setComponentZOrder(this,1);/ 在 Hashtable 中保存新的節(jié)點(diǎn)信息main.table.remove(p);/ 令紙牌顯示
10、正面public void turnFront()/ 令紙牌顯示背面public void turnRear()/ 將紙牌移動(dòng)到點(diǎn) pointpublic void moveto(Point point)/ 判斷牌是否移動(dòng)public void setCanMove(boolean can)/ 判斷 card 是否是正面public boolean isCardFront()/ 返回是否能夠移動(dòng)public boolean isCardCanMove()/ 獲得 card 的內(nèi)容值public int getCardValue()/ 獲得 card 的類型public int getCardT
11、ype()7模塊 3(Spider )設(shè)計(jì)說(shuō)明7.1 模塊描述蜘蛛紙牌的主類文件,其中包含 1個(gè)類 17種方法,是本系統(tǒng)中最難實(shí)現(xiàn)的代碼 段。7.2 功能實(shí)現(xiàn)游戲中生成蜘蛛紙牌游戲的框架,實(shí)現(xiàn)游戲中的方法。 包括:紙牌的隨機(jī)生成、位置的擺放等6.3 性能 游戲的主類文件,實(shí)現(xiàn)游戲中的框架,游戲的方法。6.4 輸入項(xiàng) 移動(dòng)鼠標(biāo)實(shí)現(xiàn)紙牌的移動(dòng)。6.5 輸出項(xiàng) 得出移動(dòng)過(guò)后紙牌的擺放位置。6.6 接口import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*。6.7 注釋設(shè)計(jì)/* 蜘蛛牌的主類文件
12、* 其主要功能是為生成蜘蛛紙牌游戲的框架,實(shí)現(xiàn)游戲中的方法。* 包括:紙牌的隨機(jī)生成、位置的擺放等。*/public static final int EASY = 1; / 表示難度等級(jí)try UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");/ 設(shè)置顯示皮膚 catch (UnsupportedLookAndFeelException ex) catch (IllegalAccessException ex) catch (InstantiationExcepti
13、on ex) catch (ClassNotFoundException ex) / 生成 SpiderMenuBar 對(duì)象,并放置在框架之上 / 釋放鼠標(biāo)public Spider()/ 開始游戲public void newGame()/ 返回牌的數(shù)量public int getC()/ 設(shè)置等級(jí)public void setGrade(int grade)/ 紙牌初始化public void initCards()/ 如果紙牌已被賦值,即將其從框架的面板中移去if(cards0 != null)for(int i=0;i<104;i+)pane.remove(cardsi);/為
14、card 賦值for(int i=1;i<=8;i+)for(int j=1;j<=13;j+)cards(i-1)*13+j-1 = newPKCard(i%n+1)+"-"+j,this);/ 隨機(jī)紙牌初始化this.randomCards();/ 紙牌隨機(jī)分配public void randomCards()/ 設(shè)置還原public void setNA()/ 設(shè)置紙牌的位置public void setCardsLocation()/ 初始化待展開的紙牌for(int i=0;i<6;i+)for(int j=0;j<10;j+)int n
15、= i*10+j;pane.add(cardsn);/ 將 card 轉(zhuǎn)向背面cardsn.turnRear();/將 car 的放在固定的位置上cardsn.moveto(new Point(x,y);/ 將 card 的位置及相關(guān)信息存入 table.put(new Point(x,y),cardsn);/ 判斷牌是否移動(dòng)public void setCanMove(boolean can)/ 顯示可移動(dòng)的操作public void showEnableOperator()/ 將組件 card 移動(dòng)到容器中指定的順序索引this.pane.setComponentZOrder(cardsc
16、+i,1);/ 獲得 card 上面的那張牌public PKCard getPreviousCard(PKCard card)/ 取得 card 下面的一張牌public PKCard getNextCard(PKCard card)/ 取得第 column 列最后一張牌的位置public Point getLastCardLocation(int column)/ 放置 groundLable 組件public void setGroundLabelZOrder()for(int i=0;i<10;i+)/將組件 groundLable 移動(dòng)到容器中指定的順序索引。順序 (105+i) 確定了繪制/組件的順序;具有最高順序的組件將第一個(gè)繪制,而具有最低順序的組建將最后一個(gè)/ 繪制。在組建重疊的地方, 具有較低順序的組建將 覆蓋具有較高順序的組件pane.setComponentZOrder(groundLabeli,105+i);/ 判斷紙牌的擺放是否完成public void haveFinish(int column)card.moveto(new Point(20+finish
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村土地流轉(zhuǎn)風(fēng)險(xiǎn)評(píng)估與保障協(xié)議
- 無(wú)人駕駛技術(shù)投資協(xié)議
- 汽車租賃長(zhǎng)租合同
- 公司股份改制方案設(shè)計(jì)報(bào)告
- 農(nóng)村綠化景觀改造施工協(xié)議
- 水務(wù)工程聯(lián)合運(yùn)營(yíng)合作協(xié)議
- 小英雄雨來(lái)成長(zhǎng)征文
- 國(guó)際貿(mào)易市場(chǎng)走勢(shì)預(yù)測(cè)分析表
- 迪士尼動(dòng)畫海洋奇緣觀后感
- 高考數(shù)學(xué)專題06四邊形的綜合問(wèn)題測(cè)試題
- 高中主題班會(huì) 悟哪吒精神做英雄少年-下學(xué)期開學(xué)第一課主題班會(huì)課件-高中主題班會(huì)課件
- 2025電力物資檢儲(chǔ)配一體化建設(shè)技術(shù)導(dǎo)則
- 新學(xué)期 開學(xué)第一課 主題班會(huì)課件
- 2025年協(xié)議離婚夫妻模板
- 福建省龍巖市2024-2025學(xué)年九年級(jí)上學(xué)期期末語(yǔ)文試題(解析版)
- 2025-2030年中國(guó)高爾夫產(chǎn)業(yè)規(guī)模分析及投資前景規(guī)劃研究報(bào)告
- 民法典合同編講座
- DBJ51-T 198-2022 四川省既有民用建筑結(jié)構(gòu)安全隱患排查技術(shù)標(biāo)準(zhǔn)
- 《干細(xì)胞及其應(yīng)用》課件
- 課題申報(bào)書:生成式人工智能提升中小學(xué)教師數(shù)字素養(yǎng)的路徑探究
- 臨床婦產(chǎn)題庫(kù)+參考答案
評(píng)論
0/150
提交評(píng)論