java课程设计 蜘蛛纸牌游戏设计课程设计报告

合集下载

基于java开发的蜘蛛纸牌程序设计图文稿

基于java开发的蜘蛛纸牌程序设计图文稿

基于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 游戏开发的背景知识相信很多人都玩过蜘蛛纸牌这款休闲游戏,现在随着生活水平的提高,人们拥有充分的时间来享受休闲游戏带来的快乐,越来越多的人亲睐蜘蛛纸牌游戏。

蜘蛛纸牌详细设计说明书

蜘蛛纸牌详细设计说明书

蜘蛛纸牌大纲设计说明书南昌航空大学软件学院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.classAboutDialog.class Spider.class PKCard.class3.模块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 。

Spider——蜘蛛纸牌java程序设计3

Spider——蜘蛛纸牌java程序设计3

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移动到容器中指定的顺序索引。

蜘蛛纸牌课程设计

蜘蛛纸牌课程设计

蜘蛛纸牌课程设计一、课程目标知识目标:1. 学生能理解蜘蛛纸牌游戏的规则与基本策略;2. 学生能运用加减乘除运算,完成纸牌的排序;3. 学生掌握概率的基本概念,并运用到游戏策略中。

技能目标:1. 学生通过蜘蛛纸牌游戏,提高逻辑思维和问题解决能力;2. 学生能够运用所学知识,制定有效的游戏策略;3. 学生在游戏中,锻炼耐心、细心和观察力。

情感态度价值观目标:1. 学生在游戏中体验成功与失败,培养面对挑战的积极态度;2. 学生通过团队合作,学会相互尊重、沟通与协作;3. 学生认识到学习数学的乐趣,激发对数学学科的兴趣。

分析课程性质、学生特点和教学要求,将目标分解为以下具体学习成果:1. 学生能够独立完成蜘蛛纸牌游戏的基本操作;2. 学生能够在规定时间内完成游戏,并达到一定的分数;3. 学生能够总结游戏策略,并与同伴分享;4. 学生在游戏中展现出积极的态度,愿意接受挑战,并从失败中吸取经验;5. 学生在团队中积极参与讨论,乐于帮助他人,共同解决问题。

二、教学内容本章节教学内容围绕蜘蛛纸牌游戏,结合课程目标,选择以下内容:1. 蜘蛛纸牌游戏规则介绍与基本操作:- 游戏界面与纸牌布局;- 纸牌的移动规则;- 游戏的胜利条件。

2. 蜘蛛纸牌游戏策略:- 加减乘除运算在纸牌排序中的应用;- 概率知识在制定策略中的作用;- 逻辑思维与问题解决能力培养。

3. 教学大纲安排:- 第一节课:介绍蜘蛛纸牌游戏规则与基本操作;- 第二节课:讲解加减乘除运算在纸牌排序中的应用;- 第三节课:探讨概率知识在制定游戏策略中的作用;- 第四节课:总结游戏策略,分享经验,进行团队合作。

4. 教材章节及内容:- 第四章:概率与统计;- 第五章:问题解决与逻辑思维。

5. 教学内容进度安排:- 第一节课:完成蜘蛛纸牌游戏规则与基本操作的学习;- 第二节课:掌握加减乘除运算在纸牌排序中的应用;- 第三节课:学会运用概率知识制定游戏策略;- 第四节课:总结经验,进行团队合作,提高问题解决能力。

(完整版)Java毕业课程设计蜘蛛纸牌李娜

(完整版)Java毕业课程设计蜘蛛纸牌李娜

Java课程设计——蜘蛛纸牌游戏1 引言1.1 背景相信很多人都玩过蜘蛛纸牌这款休闲游戏,现在随着生活水平的提高,人们拥有充分的时间来享受休闲游戏带来的快乐,越来越多的人亲睐蜘蛛纸牌游戏。

谈起这款游戏,大家并不陌生。

从WINDOWS2000系统开始,就嵌入了蜘蛛纸牌游戏,可是随着微软系统的不段升级,蜘蛛纸牌游戏的功能业变得越来越强大,游戏的界面也更加美观。

用户的体验感受也更加美好。

所以,蜘蛛纸牌游戏的开发对于人类的生活娱乐更加有意义。

本游戏通过java语言编写,实现了游戏的难度选择、开局、重新发牌以及可视化的相关操作界面。

并通过设计鼠标事件,引入线程,构建游戏程序框架完成了对该游戏的难度选择、开局、发牌、显示可执行操作的各个基本功能。

1.2 目标该游戏通过鼠标操作,将电脑多次分发的纸牌,按照相同的花色由大到小排列起来,直到桌面上的纸牌全都消失,即为胜利。

包括如下功能:(a)难度选择:包括简单(单色)、中级(双色)、高级(四色)。

(b)开局:任何时候可以重新开始一盘新的游戏。

(c)发牌。

(d)显示可行操作:提示当前可行操作。

(e)简单的帮助文档:对软件的简单介绍和编制说明。

2 开发工具介绍2.1 java语言概述java是由Sun Microsystems公司于1995年5月推出的java程序设计语言和java平台的总称。

用java实现的浏览器显示它的魅力:跨平台的特点使得它越来越受到许多程序员的亲睐。

java除了可以开发动态的Web 页还可以开发各种系统软件。

java平台由java虚拟机和各种java应用编程接口(简称API)构成。

java应用编程接口为java提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。

在操作系统上安装一个java平台就可以运行任何一个java程序啦。

现在java平台已经几乎嵌入到所有的操作系统中。

这样java程序就可以只编译一次,就可以在各种系统当中运行。

2.2 java语言的特点java语言是一种简单的、面向对象的、分布式的、健壮的、安全的、与平台无关的、多线程、高性能的、动态程序设计语言。

Java课程设计蜘蛛纸牌李娜-推荐下载

Java课程设计蜘蛛纸牌李娜-推荐下载

对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线0产中不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资22负料,荷试而下卷且高总可中体保资配障料置各试时类卷,管调需路控要习试在题验最到;大位对限。设度在备内管进来路行确敷调保设整机过使组程其高1在中正资,常料要工试加况卷强下安看2与全22过,22度并22工且22作尽2下可护1都能关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编5试技写、卷术重电保交要气护底设设装。备备4置管高调、动线中试电作敷资高气,设料中课并3技试资件且、术卷料拒管中试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

课程设计蜘蛛纸牌报告终极修改版

课程设计蜘蛛纸牌报告终极修改版

课程设计蜘蛛纸牌报告终极修改版轻工大学数学与计算机学院 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)致谢.......................................................................................................................... 错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》课程设计报告题目: 下拉列表运算器设计专业: 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概要设计2.1代码功能功能模块设计:蜘蛛纸牌游戏共由4个部分组成,分别是:Spider.java,SpiderMenuBar.java,PKCard.java,AboutDialog.java。

SpiderMenuBar.java包含名为SpiderMenuBar的public类,其主要功能为生成蜘蛛纸牌游戏的菜单栏,实现菜单栏中各个组件的事件侦听。

主要包括3个模块:图形用户界面的构建;组件监听接口的实现:显示可执行操作的线程。

PKCard.java包含名为PKCard的public类,其主要功能为:定义纸牌的属性,包括名称,位置等相关信息。

并通过相关方法实现纸牌的移动等。

AboutDialog.java包含名为AboutDialog的public类,其主要功能为生成蜘蛛纸牌游戏的帮助栏。

Spider.java包含名为Spider的public类,其主要功能为生成蜘蛛纸牌游戏的框架,实现游戏中的方法,包括:纸牌的随机生成,位置的摆放等。

2.2程序的总体设计流程图:2.3模块一的详细介绍:SpiderMenuBar.java的功能是生成蜘蛛纸牌游戏的菜单栏。

实现菜单栏中的各个组件的事件。

2.3.1主要的类:JMenuBar类、JMenu类、JMenuItem类、JRadioButton类都是设计GUI(图形用户界面)的包javax.swing中的类。

可以用import引用这些类。

JMenuBar 类是JComponent类的子类负责创建菜单条的。

即JMenuBar类的一个实例就是一个菜单条。

JMenu类是JComponent类的子类负责创建菜单组的。

即JMenu类的一个实例化就是一个菜单。

JMenuItem类是JMenu类的父类负责创建菜单项。

即JMenuItem类的一个实例化就是一个菜单项。

JRadioButtonMenuItem类负责一个单选按钮菜单项的实现。

JRadioButtonMenuItem 是属于一组菜单项中的一个菜单项,该组中只能选择一个项。

ButtonGroup 类用于为一组按钮创建一个多斥作用域。

使用相同的ButtonGroup 对象创建一组按钮意味着“开启”其中一个按钮时,将关闭组中的其他所有按钮。

SpiderMenuBar类是此文件的一个主类是JMenuBar的子类。

Show类是Thread的子类用于创建线程。

2.3.2主要的变量:jNewGame、jHelp变量分别是JMenu类创建的“游戏”、“帮助”菜单。

jItemAbout、jItemOpen、jItemPlayAgain、jItemExit、jItemValid变量分别是JMenuItem类创建的“关于”、“开局”、“重新发牌”、“退出”、“显示可行操作”菜单项。

jRMItemEasy、jRMItemNormal、jRMItemHard变量分别是JRadioButtonMenuItem类创建的“简单:单一花色”、“中级:双花色”、“高级:四花色”的单选按钮菜单项。

group变量是ButtonGroup 类创建的一组按钮选择对象。

spider变量是Spider类创建的对象用于主界面窗口的实现。

将在Spider.java文件中介绍。

2.3.3主要的方法:public JMenuBar()创建新的菜单栏。

public JMenu(String text)构造一个新菜单,用提供的字符串作为其文本。

public JMenuItem(String text)创建带有指定文本的菜单项。

public JRadioButtonMenuItem(String text)创建一个带文本的单选按钮菜单项。

public ButtonGroup()创建一个新的单选按钮对象组。

public void add(MenuItem item)向菜单增加由参数item指定的菜单项对象。

public void add(AbstractButton b)将单选按钮添菜单项加到组中。

public void add(JMenu c)将指定的菜单添加加到菜单栏中。

public void addSeparator()将新分隔符追加到菜单的末尾。

所需要添加的事件处理的接口方法将在后来的模块中进行介绍。

事件源即能够产生的事件的对象。

监视器用于对事件源进行监视以便对发生的事件做出处理。

事件源通过调用相应的方法将某个对象作为自己的监视器。

这个方法是addActionListen(ActionListener listen)该方法中的参数是ActionListener 类型的接口。

因此必须用ActionListener接口的类创建的对象传递给该方法的参数,使得该对象成为事件源的的监视器。

监视器负责调用特定的方法处理事件,创建监视器的类必须提供处理事件的特定的方法,即实现接口方法。

public void addMenuListener(MenuListener l)添加菜单事件的侦听器。

void menuSelected(MenuEvent e)选择某个菜单时调用。

void menuDeselected(MenuEvent e)取消选择某个菜单时调用。

void menuCanceled(MenuEvent e)取消菜单时调用。

2.4模块二的详细介绍:PKCard的功能是定义纸牌的属性,包括名称,位置等相关信息。

并通过相关方法实现了纸牌的移动等。

2.4.1主要的类:JDialog类是创建对话框窗口的主要类。

可以使用此类创建自定义的对话框,或者调用 JOptionPane 中的多个类方法来创建各种标准对话框。

Jpanel类是一个面板类负责创建一个面板容器,再向这个面板添加组件,然后将面板添加到底层容器中。

JTabbedPane类负责创建一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换。

JTextArea类负责创建一个显示纯文本的多行区域。

它作为一个轻量级组件Container类负责创建一个容器对象,此容器可以包含其它组件。

AboutDialog类是JDialog类的子类,负责创建一个显示对话框。

2.4.2主要的变量:jMainPane、jPanel1、jPanel2、变量是JPane1创建的面板容器。

jt1、jt2是JTextArea类创建的文本区对象。

jTabbedPane是JTabbedPane类创建的选项卡窗格对象。

c变量是Container类创建的容器。

2.4.3主要的方法:public JTabbedPane()创建一个具有默认的 JTabbedPane.TOP 选项卡布局的空 TabbedPane.public JDialog()创建一个没有标题并且没有指定 Frame 所有者的无模式对话框。

一个共享的、隐藏的窗体将被设置为该对话框的所有者。

public JPanel()创建具有双缓冲和流布局的新面板容器。

public JTextArea(String text)构造显示指定文本为text的新的文本区。

public void setTittle(String s)设置一个标题为s的对话框。

public void setSize(int width,int heigth)创建宽为width,高位heigth 大小的对话框。

public void setResizable(boolean b)设置对话框是否可调整大小。

b为true时,对话框可调整大小。

public void setDefaultCloseOperation(int operation)该方法用来设置单机窗体右上角的关闭图标后,程序会做出怎样的处理。

operation取DISPOSE_ON_CLOSE时//隐藏当前窗口,并释放窗体所占有的其他资源。

public void setVisible(boolean b)设置框口是可见还是不可见。

b取true是为可见。

public Container getContentPane()方法可得到窗口的内容面板容器。

public void JTextArea.setSize(int width,int heigth)设置文本区的大小。

相关文档
最新文档