蜘蛛纸牌详细设计说明书_第1页
蜘蛛纸牌详细设计说明书_第2页
蜘蛛纸牌详细设计说明书_第3页
蜘蛛纸牌详细设计说明书_第4页
蜘蛛纸牌详细设计说明书_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、tDialog :游戏关于类;Framel:游戏界面设计;PKCard扑克牌的排列算法;Spider :游戏规则;SpiderMenuBar:游戏菜单栏1.4 参考资料 Java 实用教程清华大学出版社张跃平 耿祥义著 Java 实用教程2 . 系统的结构蜘蛛纸牌游戏总体结构图蜘蛛纸牌游戏软件选择难度系数扑克牌算法游戏选项Spider.classAboutDialog.classSpiderMenuBar.cla ss序号控制系统功能描述1选择难度系数通过选择的难度系数确定牌的花色及牌的算法。2扑克牌算法扑克牌的排牌规则;3游戏选项控制游戏的战况统计、可行性操作的显示等;Framel.clas

3、sPKCard.class3 .模块1 (Framel)设计说明3.1 模块描述实现用户界面的类,含有1个类3种方法,是本系统中最简单的代码3.2 功能实现用户友好界面。3.3 性能负责接受用户输入,显示系统输出,其他模块功能的协调调用。3.4 输入项选择游戏的难度系数(简单、中等、高等)、显示可行性操作、统计战况、发牌、保存游戏等。3.5 输出项得出游戏的结果界面。3.6 接口import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JRadioBu

4、ttonMenuItem;import javax.swing.ButtonGroup 。3.7 注释设计ImageIcon icon = new ImageIcon("images/ 测试 .gif"); /gif,jpg 格式能用,bm陷式不能用3.8 限制条件扑克牌的图画格式只能是gif,jpg 。3.9 尚未解决的问题图画的格式应该让所有的格式都适用。4 .模块2 (SpiderMenuBar)设计说明4.1 模块描述实现游戏上所有的按钮的类,含有2 个类 14 种方法,是本系统中较难的代码5.1 模块描述实现游戏中所有游戏中的按钮的功能。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.addSepara

6、tor(); / 将新分隔符追加到菜单的末尾5模块3( AboutDialog )设计说明并通过相关方法实现纸牌的移动等,含有2 个类 21 种方法,是本系统中非常难的代码实现游戏上有关说明的类,含有 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 模块描述定义纸牌

7、的属性,包括名称、位置等相关信息。实现游戏中纸牌的定义,包括名称、位置等相关信息。 实现纸牌移动的相关方法。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 implementsMouseListe

8、ner,MouseMotionListener/ 纸牌的位置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 = (J

9、Label)mr.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 中保存新的节点信息m

10、ain.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

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

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

13、tantiationException 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;i<104;i+)pane.remove

14、(cardsi);/为 card 赋值for(int 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;i<6;i+)for(int j=0;j<

15、10;j+)int n = i*10+j;pane.add(cardsn);/将 card 转向背面cardsn.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.setComponentZOrde

16、r(cardsc+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 移动到容器中指定的顺序索引。顺序(105+i) 确定了绘制/组件的顺序;具有最高顺序的组件将第一个绘制,而具有最低顺序的组建将最后一个/绘制。 在组建重叠的地方,具有较低顺序的组建将覆盖具有较高顺序的组件pane.setComponentZOrder(groundLabeli,105+i);/ 判断纸牌的摆放是否完成public void haveFinish(int column)card.moveto(new Point(20+fin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论