蜘蛛紙牌詳細(xì)設(shè)計(jì)說明書_第1頁
蜘蛛紙牌詳細(xì)設(shè)計(jì)說明書_第2頁
蜘蛛紙牌詳細(xì)設(shè)計(jì)說明書_第3頁
蜘蛛紙牌詳細(xì)設(shè)計(jì)說明書_第4頁
蜘蛛紙牌詳細(xì)設(shè)計(jì)說明書_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余9頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、南昌航空大學(xué)蜘蛛紙牌概要設(shè)計(jì)說明書南昌航空大學(xué)軟件學(xué)院2011年10月1 .引言1.1 編寫目的* 編寫目的本詳細(xì)設(shè)計(jì)說明書是針對(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ì)說明書的預(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 定義AboutDialog

2、:游戲關(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ù)通過選擇的難度系數(shù)確定牌的花色及牌的算法。2撲克牌算法撲克牌的排牌規(guī)則;3游戲選項(xiàng)控制游戲的戰(zhàn)況統(tǒng)計(jì)、可行性操作的顯示等;Framel.classSpider.classAboutDialog.classSpiderMenuBar.classPKCard.class3 .

3、模塊1(Frame1)設(shè)計(jì)說明3.1 模塊描述實(shí)現(xiàn)用戶界面的類,含有1個(gè)類3種方法,是本系統(tǒng)中最簡單的代碼3.2 功能實(shí)現(xiàn)用戶友好界面。3.3 性能負(fù)責(zé)接受用戶輸入,顯示系統(tǒng)輸出,其他模塊功能的協(xié)調(diào)調(diào)用。3.4 輸入項(xiàng)選擇游戲的難度系數(shù)(簡單、中等、高等)、顯示可行性操作、統(tǒng)計(jì)戰(zhàn)況、發(fā)牌、保存游戲等。3.5 輸出項(xiàng)得出游戲的結(jié)果界面。3.6 接口importjavax.swing.JMenuBar;importjavax.swing.JMenu;importjavax.swing.JMenuItem;importjavax.swing.JRadioButtonMenuItem;importja

4、vax.swing.ButtonGroup。3.7 注釋設(shè)計(jì)ImageIconicon=newImageIcon("images/測(cè)試.gif");/gif,jpg格式能用,bm陷式不能用3.8 限制條件撲克牌的圖畫格式只能是gif,jpg。3.9 尚未解決的問題圖畫的格式應(yīng)該讓所有的格式都適用。4 .模塊2(SpiderMenuBar)設(shè)計(jì)說明4.1 模塊描述實(shí)現(xiàn)游戲上所有的按鈕的類,含有2個(gè)類14種方法,是本系統(tǒng)中較難的代實(shí)現(xiàn)游戲中所有游戲中的按鈕的功能。性能游戲中所有功能的按鈕,方便用戶使用。輸入項(xiàng)選擇游戲的難度系數(shù)(簡單、中等、高等)、顯示可行性操作、統(tǒng)計(jì)戰(zhàn)況、發(fā)牌

5、、保存游戲等。輸出項(xiàng)得出游戲的結(jié)果界面。接口importjavax.swing.JMenuBar;importjavax.swing.JMenu;importjavax.swing.JMenuItem;importjavax.swing.JRadioButtonMenuItem;importjavax.swing.ButtonGroup;。注釋設(shè)計(jì)/*為生成蜘蛛紙牌游戲的菜單欄,*實(shí)現(xiàn)菜單欄中各個(gè)組件的事件監(jiān)聽*/jNewGame.addSeparator();/將新分隔符追加到菜單的末尾.模塊3(AboutDialog)設(shè)計(jì)說明模塊描述實(shí)現(xiàn)游戲上有關(guān)說明的類,含有1個(gè)類2種方法,是本系統(tǒng)中較

6、簡單的代碼功能實(shí)現(xiàn)游戲中游戲的有關(guān)說明的功能。性能游戲的相關(guān)說明,方便用戶使用。輸入項(xiàng)無。輸出項(xiàng)得出游戲的相關(guān)說明。接口importjavax.swing.*;importjava.awt.*。注釋設(shè)計(jì)/*主要功能是為生成蜘蛛紙牌游戲的幫助欄*/.模塊3(PKCard)設(shè)計(jì)說明模塊描述定義紙牌的屬性,包括名稱、位置等相關(guān)信息。并通過相關(guān)方法實(shí)現(xiàn)紙牌的移動(dòng)等,含有2個(gè)類21種方法,是本系統(tǒng)中非常難的代碼實(shí)現(xiàn)游戲中紙牌的定義,包括名稱、位置等相關(guān)信息。實(shí)現(xiàn)紙牌移動(dòng)的相關(guān)方法。性能游戲的主要算法實(shí)現(xiàn)和關(guān)鍵代碼段。輸入項(xiàng)移動(dòng)鼠標(biāo)實(shí)現(xiàn)紙牌的移動(dòng)。輸出項(xiàng)得出移動(dòng)過后紙牌的擺放位置。接口importjava

7、.awt.*;importjava.awt.event.*;importjavax.swing.*。注釋設(shè)計(jì)/*該類的作用為定義紙牌的屬性,包括名稱、位置等相關(guān)信息。并通過相關(guān)方法實(shí)現(xiàn)紙牌的移動(dòng)等。/publicclassPKCardextendsJLabelimplementsMouseListener,MouseMotionListener/紙牌的位置publicvoidflashCard(PKCardcard)/啟動(dòng)Flash線程newFlash(card).start();/不停地獲得下一張牌,直到完成/點(diǎn)擊鼠標(biāo)publicvoidmousePressed(MouseEventmp)p

8、oint=mp.getPoint();main.setNA();this.previousCard=main.getPreviousCard(this);/釋放鼠標(biāo)publicvoidmouseReleased(MouseEventmr)Pointpoint=(JLabel)mr.getSource().getLocation();/判斷可行列/放置紙牌publicvoidsetNextCardLocation(Pointpoint)/判斷可用列publicintwhichColumnAvailable(Pointpoint)/用鼠標(biāo)拖動(dòng)紙牌publicvoidmouseDragged(Mou

9、seEventargO)/移動(dòng)(x,y)個(gè)位置publicvoidmoving(intx,inty)/將主件移動(dòng)到容器中指定的順序索引pane.setComponentZOrder(this,1);/在Hashtable中保存新的節(jié)點(diǎn)信息main.table.remove(p);/令紙牌顯示正面publicvoidturnFront()/令紙牌顯示背面publicvoidturnRear()/將紙牌移動(dòng)到點(diǎn)pointpublicvoidmoveto(Pointpoint)/判斷牌是否移動(dòng)publicvoidsetCanMove(booleancan)/判斷card是否是正面publicbool

10、eanisCardFront()/返回是否能夠移動(dòng)publicbooleanisCardCanMove()/獲得card的內(nèi)容值publicintgetCardValue()/獲得card的類型publicintgetCardType().模塊3(Spider)設(shè)計(jì)說明模塊描述蜘蛛紙牌的主類文件,其中包含1個(gè)類17種方法,是本系統(tǒng)中最難實(shí)現(xiàn)的代碼段。實(shí)現(xiàn)游戲中生成蜘蛛紙牌游戲的框架,實(shí)現(xiàn)游戲中的方法。包括:紙牌的隨機(jī)生成、位置的擺放等性能游戲的主類文件,實(shí)現(xiàn)游戲中的框架,游戲的方法。輸入項(xiàng)移動(dòng)鼠標(biāo)實(shí)現(xiàn)紙牌的移動(dòng)。輸出項(xiàng)得出移動(dòng)過后紙牌的擺放位置。接口importjava.awt.*;impor

11、tjava.awt.event.*;importjavax.swing.*;importjava.util.*。注釋設(shè)計(jì)/*蜘蛛牌的主類文件其主要功能是為生成蜘蛛紙牌游戲的框架,實(shí)現(xiàn)游戲中的方法。包括:紙牌的隨機(jī)生成、位置的擺放等。/publicstaticfinalintEASY=1;/表示難度等級(jí)try(UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");/設(shè)置顯示皮膚catch(UnsupportedLookAndFeelExceptionex)catch(Ill

12、egalAccessExceptionex)catch(InstantiationExceptionex)catch(ClassNotFoundExceptionex)/生成SpiderMenuBar對(duì)象,并放置在框架之上釋放鼠標(biāo)publicSpider()/開始游戲publicvoidnewGame()/返回牌的數(shù)量publicintgetC()/設(shè)置等級(jí)publicvoidsetGrade(intgrade)/紙牌初始化publicvoidinitCards()/如果紙牌已被賦值,即將其從框架的面板中移去if(cards0!=null)for(inti=0;i<104;i+)pane

13、.remove(cardsi);/為card賦值for(inti=1;i<=8;i+)for(intj=1;j<=13;j+)cards(i-1)*13+j-1=newPKCard(i%n+1)+"-"+j,this);)/隨機(jī)紙牌初始化this.randomCards();/紙牌隨機(jī)分配publicvoidrandomCards()/設(shè)置還原publicvoidsetNA()/設(shè)置紙牌的位置publicvoidsetCardsLocation()/初始化待展開的紙牌for(inti=0;i<6;i+)for(intj=0;j<10;j+)intn=

14、i*10+j;pane.add(cardsn);/將card轉(zhuǎn)向背面cardsn.turnRear();cardsn.moveto(newPoint(x,y);/將card的位置及相關(guān)信息存入table.put(newPoint(x,y),cardsn);/判斷牌是否移動(dòng)publicvoidsetCanMove(booleancan)/顯示可移動(dòng)的操作publicvoidshowEnableOperator()/將組件card移動(dòng)到容器中指定的順序索引this.pane.setComponentZOrder(cardsc+i,1);/獲得card上面的那張牌publicPKCardgetPre

15、viousCard(PKCardcard)/取彳導(dǎo)card下面的一張牌publicPKCardgetNextCard(PKCardcard)/取得第column列最后一張牌的位置publicPointgetLastCardLocation(intcolumn)/放置groundLable組件publicvoidsetGroundLabelZOrder()for(inti=0;i<10;i+)/將組件groundLable移動(dòng)到容器中指定的順序索引。順序(105+i)確定了繪制/組件的順序;具有最高順序的組件將第一個(gè)繪制,而具有最低順序的組建將最后一個(gè)/繪制。在組建重疊的地方,具有較低順序的組建將覆蓋具有較高順序的組件pane.setComponentZOrder(groundLabeli,105+i);/判斷紙牌的擺放是否完成publicvoidhaveFinish(intcolumn)card.moveto(newPoint(20+finish*10,580)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論