蜘蛛纸牌详细设计说明书.docx
- 文档编号:4148381
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:12
- 大小:17.92KB
蜘蛛纸牌详细设计说明书.docx
《蜘蛛纸牌详细设计说明书.docx》由会员分享,可在线阅读,更多相关《蜘蛛纸牌详细设计说明书.docx(12页珍藏版)》请在冰豆网上搜索。
蜘蛛纸牌详细设计说明书
蜘蛛纸牌
大纲设计说明书
南昌航空大学软件学院
2011年10月
前言
1.1编写目的
1.1编写目的
本详细设计说明书是针对蜘蛛纸牌游戏的课程作业而编写。
目的是对该软件进行详细设
计,在大纲设计的基础进步一步明确系统结构,详细地介绍系统的各个模块,为进行后边的实现和测试作准备。
本详细设计说明书的预期读者为本项目小组的成员以及对该系统感兴
趣,在此后想对系统进行扩展和保护的人员。
1.2背景
待开发的系统的名称:
蜘蛛纸牌游戏软件
本项目的任务提出者:
周璇、罗书惟、罗剑、王天宇开发者:
周璇、罗书惟、罗剑、王天宇
用户:
所有对该软件感兴趣,而且对该游戏熟习的用户]
1.3定义
AboutDialog:
游戏关于类;
Frame1:
游戏界面设计;
PKCard:
扑克牌的摆列算法;
Spider:
游戏规则;
SpiderMenuBar:
游戏菜单栏
1.4参照资料
Java适用教程》清华大学第一版社张跃平耿祥义著
Java适用教程》
1.系统的结构
蜘蛛纸牌游戏整体结构图
蜘蛛纸牌游戏软件
选择难度系数扑克牌算法游戏选项
序号
控制系统
功能描述
1
选择难度系数
经过选择的难度系数确立牌的花色及牌的算法。
2
扑克牌算法
扑克牌的排牌规则;
3
游戏选项
控制游戏的战况统计、可行性操作的显示等;
Frame1.class
]
SpiderMenuBar.cla
ss
AboutDialog.classSpider.class
PKCard.class
3.模块1(Frame1)设计说明
3.1模块描述
实现用户界面的类,含有1个类3种方法,是本系统中最简单的代码
3.2功能
实现用户友善界面。
3.3性能
负责接受用户输入,显示系统输出,其余模块功能的协调调用。
3.4输入项
选择游戏的难度系数(简单、中等、高等)、显示可行性操作、统计战况、发牌、保留游戏等。
3.5输出项
得出游戏的结果界面。
3.6接口
importjavax.swing.JMenuBar;
importjavax.swing.JMenu;
importjavax.swing.JMenuItem;
importjavax.swing.JRadioButtonMenuItem;
importjavax.swing.ButtonGroup。
3.7说明设计
ImageIconicon=newImageIcon("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接口
importjavax.swing.JMenuBar;
importjavax.swing.JMenu;
importjavax.swing.JMenuItem;
importjavax.swing.JRadioButtonMenuItem;
importjavax.swing.ButtonGroup;。
4.7说明设计
/*
为生成蜘蛛纸牌游戏的菜单栏,
实现菜单栏中各个组件的事件监听
*
**/
jNewGame.addSeparator();//将新分开符追加到菜单的尾端
5.模块3(AboutDialog)设计说明
5.1模块描述
实现游戏上相关说明的类,含有1个类2种方法,是本系统中较简单的代码
5.2功能
实现游戏中游戏的相关说明的功能。
5.3性能
游戏的相关说明,方便用户使用。
5.4输入项
无。
5.5输出项
得出游戏的相关说明。
5.6接口
importjavax.swing.*;
importjava.awt.*。
5.7说明设计
/*
主要功能是为生成蜘蛛纸牌游戏的帮助栏
*
**/
6.模块3(PKCard)设计说明
6.1模块描述
定义纸牌的属性,包含名称、地点等相关信息。
并经过相关方法实现纸牌的挪动等,含有
2个类
21种方法,是本系统中特别
难的代码
6.2功能
实现游戏中纸牌的定义,包含名称、地点等相关信息。
实现纸牌挪动的相关方法。
6.3性能
游戏的主要算法实现和重点代码段。
6.4输入项
挪动鼠标实现纸牌的挪动。
6.5输出项
得出挪动过后纸牌的摆放地点。
6.6接口
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*。
6.7说明设计
/*
该类的作用为定义纸牌的属性,包含名称、地点等相关信息。
并经过相关方法实现纸牌的挪动等。
*/
publicclassPKCardextendsJLabelimplements
MouseListener,MouseMotionListener{
纸牌的地点
publicvoidflashCard(PKCardcard){
//启动Flash线程
newFlash(card).start();
//不断地获得下一张牌,直到完成
点击鼠标
publicvoidmousePressed(MouseEventmp){
point=mp.getPoint();
main.setNA();
this.previousCard=main.getPreviousCard(this);
}
开释鼠标
publicvoidmouseReleased(MouseEventmr){
Pointpoint=((JLabel)mr.getSource()).getLocation();
//判断可行列
搁置纸牌
publicvoidsetNextCardLocation(Pointpoint)
判断可用列
publicintwhichColumnAvailable(Pointpoint)
用鼠标拖动纸牌
publicvoidmouseDragged(MouseEventargO)
挪动(x,y)个地点
publicvoidmoving(intx,inty)
//将主件挪动到容器中指定的序次索引
pane.setComponentZOrder(this,1);
在Hashtable中保留新的节点信息
main.table.remove(p);
令纸牌显示正面
publicvoidturnFront()
令纸牌显示反面
publicvoidturnRear()
将纸牌挪动到点point
publicvoidmoveto(Pointpoint)
判断牌能否挪动
publicvoidsetCanMove(booleancan)
判断card是不是正面
publicbooleanisCardFront()
返回能否可以挪动
publicbooleanisCardCanMove()
获得card的内容值
publicintgetCardValue()
获得card的种类publicintgetCardType()
7.模块3(Spider)设计说明
7.1模块描述
蜘蛛纸牌的主类文件,此中包含1个类17种方法,是本系统中最难实现的代码段。
7.2功能
实现游戏中生成蜘蛛纸牌游戏的框架,实现游戏中的方法。
包含:
纸牌的随机生成、地点的摆放等
6.3性能
游戏的主类文件,实现游戏中的框架,游戏的方法。
6.4输入项
挪动鼠标实现纸牌的挪动。
6.5输出项
得出挪动过后纸牌的摆放地点。
6.6接口
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.util.*。
6.7说明设计
/*
蜘蛛牌的主类文件
其主要功能是为生成蜘蛛纸牌游戏的框架,实现游戏中的方法。
包含:
纸牌的随机生成、地点的摆放等。
*/
publicstaticfinalintEASY=1;//表示难度等级
try{
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
//设置显示皮肤
}catch(UnsupportedLookAndFeelExceptionex){}catch(IllegalAccessExceptionex){
}catch(InstantiationExceptionex){
}catch(ClassNotFoundExceptionex){
}
//生成SpiderMenuBar对象,并搁置在框架之上//
开释鼠标
publicSpider()
开始游戏
publicvoidnewGame()
返回牌的数目
publicintgetC()
设置等级
publicvoidsetGrade(intgrade)
纸牌初始化
publicvoidinitCards(){
//假如纸牌已被赋值,马上其从框架的面板中移去
if(cards[0]!
=null){
for(inti=0;i<104;i++){
pane.remove(cards[i]);
}
}
为card赋值
for(inti=1;i<=8;i++){
for(intj=1;j<=13;j++){
cards[(i-1)*13+j-1]=new
PKCard((i%n+1)+"-"+j,this);
}
}
//随机纸牌初始化
this.randomCards();
纸牌随机分配
publicvoidrandomCards()
设置还原
publicvoidsetNA()
设置纸牌的地点
publicvoidsetCardsLocation()
初始化待张开的纸牌for(inti=0;i<6;i++){
for(intj=0;j<10;j++){intn=i*10+j;
pane.add(cards[n]);
//将card转向反面
cards[n].turnRear();
//将car的放在固定的地点上
cards[n].moveto(newPoint(x,y));
//将card的地点及相关信息存入
table.put(newPoint(x,y),cards[n]);
}//判断牌能否挪动
publicvoidsetCanMove(booleancan)
显示可挪动的操作
publicvoidshowEnableOperator()
将组件card挪动到容器中指定的序次索引
this.pane.setComponentZOrder(cards[c+i],1);
获得card上边的那张牌
publicPKCardgetPreviousCard(PKCardcard)
获得card下边的一张牌
publicPKCardgetNextCard(PKCardcard)
获得第column列最后一张牌的地点
publicPointgetLastCardLocation(intcolumn)
//搁置groundLable组件
publicvoidsetGroundLabelZOrder(){
for(inti=0;i<10;i++){
引。
序次
//
(105+i)
确立了绘制
将组件
groundLable
挪动到容器中指定的序次索
//
组件的序次;拥有最高序次的组件将第一个绘制,
而拥有最低序次的组建将最后一个
//绘制。
在组建重叠的地方,拥有较低序次的组建将覆盖拥有较高序次的组件
pane.setComponentZOrder(groundLabel[i],105+i);
判断纸牌的摆放能否完成
publicvoidhaveFinish(intcolumn)
card.moveto(newPoint(20+finish*10,580));
//将组件挪动到容器中指定的序次索引
pane.setComponentZOrder(card,1);
//将纸牌新的相关信息存入Hashtable
this.table.put(card.getLocation(),card);
假如8副牌所有组合成功,则显示成功的对话框if(finish==8){
JOptionPane.showMessageDialog(this,"恭贺你,顺利经过!
","成功",JOptionPane.PLAIN_MESSAGE);
}。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蜘蛛 纸牌 详细 设计 说明书