蜘蛛纸牌概要设计说明书南昌航空大学软件学院 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.class ] PKCard.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;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(cards[0] != null){ 。