java蜘蛛纸牌设计报告
- 格式:docx
- 大小:781.48 KB
- 文档页数:26
蜘蛛纸牌概要设计说明书南昌航空大学软件学院2011年10月1.引言1.1编写目的1.1编写目的本详细设计说明书是针对蜘蛛纸牌游戏的课程作业而编写。
目的是对该软件进行详细设计,在概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试作准备。
本详细设计说明书的预期读者为本项目小组的成员以及对该系统感兴趣,在以后想对系统进行扩展和维护的人员。
1.2背景a.待开发的系统的名称:蜘蛛纸牌游戏软件b.本项目的任务提出者: 周璇、罗书惟、罗剑、王天宇开发者:周璇、罗书惟、罗剑、王天宇用户:所有对该软件感兴趣,并且对该游戏熟悉的用户]1.3定义AboutDialog:游戏关于类;Frame1:游戏界面设计;PKCard:扑克牌的排列算法;Spider:游戏规则;SpiderMenuBar:游戏菜单栏1.4参考资料《Java实用教程》清华大学出版社张跃平耿祥义著《Java实用教程》2. 系统的结构3.模块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。
基于j a v a开发的蜘蛛纸牌程序设计集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)编号:本科毕业论文(设计)题目:学院专业学号姓名指导教师职称:完成日期诚信承诺我谨在此承诺:本人所写的毕业论文《》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。
承诺人(签名):年月日基于java开发的蜘蛛纸牌程序设计姓名:关俊生学号:指导老师:李林国摘要:java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
Java是面向对象的语言。
蜘蛛纸牌是一款受人喜欢的休闲游戏,微软的每一代操作系统中都装有这种纸牌游戏,很多人都玩过蜘蛛纸牌,都熟悉蜘蛛纸牌游戏所需要的功能。
本人做的蜘蛛纸牌游戏开发理念是基于WINDOWS XP操作系统中自带蜘蛛纸牌游戏。
利用java语言实现了蜘蛛纸牌游戏的主要功能如纸牌的移动、放置、回收、重发。
利用javax.swing包的类实现纸牌游戏的用户界面,通为各个菜单组件添加监视器来实现鼠标单击事件所触发的接口方法,使得用户可以单击菜单项来实现具体的功能。
通过设置纸牌的等级来初始化纸牌随机分配纸牌,为用户玩纸牌游戏提供相应的等级。
意义:通过自己对蜘蛛纸牌游戏的开发,使我更加热爱java语言,让我懂得和洗去了更多程序开发的知识及经验,为以后进入编程工作提供条件。
关键字:java语言、游戏背景、功能实现Spider solitaire program based on java developmentName: Guan Junsheng Student ID: 200 829 010 213 Instructor: Li LinguoAbstract: java is the Java programming language from Sun Microsystems, Inc. in May 1995 (hereinafter referred to as the general term of the Java language) and Java platforms. Java is object-oriented languages. Spider Solitaire is a people like casual games, each generation of Microsoft's operating system are equipped with this card game, many people have played Spider Solitaire are all familiar with the functionality required by the spider card game. I do spider solitaire game development philosophy is based on the WINDOWS XP operating system comes with the spider solitaire game. Java language to achieve the main function of the spider solitaire game, such asmovement of the playing cards, place, recycling, re-issued. The use of the javax.swing package class that implements the user interface of the card game pass for each menu component to add a monitor to the mouse click event triggered by the interface method, the user can click the menu items to achieve a specific function. To initialize the cards by the level of the set of cards randomly assigned to cards, to provide the appropriate level for users playing solitaire. Meaning: the spidersolitaire game development, so that I more love the java language, so I know how to wash away the more knowledge and experience of program development, and provide conditions for the future to enter the programming work.Keywords: Java language, the background of the game functions目录1.绪论1.1 游戏开发的背景知识.....................................1.2 需要做的准备工作......................................2.开发工具介绍................................................2.1 java语言概述..........................................2.2 java语言的特点........................................2.3 Eclipse开发平台介绍...................................3.总体设计...................................................3.1代码功能模块的设计....................................3.2 程序总体设计流程图...................................3.3模块一的详细介绍......................................3.3.1 主要的类.......................................3.3.2 主要的变量.............................................................................3.4 模块二的详细介绍.....................................3.4.1主要的类.........................................3.4.2 主要的变量.....................................3.4.3主要的方法.......................................3.5 模块三的详细介绍......................................3.5.1主要的类..........................................3.5.2主要的变量.......................................3.5.3 主要的方法........................................3.6模块四的详细.............................................3.6.1主要的类...........................................3.6.2主要的变量.......................................3.6.3 主要的方法........................................4.功能设计....................................................4.1 需要实现的主要功能......................................4.2 功能设计流程图..........................................4.3 主要功能的代码实现......................................4.3.1 游戏菜单栏内游戏菜单及帮助菜单功能展示............4.3.2 主界面的设计.........................................4.3.3 纸牌的初始化以及发牌操作.............................4.3.4 纸牌的移动以及放置....................................4.3.5显示当前纸牌可行的操作................................4.3.6 回收纸牌.............................................5.程序的运行及发布................................................5.1 运行程序....................................................5.2 发布程序....................................................6.工作总结........................................................参考文献..........................................................1.绪论1.1 游戏开发的背景知识相信很多人都玩过蜘蛛纸牌这款休闲游戏,现在随着生活水平的提高,人们拥有充分的时间来享受休闲游戏带来的快乐,越来越多的人亲睐蜘蛛纸牌游戏。
《面向对象程序设计》课程设计报告题目: 下拉列表运算器设计专业: xxxxx班级: xxx姓名: xx指导教师: xx成绩:xxxxxx 年 x 月xx 日xx目录1设计内容及要求 (2)1.1 设计内容 (2)1.2 设计要求 (2)2概要设计 (2)2.1代码功能功能模块设计: (2)2.2程序的总体设计流程图: (3)2.3模块一的详细介绍: (3)2.3.1主要的类: (3)2.3.2主要的变量: (4)2.3.3主要的方法: (4)2.4模块二的详细介绍: (5)2.4.1主要的类: (5)2.4.2主要的变量: (5)2.4.3主要的方法: (5)2.5模块三的详细介绍: (6)2.5.1主要类介绍: (6)2.5.2主要变量: (6)2.5.3主要方法: (7)2.6模块四的详细介绍: (7)2.6.1主要的类: (8)2.6.2主要的变量: (8)2.6.3主要的方法: (8)3设计过程或程序代码 (9)3.1需要实现的主要功能: (9)3.2功能设计流程图: (10)3.3主要功能的代码实现: (10)3.3.1游戏菜单栏内游戏菜单及帮助菜单功能展示: (10)3.3.2主界面的设计: (11)3.3.3纸牌的初始化以及发牌操作 (13)3.3.4纸牌的移动以及放置 (18)3.3.5显示当前纸牌可行的操作: (19)3.3.6回收纸牌: (21)4设计结果与分析 (22)4.1运行程序: (22)4.2发布程序: (23)4.3总结: (24)5参考文献 (24)1设计内容及要求1.1 设计内容相信很多人都玩过蜘蛛纸牌这款休闲游戏,现在随着生活水平的提高,人们拥有充分的时间来享受休闲游戏带来的快乐,越来越多的人亲睐蜘蛛纸牌游戏。
谈起这款游戏,大家并不陌生。
从WINDOWS2000系统开始,就嵌入了蜘蛛纸牌游戏,可是随着微软系统的不段升级,蜘蛛纸牌游戏的功能业变得越来越强大,游戏的界面也更加美观。
目录1. 选题目的与系统概述 (2)2. 系统可行性分析与相关技术背景分析 (3)2.1系统可行性分析 (3)2.2相关技术背景分析 (3)3. 系统设计与关键技术 (4)3.1系统设计 (4)3.2关键技术 (5)4.系统测试与操作实施方法 (9)4.1进入游戏运行界面 (9)4.2 游戏的具体的操作过程 (9)4.3进入“帮助”菜单 (10)4.4游戏中的异常处理情况 (11)5.系统设计总结与回顾 (12)6.附录 (13)6.1 AboutDialog.java (13)6.2 PKCard.java (14)6.3 Spider.java (20)6.4 Spider M enuBar.java (29)1.选题目的与系统概述随着经济全球一体化的逐步加剧,人们的生活节奏越来越快。
蜘蛛纸牌游戏的一种,旨在让工作学习之后疲惫的玩家有一个轻愉快的放松方式。
与普通的纸牌相比,降低了一点难度。
游戏简单级别由8组A-K的清一色黑桃牌面组成,取消了红黑相间的游戏规则,更突然出强化了玩家在安排事物方面的能力。
蜘蛛纸牌游戏实现了与Windows系列操作系统中自带的蜘蛛纸牌游戏类似的功能。
该游戏程序中采用Windows系列中游戏的图片,运用Java语言设计了线程、鼠标事件、纸牌的装载、图形界面的构造、组件监听接口的实现、生成蜘蛛纸牌游戏的框架、实现游戏中的方法,是一种休闲益智游戏。
2.系统可行性分析与相关技术背景分析2.1系统可行性分析蜘蛛纸牌游戏规则是:(1)将电脑分发给你的牌按照相同的花色又打至小排列起来,直到桌面上的牌全都消失。
(2)可执行的牌必须为明牌(3)单牌移动规则(4)多拍移动规则游戏分三个等级:(1)简答:单一花色;(2)中级:双花色;(3)四花色。
2.2相关技术背景分析2.2.1蜘蛛纸牌游戏是基于Eclipse平台的Java程序。
Eclipse的背景如下:Eclipse最初是IBM公司的一个软件产品。
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class Spider extends JFrame{//整型变量,表示难度等级为:简单public static final int EASY = 1;//整型变量,表示难度等级为:普通public static final int NATURAL = 2;//整型变量,表示难度等级为:难public static final int HARD = 3;//设定初始难度等级为简单private int grade = Spider.EASY;private Container pane = null;//生成纸牌数组private PKCard cards[] = new PKCard[104];private JLabel clickLabel = null;private int c = 0;private int n = 0;private int a = 0;private int finish = 0;Hashtable table = null;private JLabel groundLabel[] = null;public static void main(String[] args){Spider spider = new Spider();spider.setVisible(true);}/****构造函数*/public Spider(){setTitle("蜘蛛牌");setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);//设置框架的大小setSize(1024, 742);//生成SpiderMenuBar对象,并放置在框架之上setJMenuBar(new SpiderMenuBar(this));pane = this.getContentPane();//设置背景颜色pane.setBackground(new Color(0, 112, 26));//将布局管理器设置成为nullpane.setLayout(null);clickLabel = new JLabel();clickLabel.setBounds(883, 606, 121, 96);pane.add(clickLabel);clickLabel.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent me){if (c < 60){Spider.this.deal();}}});this.initCards();this.randomCards();this.setCardsLocation();groundLabel = new JLabel[10];int x = 20;for (int i = 0; i < 10; i++){groundLabel[i] = new JLabel();groundLabel[i].setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISE D));groundLabel[i].setBounds(x, 25, 71, 96);x += 101;this.pane.add(groundLabel[i]);}this.setVisible(true);this.deal();this.addKeyListener(new KeyAdapter(){class Show extends Thread{public void run(){Spider.this.showEnableOperator();}}public void keyPressed(KeyEvent e){if (finish != 8) if (e.getKeyCode() == KeyEvent.VK_D && c < 60){ Spider.this.deal();}else if (e.getKeyCode() == KeyEvent.VK_M){new Show().start();}}});}/****开始新游戏*/public void newGame(){this.randomCards();this.setCardsLocation();this.setGroundLabelZOrder();this.deal();}/****返回值:int**返回牌的数量*/public int getC(){return c;}/****设置等级*/public void setGrade(int grade){this.grade = grade;}/****纸牌初始化*/public void initCards(){//如果纸牌已被赋值,即将其从框架的面板中移去if (cards[0] != null){for (int i = 0; i < 104; i++){pane.remove(cards[i]);}}int n = 0;//通过难度等级,为n赋值if (this.grade == Spider.EASY){n = 1;}else if (this.grade == Spider.NA TURAL){n = 2;}else{n = 4;}//为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(){PKCard temp = null;//随机生成牌号for (int i = 0; i < 52; i++){int a = (int) (Math.random() * 104);int b = (int) (Math.random() * 104);temp = cards[a];cards[a] = cards[b];cards[b] = temp;}}/****设置还原*/public void setNA(){a = 0;n = 0;}/****设置纸牌的位置*/public void setCardsLocation(){table = new Hashtable();c = 0;finish = 0;n = 0;a = 0;int x = 883;int y = 580;//初始化待展开的纸牌for (int i = 0; i < 6; i++){for (int j = 0; j < 10; j++){int n = i * 10 + j;pane.add(cards[n]);//将card转向背面cards[n].turnRear();//将card放在固定的位置上cards[n].moveto(new Point(x, y));//将card的位置及相关信息存入table.put(new Point(x, y), cards[n]);}x += 10;}x = 20;y = 45;//初始化表面显示的纸牌for (int i = 10; i > 5; i--){for (int j = 0; j < 10; j++){int n = i * 10 + j;if (n >= 104) continue;pane.add(cards[n]);cards[n].turnRear();cards[n].moveto(new Point(x, y));table.put(new Point(x, y), cards[n]);x += 101;}x = 20;y -= 5;}}/****返回值:void**方法:显示可移动的操作*/public void showEnableOperator(){int x = 0;out: while (true){Point point = null;PKCard card = null;do{if (point != null){n++;}point = this.getLastCardLocation(n);while (point == null){point = this.getLastCardLocation(++n);if (n == 10) n = 0;x++;if (x == 10) break out;}card = (PKCard) this.table.get(point);}while (!card.isCardCanMove());while (this.getPreviousCard(card) != null&& this.getPreviousCard(card).isCardCanMove()){ card = this.getPreviousCard(card);}if (a == 10){a = 0;}for (; a < 10; a++){if (a != n){Point p = null;PKCard c = null;do{if (p != null){a++;}p = this.getLastCardLocation(a);int z = 0;while (p == null){p = this.getLastCardLocation(++a);if (a == 10) a = 0;if (a == n) a++;z++;if (z == 10) break out;}c = (PKCard) this.table.get(p);}while (!c.isCardCanMove());if (c.getCardValue() == card.getCardValue() + 1){card.flashCard(card);try{Thread.sleep(800);}catch (InterruptedException e){e.printStackTrace();}c.flashCard(c);a++;if (a == 10){n++;}break out;}}}n++;if (n == 10){n = 0;}x++;if (x == 10){break out;}}}/***返回值:void**方法:游戏运行*/public void deal(){this.setNA();//判断10列中是否空列for (int i = 0; i < 10; i++){if (this.getLastCardLocation(i) == null){JOptionPane.showMessageDialog(this, "有空位不能发牌!", "提示",JOptionPane.W ARNING_MESSAGE);return;}}int x = 20;for (int i = 0; i < 10; i++){Point lastPoint = this.getLastCardLocation(i);//这张牌应“背面向上”if (c == 0){lastPoint.y += 5;}//这张牌应“正面向上”else{lastPoint.y += 20;}table.remove(cards[c + i].getLocation());cards[c + i].moveto(lastPoint);table.put(new Point(lastPoint), cards[c + i]);cards[c + i].turnFront();cards[c + i].setCanMove(true);//将组件card移动到容器中指定的顺序索引。
课程设计蜘蛛纸牌报告终极修改版轻工大学数学与计算机学院 Java 程序设计课程设计报告专业:信息与计算科学班级:信计1402 学号:姓名:徐雄飞指导教师:贾瑜1 课程设计目的与要求课程设计是在学习Java程序设计之后的实践教学环节。
该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过课程设计在下述各方面得到锻炼:1、能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。
2、提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法和程序的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。
2 设计内容2、1 蜘蛛纸牌2、1、1 程序基本功能蜘蛛纸牌游戏通过鼠标操作,将电脑多次分发的纸牌,按照相同的花色由大到小排列起来,直到桌面上的纸牌全都消失,即为胜利。
包括如下功能:(a)难度选择:包括简单(单色)、中级(双色)、高级(四色)。
(b)开局:任何时候可以重新开始一盘新的游戏。
(c)发牌。
(d)显示可行操作:提示当前可行操作。
(e)简单的帮助文档:对软件的简单介绍和编制说明。
2、1、2 程序设计方案和原理蜘蛛纸牌游戏共由4个部分组成,分别是:Spider、java,SpiderMenuBar、java,PKCard、java,AboutDialog、java,SpiderMenuBar、java包含名为SpiderMenuBar的public类,其主要功能为生成蜘蛛纸牌游戏的菜单栏,实现菜单栏中各个组件的事件侦听。
主要包括3个模块:图形用户界面的构建;组件监听接口的实现:显示可执行操作的线程。
PKCard、java。
包含名为PKCard的public类,其主要功能为:定义纸牌的属性,包括名称,位置等相关信息。
宜宾学院2020届毕业设计(论文)摘要现在社会在进步,人民生活水平也随着提高,人们可以利用多余的时间去体验游戏,从中感受快乐。
目前为止,游戏有很多类型。
例如,动作、冒险、模拟、角色扮演、休闲等类游戏都在迅速发展。
其中,很多人最熟悉的应该就是蜘蛛纸牌游戏了吧。
蜘蛛纸牌游戏是一款休闲益智类游戏,非常受大家的欢迎,随着科学技术的发展科技水平的进步,游戏实现的功能也越来越多,游戏界面也变得越来越好看,玩家的体验感受也越来越好, 让游戏的开发对于人们的生活娱乐更加有意义。
因此,也有越来越多的人亲睐于这款游戏。
这款蜘蛛纸牌游戏我是用Java语言来实现的,其中主要实现了纸牌的移动,发放等。
其设计的灵感主要来自于window7操作系统中的蜘蛛纸牌游戏。
关键词休闲游戏;Java语言;功能实现AbstractNow that society is progressing and people's living standards are improving, people can use the extra time to experience games and feel happy. So far, there are many types of games. For example, action, adventure, simulation, role-playing, leisure and other games are all developing rapidly. Among them, the spider card game should be the most familiar to many people. Spider Solitaire is a casual puzzle game that is very popular with everyone. With the development of science and technology, the level of science and technology has improved, the game has more and more functions, and the game interface has become more and more beautiful The experience experience is getting better and better, making game development more meaningful for people's life and entertainment. Therefore, more and more people love this game.I implemented this spider card game in Java language, which mainly realized the movement and distribution of cards. The inspiration for its design comes mainly from the spider card game in the window7 operating systemKey words the recreational game; java language; function realization目录第1章绪论 (3)1.1 休闲娱乐游戏[1] (3)1.2 游戏的背景 (3)1.3 国内外研究现状[2] (3)1.4 工作内容 (3)1.5 开发语言的简介[3] (4)1.6 开发语言特点[4] (4)1.7 开发工具Eclipse[5] (5)1.8 本游戏开发的意义 (6)第2章需求分析设计 (6)2.1 程序设计的任务概述[6] (6)2.2 系统特点 (6)2.3 功能需求 (7)2.4 界面的设计 (7)2.5 游戏设计主流程分析 (7)2.6 综合要求 (8)2.7 模型[8] (8)2.8 游戏程序需要解决的问题[9] (9)第3章程序的总体设计 (9)3.1 线程的设计 (9)3.1.1 通过Thread类实现 (9)3.1.2 实现Runnable接口 (10)3.2 代码功能的设计 (10)3.3 总体设计流程图 (10)3.4 模块一Spider (11)3.5 模块二SpiderMenuBar (13)3.6 模块三AboutDialog (14)3.7 模块四PKCard (15)第4章程序的详细设计 (6)4.1 程序流程图 (16)4.2 界面设计的实现[10] (17)4.3 等级设置的实现[14] (24)4.4 初始化纸牌以及发牌操作的实现[16] (25)4.5 游戏的运行 (27)4.5.1 纸牌游戏的移动放置操作[18] (28)4.5.2 回收纸牌操作[19] (29)4.5.3 帮助菜单 (29)4.5.4 退出功能 (29)第5章系统测试 (29)5.1 测试方法 (29)5.2 测试用例[20] (30)5.3 测试结果 (30)结论 (36)致谢.......................................................................................................................... 错误!未定义书签。
编号:本科毕业论文(设计)题目:学院专业学号姓名指导教师职称:完成日期诚信承诺我谨在此承诺:本人所写的毕业论文《》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。
承诺人(签名):年月日基于java开发的蜘蛛纸牌程序设计姓名:关俊生学号:200829010213 指导老师:李林国摘要:java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
Java是面向对象的语言。
蜘蛛纸牌是一款受人喜欢的休闲游戏,微软的每一代操作系统中都装有这种纸牌游戏,很多人都玩过蜘蛛纸牌,都熟悉蜘蛛纸牌游戏所需要的功能。
本人做的蜘蛛纸牌游戏开发理念是基于WINDOWS XP操作系统中自带蜘蛛纸牌游戏。
利用java语言实现了蜘蛛纸牌游戏的主要功能如纸牌的移动、放置、回收、重发。
利用javax.swing包的类实现纸牌游戏的用户界面,通为各个菜单组件添加监视器来实现鼠标单击事件所触发的接口方法,使得用户可以单击菜单项来实现具体的功能。
通过设置纸牌的等级来初始化纸牌随机分配纸牌,为用户玩纸牌游戏提供相应的等级。
意义:通过自己对蜘蛛纸牌游戏的开发,使我更加热爱java语言,让我懂得和洗去了更多程序开发的知识及经验,为以后进入编程工作提供条件。
关键字:java语言、游戏背景、功能实现Spider solitaire program based on java development Name: Guan Junsheng Student ID: 200 829 010 213 Instructor: Li LinguoAbstract: java is the Java programming language from Sun Microsystems, Inc. in May 1995 (hereinafter referred to as the general term of the Java language) and Java platforms. Java is object-oriented languages. Spider Solitaire is a people like casual games, each generation of Microsoft's operating system are equipped with this card game, many people have played Spider Solitaire are all familiar with the functionality required by the spider card game. I do spider solitaire game development philosophy is based on the WINDOWS XP operating system comes with the spider solitaire game. Java language to achieve the main function of the spider solitaire game, such as movement of the playing cards, place, recycling, re-issued. The use of the javax.swing package class that implements the user interface of the card game pass for each menu component to add a monitor to the mouse click event triggered by the interface method, the user can click the menu items to achieve a specific function. To initialize the cards by the level of the set of cards randomly assigned to cards, to provide the appropriate level for users playing solitaire. Meaning: the spider solitaire game development, so that I more love the java language, so I know how to wash away the more knowledge and experience of program development, and provide conditions for the future to enter the programming work.Keywords: Java language, the background of the game functions目录1.绪论1.1 游戏开发的背景知识.....................................1.2 需要做的准备工作......................................2.开发工具介绍................................................2.1 java语言概述..........................................2.2 java语言的特点........................................2.3 Eclipse开发平台介绍...................................3.总体设计...................................................3.1代码功能模块的设计....................................3.2 程序总体设计流程图...................................3.3模块一的详细介绍......................................3.3.1 主要的类.......................................3.3.2 主要的变量......................................3.3.3主要的方法.......................................3.4 模块二的详细介绍.....................................3.4.1主要的类.........................................3.4.2 主要的变量.....................................3.4.3主要的方法.......................................3.5 模块三的详细介绍......................................3.5.1主要的类..........................................3.5.2主要的变量.......................................3.5.3 主要的方法........................................3.6模块四的详细.............................................3.6.1主要的类...........................................3.6.2主要的变量.......................................3.6.3 主要的方法........................................4.功能设计....................................................4.1 需要实现的主要功能......................................4.2 功能设计流程图..........................................4.3 主要功能的代码实现......................................4.3.1 游戏菜单栏内游戏菜单及帮助菜单功能展示............4.3.2 主界面的设计.........................................4.3.3 纸牌的初始化以及发牌操作.............................4.3.4 纸牌的移动以及放置....................................4.3.5显示当前纸牌可行的操作................................4.3.6 回收纸牌.............................................5.程序的运行及发布................................................5.1 运行程序....................................................5.2 发布程序....................................................6.工作总结........................................................参考文献..........................................................1.绪论1.1 游戏开发的背景知识相信很多人都玩过蜘蛛纸牌这款休闲游戏,现在随着生活水平的提高,人们拥有充分的时间来享受休闲游戏带来的快乐,越来越多的人亲睐蜘蛛纸牌游戏。
本科学年论文(设计)基于Java的蜘蛛纸牌游戏设计系别信息管理系专业电子信息工程届别2013 班级学生姓名邓晓寒学号2013550514指导教师黄丽蓉职称二O一六年五月摘要随着休闭游戏市场竟争的升级,尤其是樸牌类休闲游戏的巨大市场前景的吸引,许多公司都加入到棋牌游戏的竞争之列,一时之间竟争可谓惨烈传统的休闲棋牌类游游戏中,微软公司出品的躥N以鬲系列多个版本作系统中所自帚的蜘蛛紙牌游戏是玩家最为熟知的“蜘蛛纸牌,游戏是典型的两副牌游戏,游戏的目标是以最少的移动次数将十叠牌中所有最前面的牌都移走。
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称本课题将采用Java语言编写这个蜘蛛纸牌游戏程序并采用eclipse3.2编译软件来编译该游戏程序。
【关键词】:休闲游戏,Java语言,编译软件AbstractBecausetherecreationalgamemarketcompeteOfgetstripe,particularlytheattraction Ofthehugemarketforegroundofthechesscardrecreationalgame,manycompaniesalljointh erowofthecompetitionOfchesscardgame,thatisatthattimethecompetitionbeitmaysaidhor rifying.Traditionalrecreationalchesscardswimsgamem,theMicrosoftcompanyproduceo fWINDOWSseriesseveraleditionoperatesystemsinfromtakeofthespiderplayingcardsga mebethattheplayeristhemostwellknow."Spiderplayingcards"gametwotypicalcardgames ,thetargetofgamewiththeminimalambulationnumberoftimeswilltenfoldallrmstanteriorc ardsincardtomove№walkThegenericnameofthelanguageandJavaterraceoftheJavaprogr amdesignthattheJavareleasedMayin1995bythecompanyofSunMicrosystems.Thistopic willadoptJavalanguagetowritethisgameprocedureofthespiderplayingcardscombineadop tioneclipse3.2editandtranslatesoftwaretoeditandtranslatethatgameprocedure. Keywords:Therecreationalgame,theJavalanguage,editsandtranslatesoftware目录第1章国内外现状 (1)第2章开发工具简介 (1)第3章游戏程序设计需求分析 (2)第4章 (4)4.1主要界面的实现 (4)4.2初始化纸牌及发牌操作: (8)4.3纸牌移动放置操作: (14)4.4回收纸牌操作: (15)4.5帮助菜单功能的实现: (16)4.6退出功能的实现: (17)5.调试验证运行情况 (17)6.设计总结 (22)第1章前言1.1国内外现状随着休闲游戏市场竞争的升级,尤其是棋牌类休闲游戏的巨大市场前景的吸引,许多公司都加入到棋牌游戏的竞争之列,一时之间竞争可谓惨烈。
在市场竞争如此激烈的情况下,我们看到了休闲游戏的内容不断丰富,这无疑推动了产业的扩大和产品的成熟。
新的棋牌类游戏如雨后春笋般涌出:游戏内容不断丰富,功能不断增多:游戏数量不断增多,变着花样的出新游戏;游戏平台不断完善,平台稳定性和抗压能力等显著增强;游戏可玩性不断增加等等。
而传统的休闲棋牌类游游戏中,微软公司出品的认丁NDOWS系列多个版本操作系统巾所自带的蜘蛛纸牌游戏是玩家最为熟知的。
现在市场上流行的大部分蜘蛛纸牌游戏包括手机游戏中的蜘蛛纸牌游戏都是以WINDOWS系列操作系统中自带的蜘蛛纸牌游戏为样本所开发的。
“蜘蛛纸牌”游戏是典型的两副牌游戏,游戏的日标是以最少的移动次数将十叠牌中所有最前面的牌都移走。
1.2主要工作内容本课题采用Java语言编写这个蜘蛛纸牌游戏程序。
主要工作内容:搜集相关资料,准备参考资料,学习掌握开发方法、开发工其,需求分析,确定游戏程序实施方案,根据要求设计具体的流程图,编写程序,修改、完善程序,系统调试、测试,优化处理,产生产品。
这次设计我们通过java语言编写,实现了游戏的难度选择、开局、重新发牌以及可视化的相关操作界面。
并通过设计鼠标事件,引入线程,构建游戏程序框架完成了对该游戏的难度选择、开局、发牌、显示可执行操作的各个基本功能。
第2章开发工具简介2.1java语言概述Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了java的魅力:跨平台动感的Web、Internet计算。
从此,Java被广泛接受并推动了Web 的迅速发展,常用的浏览器现在均支持Javaapplet.另一方面,Java技术也不断更新。
Java平台由Java拟机(JavaVirtualMachine)和Ja、a应用编程接口(ApplicationProgrammingInterface、简称API)构成"Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分扩展部分"在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台己经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口己经从1.1x版发展到1.2版。
目前常用的Java平台基于Java1.4,最近版本为Java1.6。
2.2关于ECLIPSEEchpse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Echpse的软件丿发人员,因为匕允许他们构建与Eclipse 环境无縫集成的工具。
由于Eclipse中的每样东西都是插件,对于给Echpse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
第3章游戏程序设计需求分析3.1游戏程序设计的任务概述该游戏程序所要设计的功能包括:1.游戏框架即游戏界而功能组件的设计包括:开局,重新发牌,设置等级的简单:单一花色,中级:双花色,高级:四花色,游戏退出,显示可行操作,关于。
2.游戏功能键中对关于窗体的设计:即显示游戏规则和声明。
3.游戏纸牌图片的载入。
4.游戏玩法即程序算法的开发3.2游戏程序设计的综合要求1.硬件配置CPU:>=Pentiurn41.6G内存:>=512MB硬盘剩余空间:>=2GB2.软件环境操作系统:MicrosoftWindowsXP安装Sum公司的Java运行环境JRE1.5安装Java开发工具包(JDK1.5)及ECLIPSE32.3.3本游戏程序需要解决的问题JAVA蜘蛛纸牌游戏程序拟采用Java(TM)2StandardEdition(5.0)作为开发平台进行程序开发。
绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易针致程序在运行不久后可能出现严重错误,甚至死循环。
因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
本课题拟采用AWT提供的两种监听接口(listenerinterface):java.awt.event.MouseListener和Java.awt.event.MouseMotionListener,实现鼠标的点击事件、鼠标状态处理以及键盘监听等相关事件。
JAVA蜘蛛纸牌游戏中为了美观,适用性强,需要采用外部文件引入的图片贴图。
另外,针对游戏程序中是普遍存在的闪烁这种现象,拟采用用双缓冲机制作为相应的解决方案。
在Java蜘蛛纸牌游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。
良好的用户界而更是吸引游戏玩家的硬指标,因此对相关的美术构图和人性化设置也需要有一定的考虑。
3.4模型该游戏可分为以下各项功能模块:a.Spider.java用于实现纸牌初始化、设置游戏等级以及异常处理。
b.PKCard.java用于定义纸牌的显示的各种属性以及鼠标事件的相应属性。
c.SpiderMenu..java用于添加游戏下拉菜单的各个选项,包含图形用户界面的构建,组件监听的实现,以及显示可执行操作的线程。
d.AePlayWava.java生成背景音乐且循环。
e.SpiderMenu.class生成Spider.class,AboutDialog.class和PKCard.class该游戏的开发及相关功能的实现需要在Eclipse下建立javaproject,同时编写Spider.java、PKCard.java、SpiderMen.java、AePlayWava.java、AboutDialog.class,另外将纸牌的图片文件保存在images文件夹中,音乐文件保存在musics文件中。
第4章4.1主要界面的实现游戏的菜单栏选项有游戏,帮助,关于,开局,重新发牌,简单:单一花色,中级;双花色,高级:四花色,退出,显示可行操作,其中游戏,帮助是用的JMenu类,关于,开局,重新发牌是用的JMenuItem类,简单;单一花色,中级:双花色,高级;四花色是用的JRadioButtonMenuItem类,退出,提示是用的JMenuItem类,分别是生成菜单组,生成菜单项,生成单选框以下是主菜单界面的主要代码://生成菜单组JMenujNewGame=newJMenu("游戏");JMenujHelp=newJMenu("帮助");JMenujGrade=newJMenu("等级设置");//生成菜单项JMenuItemjItemAbout=newJMenuItem("关于");JMenuItemjItemOpen=newJMenuItem("新游戏");JMenuItemjItemPlayAgain=newJMenuItem("重新发牌");JMenuItemjItemExit=newJMenuItem("退出");JMenuItemjItemValid=newJMenuItem("提示");//生成等级设置单选框JRadioButtonMenuItemjRMItemEasy=newJRadioButtonMenuItem("简单:单一花色");JRadioButtonMenuItemjRMItemNormal=newJRadioButtonMenuItem("中级:双花色");JRadioButtonMenuItemjRMItemHard=newJRadioButtonMenuItem("高级:四花色");蜘蛛纸牌游戏的游戏界而设计包括了游戏的框架,游戏界面的背景颜色和游戏的菜单栏选项以及游戏布局管理器的设置“在游戏界面的设置中会引入SpiderMenuBar中的JMenu类,JMenuItem类,JRadioButtonMenuItem类并且在Spider运行时会调用到SplderMenuBar。