您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 11JAVA课程设计扑克游戏
课程设计说明书NO.1扑克游戏1.课程设计的目的Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,使我们能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。本设计使用JAVA语言开发扑克游戏程序,将电脑多次分发给你的牌按照相同的花色由大至小排列起来。2.设计方案论证2.1设计思路用java语言,编程实现纸牌游戏,拥有如下规则,将电脑多次分发给你的牌按照相同的花色由大至小排列起来。游戏分为三个难度,简单,普通,困难。简单为单一花色。困难所分发给的牌有四种花色。将大小相邻的纸牌依次排列到一起当每种花色的全部纸牌都按顺序排列到一起,则游戏结束。2.2设计方法将程序设计成为4个类,AboutDialog类用于实现全部的对话。PKCard类用于实现游戏的规则。SpiderMenuBar类用于实现各个模块的功能。Spider为主界面。在SpiderMenuBar建立主界面菜单,通过构造函数publicSpiderMenuBar构造函数,生成JMenuBar的图形界面,对菜单中各按钮进行事件监听。在该方法中调用spider的构造方法,在其中生成SpiderMenuBar对象,并放置在框架之上,同时设置框架标题沈阳大学课程设计说明书NO.2框架大小背景颜色,布局为空。publicSpider(){setTitle(陶时扑克);setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);setSize(1024,742);setJMenuBar(newSpiderMenuBar(this));pane=this.getContentPane();pane.setBackground(newColor(14,25,26));pane.setLayout(null);clickLabel=newJLabel();clickLabel.setBounds(883,606,121,96);pane.add(clickLabel);}在Spider类中有如下方法:newGame新游戏的方法,setGrade设置等级方法,初始化等级方法。setGrade,randomCards随即函数。PKCardgetPreviousCard获得card上面的那张牌的方法等。由PKCardgetPreviousCard,PKCardgetNextCard,getLastCardLocation方法对类PKCard调用,代码如下:publicPKCardgetPreviousCard(PKCardcard){Pointpoint=newPoint(card.getLocation());point.y-=5;card=(PKCard)table.get(point);if(card!=null){returncard;}point.y-=15;card=(PKCard)table.get(point);沈阳大学课程设计说明书NO.3returncard;}publicPKCardgetNextCard(PKCardcard){Pointpoint=newPoint(card.getLocation());point.y+=5;card=(PKCard)table.get(point);if(card!=null)returncard;point.y+=15;card=(PKCard)table.get(point);returncard;}publicPointgetLastCardLocation(intcolumn){Pointpoint=newPoint(20+column*101,25);PKCardcard=(PKCard)this.table.get(point);if(card==null)returnnull;while(card!=null){point=card.getLocation();card=this.getNextCard(card);}returnpoint;}publicPointgetGroundLabelLocation(intcolumn){returnnewPoint(groundLabel[column].getLocation());}publicvoidsetGroundLabelZOrder(){for(inti=0;i10;i++){沈阳大学课程设计说明书NO.4pane.setComponentZOrder(groundLabel[i],105+i);}}2.3功能模块图图1功能模块图沈阳大学纸牌游戏选项帮助开局重新发牌显示可执行操作简单较难困难退出游戏规则声明课程设计说明书NO.52.4程序流程图图2程序流程图3.设计结果与分析(1)首先是对游戏中主菜单的设计,设计的菜单包括两个大部分,选项和帮助,如图3所示:沈阳大学开始游戏选择难度发牌有可排列的牌进行排列游戏完成游戏结束课程设计说明书NO.6图3显示菜单通过如下代码实现:JMenujNewGame=newJMenu(选项);JMenujHelp=newJMenu(帮助);(2)在选项菜单下面包含7级子菜单,如图4所示:图4显示菜单沈阳大学课程设计说明书NO.7通过如下代码实现:JMenuItemjItemOpen=newJMenuItem(开局);JMenuItemjItemPlayAgain=newJMenuItem(重发牌);JRadioButtonMenuItemjRMItemEasy=newJRadioButtonMenuItem(简单);JRadioButtonMenuItemjRMItemNormal=newJRadioButtonMenuItem(较难);JRadioButtonMenuItemjRMItemHard=newJRadioButtonMenuItem(困难);;JMenuItemjItemExit=newJMenuItem(退出);JMenuItemjItemValid=newJMenuItem(显示可执行行操作);(3)帮助下面包含2级子菜单,分别为游戏规则和声明,如图5所示:图5显示帮助通过如下代码实现:JTabbedPanejTabbedPane=newJTabbedPane();privateJPaneljPanel1=newJPanel();privateJPaneljPanel2=newJPanel();(4)主窗体通过类Spider实现。将窗体名称设置为“陶时扑克”,框架的大小设置为1024*742,背景颜色设置为黑色,布局管理设置为空,通过如下代码实现:沈阳大学课程设计说明书NO.8publicSpider(){setTitle(陶时扑克);setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);setSize(1024,742);setJMenuBar(newSpiderMenuBar(this));pane=this.getContentPane();pane.setBackground(newColor(14,25,26));pane.setLayout(null);}(5)进入游戏之后,首先选择开始新游戏,通过类Spider调用它的方法newGame方法,采用随机函数随机初始化牌的顺序(这样做的目的是,使游戏性增加可玩性,使每次出现牌的顺序不同),如图6所示。图6进入新游戏界面用如下代码实现:publicvoidnewGame(){this.randomCards();this.setCardsLocation();this.setGroundLabelZOrder();this.deal();}publicintgetC(){returnc;}publicvoidsetGrade(intgrade){this.grade=grade;}publicvoidinitCards(){if(cards[0]!=null){for(inti=0;i104;i++){pane.remove(cards[i]);}}intn=0;if(this.grade==Spider.EASY){n=1;}elseif(this.grade==Spider.NATURAL){n=2;}else{n=4;}for(inti=1;i=8;i++){沈阳大学课程设计说明书NO.9for(intj=1;j=13;j++){cards[(i-1)*13+j-1]=newPKCard((i%n+1)+-+j,this);}}this.randomCards();}publicvoidrandomCards(){PKCardtemp=null;for(inti=0;i52;i++){inta=(int)(Math.random()*104);intb=(int)(Math.random()*104);temp=cards[a];cards[a]=cards[b];cards[b]=temp;}}(6)在游戏界面的右下角做一张图片,显示扑克牌的背面,同时点击图片,系统自动发牌(当游戏无法继续的时候,可以点击该图片,在每副纸牌上发一张牌,使得进入僵局的纸牌游戏得以继续进行),运行界面如图7,图8所示。沈阳大学课程设计说明书NO.10图7发牌功能界面图8显示发牌沈阳大学课程设计说明书NO.11用如下代码实现:首先在界面上添加纸牌背面的图片:publicvoidturnRear(){this.setIcon(newImageIcon(images/6.gif));this.isFront=false;this.canMove=false;}publicPKCardgetPreviousCard(PKCardcard){Pointpoint=newPoint(card.getLocation());point.y-=5;card=(PKCard)table.get(point);if(card!=null){returncard;}point.y-=15;card=(PKCard)table.get(point);returncard;}publicPKCardgetNextCard(PKCardcard){Pointpoint=newPoint(card.getLocation());point.y+=5;card=(PKCard)table.get(point);if(card!=null)returncard;point.y+=15;card=(PKCard)table.get(point);returncard;沈阳大学课程设计说明书NO.12}publicPointgetLastCardLocation(intcolumn){Pointpoint=newPoint(20+column*101,25);PKCardcard=(PKCard)this.table.get(point);if(card==null)returnnull;while(card!=null){point=card.getLocation();card=this.getNextCard(card);}returnpoint;}publicPointgetGroundLabelLocation(i
本文标题:11JAVA课程设计扑克游戏
链接地址:https://www.777doc.com/doc-4336402 .html