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

下载本文档

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

文档简介

蜘蛛纸牌概要设计说明书南昌航空大学软件学院 2011年10月1.引言1.1编写目的1.1编写目的 本详细设计说明书是针对蜘蛛纸牌游戏的课程作业而编写。目的是对该软件进行详细设计,在概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试作准备。本详细设计说明书的预期读者为本项目小组的成员以及对该系统感兴趣,在以后想对系统进行扩展和维护的人员。1.2背景a. 待开发的系统的名称:蜘蛛纸牌游戏软件b. 本项目的任务提出者: 周璇、罗书惟、罗剑、王天宇开发者:周璇、罗书惟、罗剑、王天宇用户:所有对该软件感兴趣,并且对该游戏熟悉的用户1.3定义AboutDialog:游戏关于类;Frame1:游戏界面设计;PKCard:扑克牌的排列算法;Spider:游戏规则;SpiderMenuBar:游戏菜单栏1.4参考资料Java实用教程 清华大学出版社 张跃平 耿祥义著Java实用教程 2. 系统的结构选择难度系数扑克牌算法蜘蛛纸牌游戏总体结构图蜘蛛纸牌游戏软件游戏选项序号控制系统功能描述1选择难度系数通过选择的难度系数确定牌的花色及牌的算法。2扑克牌算法扑克牌的排牌规则;3游戏选项控制游戏的战况统计、可行性操作的显示等; Frame1.class SpiderMenuBar.classPKCard.classSpider.classAboutDialog.class3模块1(Frame1)设计说明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.JRadioButtonMenuItem;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性能游戏中所有功能的按钮,方便用户使用。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(); /将新分隔符追加到菜单的末尾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种方法,是本系统中非常难的代码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,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 = (JLabel)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中保存新的节点信息 main.table.remove(p);/令纸牌显示正面 public void turnFront()/令纸牌显示背面 public void turnRear()/将纸牌移动到点point public void moveto(Point point)/判断牌是否移动 public void setCanMove(boolean can) /判断card是否是正面 public boolean isCardFront()/返回是否能够移动 public boolean isCardCanMove() /获得card的内容值 public int getCardValue() /获得card的类型 public 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注释设计/* *蜘蛛牌的主类文件 *其主要功能是为生成蜘蛛纸牌游戏的框架,实现游戏中的方法。 *包括:纸牌的随机生成、位置的摆放等。 */public static final int EASY = 1; /表示难度等级 try UIManager.setLookAndFeel( com.sun.java.swing.plaf.windows.WindowsLookAndFeel); /设置显示皮肤 catch (UnsupportedLookAndFeelException ex) catch (IllegalAccessException ex) catch (InstantiationException 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 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.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 getPreviousCard(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)确定了绘制 /组件的顺序;具有最高顺序的组件将第一个绘制,而具有最低顺序的组建将最后一个 /绘制。在组建重叠的地方,具有较低顺序的组建将覆盖具有较高顺序的组件 pane.setComponentZOrder(groundLabeli,105+i);/判断纸牌的摆放是否完成 public void haveFinish(int column)card.moveto

温馨提示

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

评论

0/150

提交评论