蜘蛛紙牌詳細(xì)設(shè)計(jì)說(shuō)明書_第1頁(yè)
蜘蛛紙牌詳細(xì)設(shè)計(jì)說(shuō)明書_第2頁(yè)
蜘蛛紙牌詳細(xì)設(shè)計(jì)說(shuō)明書_第3頁(yè)
蜘蛛紙牌詳細(xì)設(shè)計(jì)說(shuō)明書_第4頁(yè)
蜘蛛紙牌詳細(xì)設(shè)計(jì)說(shuō)明書_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論