收藏 分享(赏)

蜘蛛纸牌详细设计说明书.doc

上传人:scg750829 文档编号:8333184 上传时间:2019-06-20 格式:DOC 页数:14 大小:76.50KB
下载 相关 举报
蜘蛛纸牌详细设计说明书.doc_第1页
第1页 / 共14页
蜘蛛纸牌详细设计说明书.doc_第2页
第2页 / 共14页
蜘蛛纸牌详细设计说明书.doc_第3页
第3页 / 共14页
蜘蛛纸牌详细设计说明书.doc_第4页
第4页 / 共14页
蜘蛛纸牌详细设计说明书.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、 蜘蛛纸牌概要设计说明书南昌航空大学软件学院2011 年 10 月1.引言1.1 编写目的1.1 编写目的本详细设计说明书是针对蜘蛛纸牌游戏的课程作业而编写。目的是对该软件进行详细设计,在概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试作准备。本详细设计说明书的预期读者为本项目小组的成员以及对该系统感兴趣,在以后想对系统进行扩展和维护的人员。1.2 背景a.待开发的系统的名称:蜘蛛纸牌游戏软件b.本项目的任务提出者: 周璇、罗书惟、罗剑、王天宇开发者:周璇、罗书惟、罗剑、王天宇用户:所有对该软件感兴趣,并且对该游戏熟悉的用户1.3 定义AboutDialog

2、:游戏关于类;Frame1:游戏界面设计;PKCard:扑克牌的排列算法;Spider:游戏规则;SpiderMenuBar:游戏菜单栏1.4 参考资料Java 实用教程 清华大学出版社 张跃平 耿祥义著Java 实用教程 2. 系统的结构选择难度系数 扑克牌算法蜘蛛纸牌游戏总体结构图蜘蛛纸牌游戏软件游戏选项序号 控制系统 功能描述1 选择难度系数 通过选择的难度系数确定牌的花色及牌的算法。2 扑克牌算法 扑克牌的排牌规则;3 游戏选项 控制游戏的战况统计、可行性操作的显示等; 3模块 1(Frame1)设计说明3.1 模块描述实现用户界面的类,含有 1 个类 3 种方法,是本系统中最简单的代

3、码3.2 功能实现用户友好界面。3.3 性能Frame1.classAboutDialog.classPKCard.class Spider.classSpiderMenuBar.class负责接受用户输入,显示系统输出,其他模块功能的协调调用。3.4 输入项选择游戏的难度系数(简单、中等、高等)、显示可行性操作、统计战况、发牌、保存游戏等。3.5 输出项得出游戏的结果界面。3.6 接口import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JRad

4、ioButtonMenuItem;import javax.swing.ButtonGroup。3.7 注释设计ImageIcon icon = new ImageIcon(“images/测试.gif“); /gif,jpg 格式能用,bmp 格式不能用3.8 限制条件扑克牌的图画格式只能是 gif,jpg。3.9 尚未解决的问题图画的格式应该让所有的格式都适用。4模块 2(SpiderMenuBar)设计说明4.1 模块描述实现游戏上所有的按钮的类,含有 2 个类 14 种方法,是本系统中较难的代码4.2 功能实现游戏中所有游戏中的按钮的功能。4.3 性能游戏中所有功能的按钮,方便用户使用

5、。4.4 输入项选择游戏的难度系数(简单、中等、高等)、显示可行性操作、统计战况、发牌、保存游戏等。4.5 输出项得出游戏的结果界面。4.6 接口import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JRadioButtonMenuItem;import javax.swing.ButtonGroup;。4.7 注释设计/*为生成蜘蛛纸牌游戏的菜单栏,*实现菜单栏中各个组件的事件监听*/jNewGame.addSeparator(); /将新分隔符

6、追加到菜单的末尾5模块 3(AboutDialog)设计说明5.1 模块描述实现游戏上有关说明的类,含有 1 个类 2 种方法,是本系统中较简单的代码5.2 功能实现游戏中游戏的有关说明的功能。5.3 性能游戏的相关说明,方便用户使用。5.4 输入项无。5.5 输出项得出游戏的相关说明。5.6 接口import javax.swing.*;import java.awt.*。5.7 注释设计/*主要功能是为生成蜘蛛纸牌游戏的帮助栏*/6模块 3(PKCard)设计说明6.1 模块描述定义纸牌的属性,包括名称、位置等相关信息。并通过相关方法实现纸牌的移动等,含有 2 个类 21 种方法,是本系统

7、中非常难的代码6.2 功能实现游戏中纸牌的定义,包括名称、位置等相关信息。实现纸牌移动的相关方法。6.3 性能游戏的主要算法实现和关键代码段。6.4 输入项移动鼠标实现纸牌的移动。6.5 输出项得出移动过后纸牌的摆放位置。6.6 接口import java.awt.*;import java.awt.event.*;import javax.swing.*。6.7 注释设计/*该类的作用为定义纸牌的属性,包括名称、位置等相关信息。*并通过相关方法实现纸牌的移动等。*/public class PKCard extends JLabel implements MouseListener,Mous

8、eMotionListener/纸牌的位置public void flashCard(PKCard card)/启动 Flash 线程new Flash(card).start();/不停地获得下一张牌,直到完成/点击鼠标public void mousePressed(MouseEvent mp)point = mp.getPoint();main.setNA();this.previousCard = main.getPreviousCard(this);/释放鼠标public void mouseReleased(MouseEvent mr)Point point = (JLabel)m

9、r.getSource().getLocation();/判断可行列/放置纸牌public void setNextCardLocation(Point point)/判断可用列public int whichColumnAvailable(Point point)/用鼠标拖动纸牌public void mouseDragged(MouseEvent argO)/移动(x,y)个位置public void moving(int x,int y)/将主件移动到容器中指定的顺序索引pane.setComponentZOrder(this,1);/在 Hashtable 中保存新的节点信息main.

10、table.remove(p);/令纸牌显示正面public void turnFront()/令纸牌显示背面public void turnRear()/将纸牌移动到点 pointpublic void moveto(Point point)/判断牌是否移动public void setCanMove(boolean can)/判断 card 是否是正面public boolean isCardFront()/返回是否能够移动public boolean isCardCanMove()/获得 card 的内容值public int getCardValue()/获得 card 的类型publ

11、ic int getCardType()7模块 3(Spider)设计说明7.1 模块描述蜘蛛纸牌的主类文件,其中包含 1 个类 17 种方法,是本系统中最难实现的代码段。7.2 功能实现游戏中生成蜘蛛纸牌游戏的框架,实现游戏中的方法。包括:纸牌的随机生成、位置的摆放等6.3 性能游戏的主类文件,实现游戏中的框架,游戏的方法。6.4 输入项移动鼠标实现纸牌的移动。6.5 输出项得出移动过后纸牌的摆放位置。6.6 接口import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*。6.7 注释设计

12、/*蜘蛛牌的主类文件*其主要功能是为生成蜘蛛纸牌游戏的框架,实现游戏中的方法。*包括:纸牌的随机生成、位置的摆放等。 */public static final int EASY = 1; /表示难度等级try UIManager.setLookAndFeel(“com.sun.java.swing.plaf.windows.WindowsLookAndFeel“);/设置显示皮肤 catch (UnsupportedLookAndFeelException ex) catch (IllegalAccessException ex) catch (InstantiationException

13、ex) catch (ClassNotFoundException ex) /生成 SpiderMenuBar 对象,并放置在框架之上 /释放鼠标public Spider()/开始游戏public void newGame()/返回牌的数量public int getC()/设置等级public void setGrade(int grade)/纸牌初始化public void initCards()/如果纸牌已被赋值,即将其从框架的面板中移去if(cards0 != null)for(int i=0;i104;i+)pane.remove(cardsi);/为 card 赋值for(int

14、 i=1;i=8;i+)for(int j=1;j=13;j+)cards(i-1)*13+j-1 = new PKCard(i%n+1)+“-“+j,this);/随机纸牌初始化this.randomCards();/纸牌随机分配public void randomCards()/设置还原public void setNA()/设置纸牌的位置public void setCardsLocation()/初始化待展开的纸牌for(int i=0;i6;i+)for(int j=0;j10;j+)int n = i*10+j;pane.add(cardsn);/将 card 转向背面cardsn

15、.turnRear();/将 car 的放在固定的位置上cardsn.moveto(new Point(x,y);/将 card 的位置及相关信息存入table.put(new Point(x,y),cardsn);/判断牌是否移动public void setCanMove(boolean can)/显示可移动的操作public void showEnableOperator()/将组件 card 移动到容器中指定的顺序索引this.pane.setComponentZOrder(cardsc+i,1); /获得 card 上面的那张牌public PKCard getPreviousCar

16、d(PKCard card)/取得 card 下面的一张牌public PKCard getNextCard(PKCard card)/取得第 column 列最后一张牌的位置public Point getLastCardLocation(int column)/放置 groundLable 组件public void setGroundLabelZOrder()for(int i=0;i10;i+)/将组件 groundLable 移动到容器中指定的顺序索引。顺序(105+i)确定了绘制/组件的顺序;具有最高顺序的组件将第一个绘制,而具有最低顺序的组建将最后一个/绘制。在组建重叠的地方,具

17、有较低顺序的组建将覆盖具有较高顺序的组件pane.setComponentZOrder(groundLabeli,105+i);/判断纸牌的摆放是否完成public void haveFinish(int column)card.moveto(new Point(20+finish*10,580);/将组件移动到容器中指定的顺序索引pane.setComponentZOrder(card,1);/将纸牌新的相关信息存入 Hashtablethis.table.put(card.getLocation(),card);/如果 8 副牌全部组合成功,则显示成功的对话框if(finish = 8)JOptionPane.showMessageDialog(this,“恭喜你,顺利通过!“,“成功“,JOptionPane.PLAIN_MESSAGE);。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报