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

上传人:h**** 文档编号:26795290 上传时间:2022-07-19 格式:DOCX 页数:19 大小:18.82KB
返回 下载 相关 举报
java课程设计 蜘蛛纸牌游戏设计课程设计报告.docx_第1页
第1页 / 共19页
java课程设计 蜘蛛纸牌游戏设计课程设计报告.docx_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《java课程设计 蜘蛛纸牌游戏设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《java课程设计 蜘蛛纸牌游戏设计课程设计报告.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、java课程设计 蜘蛛纸牌游戏设计课程设计报告 面向对象程序设计 课程设计报告 题目: 下拉列表运算器设计 专业: xxxxx 班级: xxx 姓名: xx 指导教师: xx 成绩: xx xxxx 年 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

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、.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系统开始,就嵌入了蜘蛛纸牌游戏,可是随着微软系统的不段升级,蜘蛛纸牌游戏的功能业变得越来越强大,游戏的界面也更加美观。用户的体验感

4、受也更加美好。所以,蜘蛛纸牌游戏的开发对于人类的生活娱乐更加有意义。了解蜘蛛纸牌的开发过程也是作为一名学习计算机专业大学生所应该尝试的过程。游戏的目标是以最少的移动次数将牌面中的十叠牌以及待发的五组,共计八副牌整理移除。当所有牌被移除整理到界面的左下方,游戏获胜。 1.2 设计要求 需要做的工作有学习掌握开发程序的方法,开了解发工具,进行需求分析,根据得到的需求规格说明书设计具体的程序流程图,编写程序,修改程序,运行程序,系统调试程序、测试程序,发布程序。 2概要设计 2.1代码功能功能模块设计: 蜘蛛纸牌游戏共由4个部分组成,分别是:Spider.java,SpiderMenuBar.jav

5、a,PKCard.java,AboutDialog.java。 SpiderMenuBar.java 包含名为SpiderMenuBar的public类,其主要功能为生成蜘蛛纸牌游戏的菜单栏,实现菜单栏中各个组件的事件侦听。主要包括3个模块:图形用户界面的构建;组件监听接口的实现:显示可执行操作的线程。 PKCard.java 包含名为PKCard的public类,其主要功能为:定义纸牌的属性,包括名称,位置等相关信息。并通过相关方法实现纸牌的移动等。 AboutDialog.java 包含名为AboutDialog的public类,其主要功能为生成蜘蛛纸牌游戏的帮助栏。 Spider.jav

6、a 包含名为Spider的public类,其主要功能为生成蜘蛛纸牌游戏的框架,实现游戏中的方法,包括:纸牌的随机生成,位置的摆放等。 2.2程序的总体设计流程图: 2.3模块一的详细介绍: SpiderMenuBar.java的功能是生成蜘蛛纸牌游戏的菜单栏。实现菜单栏中的各个组件的事件。 2.3.1主要的类: JMenuBar类、JMenu类、JMenuItem类、JRadioButton类都是设计GUI(图形用户界面)的包javax.swing中的类。可以用import引用这些类。JMenuBar 类是JComponent类的子类负责创建菜单条的。即JMenuBar类的一个实例就是一个菜单

7、条。 JMenu类是JComponent类的子类负责创建菜单组的。即JMenu类的一个实例化就是一个菜单。 JMenuItem类是JMenu类的父类负责创建菜单项。即JMenuItem类的一个实例化就是一个菜单项。 JRadioButtonMenuItem类负责一个单选按钮菜单项的实现。JRadioButtonMenuItem 是属于一组菜单项中的一个菜单项,该组中只能选择一个项。ButtonGroup 类用于为一组按钮创建一个多斥作用域。使用相同的ButtonGroup 对象创建一组按钮意味着“开启”其中一个按钮时,将关闭组中的其他所有按钮。 SpiderMenuBar类是此文件的一个主类是

8、JMenuBar的子类。 Show类是Thread的子类用于创建线程。 2.3.2主要的变量: jNewGame、jHelp变量分别是JMenu类创建的“游戏”、“帮助”菜单。 jItemAbout、jItemOpen、jItemPlayAgain、jItemExit、jItemValid变量分别是JMenuItem类创建的“关于”、“开局”、“重新发牌”、“退出”、“显示可行操作”菜单项。 jRMItemEasy、jRMItemNormal、jRMItemHard变量分别是JRadioButtonMenuItem类创建的“简单:单一花色”、“中级:双花色”、“高级:四花色”的单选按钮菜单项。

9、 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()创建一个新的单选

10、按钮对象组。 public void add(MenuItem item)向菜单增加由参数item指定的菜单项对象。 public void add(AbstractButton b)将单选按钮添菜单项加到组中。 public void add(JMenu c)将指定的菜单添加加到菜单栏中。 public void addSeparator()将新分隔符追加到菜单的末尾。所需要添加的事件处理的接口方法将在后来的模块中进行介绍。事件源即能够产生的事件的对象。监视器用于对事件源进行监视以便对发生的事件做出处理。事件源通过调用相应的方法将某个对象作为自己的监视器。这个方法是addActionList

11、en(ActionListener listen)该方法中的参数是ActionListener 类型的接口。因此必须用ActionListener接口的类创建的对象传递给该方法的参数,使得该对象成为事件源的的监视器。监视器负责调用特定的方法处理事件,创建监视器的类必须提供处理事件的特定的方法,即实现接口方法。 public void addMenuListener(MenuListener l)添加菜单事件的侦听器。void menuSelected(MenuEvent e)选择某个菜单时调用。 void menuDeselected(MenuEvent e)取消选择某个菜单时调用。 void

12、 menuCanceled(MenuEvent e)取消菜单时调用。 2.4模块二的详细介绍: PKCard的功能是定义纸牌的属性,包括名称,位置等相关信息。并通过相关方法实现了纸牌的移动等。 2.4.1主要的类: JDialog类是创建对话框窗口的主要类。可以使用此类创建自定义的对话框,或者调用 JOptionPane 中的多个类方法来创建各种标准对话框。 Jpanel类是一个面板类负责创建一个面板容器,再向这个面板添加组件,然后将面板添加到底层容器中。 JTabbedPane类负责创建一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换。 JTextArea类

13、负责创建一个显示纯文本的多行区域。它作为一个轻量级组件Container类负责创建一个容器对象,此容器可以包含其它组件。 AboutDialog类是JDialog类的子类,负责创建一个显示对话框。 2.4.2主要的变量: jMainPane、jPanel1、jPanel2、变量是JPane1创建的面板容器。 jt1、jt2是JTextArea类创建的文本区对象。 jTabbedPane是JTabbedPane类创建的选项卡窗格对象。 c变量是Container类创建的容器。 2.4.3主要的方法: public JTabbedPane()创建一个具有默认的 JTabbedPane.TOP 选项

14、卡布局的空 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

15、 setResizable(boolean b)设置对话框是否可调整大小。b为true时,对话框可调整大小。 public void setDefaultCloseOperation(int operation)该方法用来设置单机窗体右上角的关闭图标后,程序会做出怎样的处理。operation取 DISPOSE_ON_CLOSE时/隐藏当前窗口,并释放窗体所占有的其他资源。public void setVisible(boolean b)设置框口是可见还是不可见。b取true是为可见。 public Container getContentPane()方法可得到窗口的内容面板容器。 publi

16、c void JTextArea.setSize(int width,int heigth)设置文本区的大小。 public void JTextArea.setEditable(boolean b)设置文本区是否可以编辑。 public void JTextArea.setLineWrap(boolean b)设置文本区中输入的文本是否可以实现在右边界自动换行。 public void JTextArea.setFont(Font f)设置文本区内的字体。 public void JTextArea.setForeground(Color c)设置文本区组件的前景色。 public void

17、 addTab(String title,Icon icon,Component component,String tip)添加由 title 和/或 icon 表示的 component 和 tip,其中任意一个都可以为 nul参数:title - 此选项卡中要显示的标题,icon - 此选项卡中要显示的图标,component - 单击此选项卡时要显示的组件,tip - 此选项卡要显示的工具提示。 public void pack()调整此窗口的大小,以适合其子组件的首选大小和布局。 2.5模块三的详细介绍: PKCard的作用是定义纸牌的属性,包括名称、位置等相关信息。并通过相关方法实现

18、纸牌的移动。 2.5.1主要类介绍: JLable类负责创建标签对象。标签用于短文本字符串或图像或二者的显示区。 Thread类负责创建线程对象。 MouseListener接口、MouseMotionListener接口负责处理事件源所触发的鼠标事件,包括处理鼠标按下、释放、进入、退出、单击、连击、拖动、移动所触发鼠标事件。 Point类负责创建表示 (x,y) 坐标空间中的位置的点对象,以整数精度指定。 MouseEvent类负责创建鼠标所发生的事件对象。 Flash类负责创建线程对象,不断的获取下一张纸牌。 PKCard类是文件的主类,实现MouseListener接口的JLable的子

19、类。负责创建纸牌对象。 2.5.2主要变量: Point point变量表示纸牌的位置对象。 Point initPoint表示纸牌的初始化位置对象。 int value变量表示纸牌的内容值。 int type变量表示纸牌的类型。 String name变量表示纸牌的名称。 Container pane变量表示标签内主容器。 boolean canMove 变量表示纸牌是否可以移动,值为true时,可以移动。 boolean isFront变量表示纸牌是否正面显示,值为true时,则为正面显示。 PKCard previousCard变量表示上面一张纸牌 2.5.3主要方法: public v

20、oid flashCard(PKCard card)方法启动Flash线程不停的获取下一张纸牌直至完成。 public void run()方法为纸牌的正面设置白色图片。 card.updateUI()方法将UI属性重置为当前外观的值。 public void mousePressed(MouseEvent mp)方法按下鼠标时事件的处理方法。 public void mouseReleased(MouseEvent mr)方法释放鼠标时事件处理的方法。 public void setNextCardLocation(Point point)方法放置鼠标时事件处理方法。 public int

21、whichColumnAvailable(Point point)方法为判断可用列。 public void mouseDragged(MouseEvent argO)方法鼠标拖动纸牌时事件处理方法。 public void moving(int x,int y)方法将纸牌移动(x,y)个位置。 pane.setComponentZOrder(this,1)方法将主件移动到容器中指定的顺序索引。 public PKCard(String name,Spider spider)方法纸牌的构造函数。 public void turnFront()方法令纸牌显示正面。 public void tur

22、nRear()方法令纸牌显示背面。 public void moveto(Point point()方法将纸牌移动到点point public void setCanMove(boolean can)方法判断纸牌是否能够移动。 public boolean isCardFront()方法判断纸牌是否正面显示。 public boolean isCardCanMove()方法判断纸是否能够移动。 public int getCardValue()方法获得纸牌的内容值。 public int getCardType()方法获得纸牌的类型。 2.6模块四的详细介绍: Spider.java文件是蜘蛛

23、纸牌游戏的主类文件,其主要功能是生成蜘蛛纸牌游戏的框架,实现游戏中的方法,包括纸牌的随机生成、位置的摆放等。 2.6.1主要的类: JFrame类及其子类负责创建的对象称为窗体。 JLable类负责创建标签对象。标签用于短文本字符串或图像或二者的显示区。 Container类负责创建一个容器对象,此容器可以包含其它组件。 PKCard类负责创建纸牌对象。 Hashtable类实现一个哈希表,该哈希表将键映射到相应的值。 2.6.2主要的变量: public static final int EASY=1;代表“简单”等级。 public static finalint NATURAL=2 代表

24、“普通”等级。 public static finalint HARD=3 代表“难”等级。 private int grade=Spider.EASY设定初始等级为简单等级; private Container pane 变量为Container类创建的面板容器。 private PKCard card变量为PKCard类创建的纸牌数组。 private JLable clickLable1变量为JLable类创建的右下角发牌区的鼠标点击响应区域。 private JLable groudLable变量为JLable类创建的背景框数组。 Hshtable table变量为Hashtable类

25、创建的一个哈希表对象,用于存储键值数据对。 private int c变量为纸牌的数量。 private int n变量为纸牌的等级。 private int a变量为纸牌所在的列号。 private int finish变量为纸牌从小到大排列成功的次数。 2.6.3主要的方法: public void setTittle(String s)设置一个标题为s的窗体。 public void setVisible(boolean b)设置框体是可见还是不可见。b取true 是为可见。 public void setSize(int width,int heigth)创建宽为width,高位hei

26、gth 大小的窗体。 public void setDefaultCloseOperation(int operation)该方法用来设置单机窗体右上角的关闭图标后,程序会做出怎样的处理。operation取EXIT_ON_CLOSE时结束窗体所在的应用程序。 public void setMenuBar(MenuBar mb)将此窗体的菜单栏设置为指定的菜单栏。 public void pane.setBackground(Color c)设置面板的背景颜色。 public void pane.setLayout(布局对象)设置面板的布局。 public Container getConte

27、ntPane()方法可得到窗口的内容面板容器。 public void setBounds(int a,int b,int weidth, int heigth)设置出现在屏幕中的组件距离屏幕的左面a个像素,距屏幕上面b个像素,组件宽为weidth,高为heigth。 public void newGame()方法开始新游戏。 public int getC()方法返回纸牌的数量。 public void setGrade(int grade)方法设置纸牌游戏的等级。 public void initCards()方法进行初始化纸牌 public void randomCards()方法令纸牌

28、随机分配。 public void setNA()方法设置还原纸牌游戏。 public void setCardsLocation()方法设置待展开纸牌级表面初始化纸牌的位置。 public void showEnableOperator()方法进行显示是否有可以移动的纸牌。 public void deal()方法开始运行游戏。 public PKCard getPreviousCard(PKCard card)方法获取当前纸牌上面的那一张纸牌。 public PKCard getNextCard(PKCard card)方法获取当前纸牌的下面的那一张纸牌。 public Point get

29、LastCardLocation(int n)方法获取第n列纸牌最后一张纸牌的位置。 public Point getGroundLabelLocation(int n)方法获取第n列纸牌的背景框架的位置。 public void setGroundLabelZOrder()放置groundLable组件。将组件groundLable移动到容器中指定的顺序索引。顺序(105+i)确定了绘制组件的顺序;具有最高顺序的组件将第一个绘制,具有最低顺序的组建将最后一个绘制。在组建重叠的地方,具有较低顺序的组建将覆盖具有较高顺序的组件。 public void haveFinish(int column

30、)判断纸牌的摆放是否成功。 3设计过程或程序代码 3.1需要实现的主要功能: (1)游戏主界面的设计包括背景颜色、框架大小、玩牌区域、发牌区域、回收纸牌的区域组件的设置。 (2)点击鼠标、释放鼠标、拖动鼠标时纸牌需要实现的事件处理程序。 (3)移动放置一组或者单个纸牌时。需要纸牌按照由小到大的顺序排列,并列类型相同。 (4)当某列的纸牌按照从A到K得顺序排列时,程序会自动回收这组纸牌到回收纸牌的区域。 (5)当用鼠标单击发牌区域的纸牌时,如果10列纸牌中没有空白列,则顺序把纸牌发到每列纸牌的最下面。否则,弹出有空位不能发牌对话框。 (6)当玩家不知道当前游戏如何进行时,可以点击菜单项显示可行的操作提示玩家下一步该移动哪一张纸牌。 (7)等级设置,玩家通过单击游戏菜单里相应的等级菜单项来设置游戏的难度等级。游戏的默认等级是简单等级。 3.2功能设计流程图: 3.3主要功能的代码实现: 3.3.1游戏菜单栏内游戏菜单及帮助菜单功能展示:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁