JAVA课程设计扑克游戏.docx
- 文档编号:26440916
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:5
- 大小:18.73KB
JAVA课程设计扑克游戏.docx
《JAVA课程设计扑克游戏.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计扑克游戏.docx(5页珍藏版)》请在冰豆网上搜索。
JAVA课程设计扑克游戏
JAVA课程设计扑克游戏
课程设计说明书 扑克游戏1.课程设计的目的Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。
面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,使我们能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。
通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。
使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。
本设计使用JAVA语言开发扑克游戏程序,将电脑多次分发给你的牌按照相同的花色大至小排列起来。
2.设计方案论证设计思路 用java语言,编程实现纸牌游戏,拥有如下规则,将电脑多次分发给你的牌按照相同的花色大至小排列起来。
游戏分为三个难度,简单,普通,困难。
简单为单一花色。
困难所分发给的牌有四种花色。
将大小相邻的纸牌依次排列到一起当每种花色的全部纸牌都按顺序排列到一起,则游戏结束。
设计方法将程序设计成为4个类,AboutDialog类用于实现全部的对话。
PKCard类用于实现游戏的规则。
SpiderMenuBar类用于实现各个模块的功能。
Spider为主界面。
在SpiderMenuBar建立主界面菜单,通过构造函数publicSpiderMenuBar构造函数,生成JMenuBar的图形界面,对菜单中各按钮进行事件监听。
在该方法中调用spider的构造方法,在其中生成SpiderMenuBar对象,并放置在框架之上,同时设置框架标题 沈阳大学课程设计说明书 框架大小背景颜色,布局为空。
publicSpider(){setTitle(\陶时扑克\ setDefaultCloseOperation(_ON_CLOSE); setSize(1024,742);setJMenuBar(newSpiderMenuBar(this)); pane=(); (newColor(14,25,26)); (null); clickLabel=newJLabel(); (883,606,121,96); (clickLabel);}在Spider类中有如下方法:
newGame新游戏的方法,setGrade设置等级方法,初始化等级方法。
setGrade,randomCards随即函数。
PKCardgetPreviousCard获得card上面的那张牌的方法等。
PKCardgetPreviousCard,PKCardgetNextCard,getLastCardLocation方法对类PKCard调用,代码如下:
publicPKCardgetPreviousCard(PKCardcard){ Pointpoint=newPoint(()); -=5; card=(PKCard)(point); if(card!
=null){ }-=15; card=(PKCard)(point); 沈阳大学returncard;课程设计说明书 returncard;}publicPKCardgetNextCard(PKCardcard){ Pointpoint=newPoint(()); +=5;card=(PKCard)(point); if(card!
=null) returncard; +=15; card=(PKCard)(point); returncard;}publicPointgetLastCardLocation(intcolumn){ Pointpoint=newPoint(20+column*101,25); PKCardcard=(PKCard)(point); if(card==null)returnnull; while(card!
=null){ point=(); card=(card); } returnpoint;}publicPointgetGroundLabelLocation(intcolumn){ returnnewPoint(groundLabel[column].getLocation());}publicvoidsetGroundLabelZOrder(){ for(inti=0;i 沈阳大学课程设计说明书 (groundLabel[i],105+i); }}2.3功能模块图纸牌游戏选项帮助开局重新发牌显示可执行操作简单较难困难退出游戏规则声明 沈阳大学 图1功能模块图课程设计说明书 程序流程图 有可排列的牌选择难度开始游戏发牌进行排列游戏完成 游戏结束图2程序流程图3.设计结果与分析首先是对游戏中主菜单的设计,设计的菜单包括两个大部分,选项和帮助,如图3所示:
沈阳大学
课程设计说明书 图3显示菜单通过如下代码实现:
JMenujNewGame=newJMenu(\选项\ JMenujHelp=newJMenu(\帮助\在选项菜单下面包含7级子菜单,如图4所示:
图4显示菜单 沈阳大学课程设计说明书 通过如下代码实现:
JMenuItemjItemOpen=newJMenuItem(\开局\JMenuItemjItemPlayAgain=newJMenuItem(\重发牌\JRadioButtonMenuItemjRMItemEasy=newJRadioButtonMenuItem(\简单\JRadioButtonMenuItemjRMItemNormal=newJRadioButtonMenuItem(\较难\JRadioButtonMenuItemjRMItemHard=newJRadioButtonMenuItem(\困难\JMenuItemjItemExit=newJMenuItem(\退出\JMenuItemjItemValid=newJMenuItem(\显示可执行行操作\帮助下面包含2级子菜单,分别为游戏规则和声明,如图5所示:
图5显示帮助通过如下代码实现:
JTabbedPanejTabbedPane=newJTabbedPane();privateJPaneljPanel1=newJPanel();privateJPaneljPanel2=newJPanel();主窗体通过类Spider实现。
将窗体名称设置为“陶时扑克”,框架的大小设置为1024*742,背景颜色设置为黑色,布局管理设置为空,通过如下代码实现:
沈阳大学课程设计说明书 publicSpider(){setTitle(\陶时扑克\setDefaultCloseOperation(_ON_CLOSE);setSize(1024,742);setJMenuBar(newSpiderMenuBar(this)); pane=();}进入游戏之后,首先选择开始新游戏,通过类Spider调用它的方法newGame方法,采用随机函数随机初始化牌的顺序,如图6所示。
(newColor(14,25,26));(null);图6进入新游戏界面用如下代码实现:
publicvoidnewGame(){ (); ();();(); }publicintgetC(){ returnc; }publicvoidsetGrade(intgrade){ =grade; }publicvoidinitCards(){ if(cards[0]!
=null){ for(inti=0;i 沈阳大学课程设计说明书 for(intj=1;j 沈阳大学
课程设计说明书 图7发牌功能界面图8显示发牌 沈阳大学课程设计说明书 用如下代码实现:
首先在界面上添加纸牌背面的图片:
publicvoidturnRear(){ (newImageIcon(\ =false; =false;}publicPKCardgetPreviousCard(PKCardcard){ Pointpoint=newPoint(()); -=5; card=(PKCard)(point); if(card!
=null){ }returncard; -=15; card=(PKCard)(point);returncard; }publicPKCardgetNextCard(PKCardcard){ Pointpoint=newPoint(()); +=5; card=(PKCard)(point); if(card!
=null) returncard; +=15; card=(PKCard)(point); returncard; 沈阳大学课程设计说明书 }publicPointgetLastCardLocation(intcolumn){ Pointpoint=newPoint(20+column*101,25); PKCardcard=(PKCard)(point); if(card==null)returnnull; while(card!
=null){ point=(); card=(card); } returnpoint; } publicPointgetGroundLabelLocation(intcolumn){ returnnewPoint(groundLabel[column].getLocation()); }publicvoidsetGroundLabelZOrder(){ for(inti=0;i 沈阳大学课程设计说明书 图9图片库图10图片被载入 沈阳大学课程设计说明书 使用如下代码实现:
for(inti=0;i5;i--){ for(intj=0;j=104)continue;(cards[n]); cards[n].turnRear(); cards[n].moveto(newPoint(x,y)); (newPoint(x,y),cards[n]); x+=101; }x=20; y-=5;} 沈阳大学
课程设计说明书 publicvoidshowEnableOperator(){ intx=0; out:
while(true){ Pointpoint=null; PKCardcard=null; do{ if(point!
=null){ }n++; point=(n); while(point==null){ point=(++n); if(n==10)n=0; x++; if(x==10)breakout; } card=(PKCard)(point); } while(!
()); while((card)!
=null&&(card).isCardCanMove()){card=(card); } if(a==10){ }for(;a a=0; 沈阳大学课程设计说明书 Pointp=null; PKCardc=null; do{ if(p!
=null){ }p=(a);a++; intz=0; while(p==null){ p=(++a); if(a==10)a=0; if(a==n)a++; z++; if(z==10)breakout; } c=(PKCard)(p); } while(!
()); if(()==()+1){ (card); try{ (800); } catch(InterruptedExceptione){(); } (c); 沈阳大学课程设计说明书 a++; if(a==10){ }n++; breakout; } } } n++; if(n==10){ }n=0; x++; if(x==10){ }breakout; }}通过调用如下代码实现图片的调用:
publicvoidsetNextCardLocation(Pointpoint){ PKCardcard=(this);if(card!
=null){if(point==null){(null); (());();(,card); 沈阳大学课程设计说明书 } }进入游戏之后能对游戏的难度进行选择,难度分为三种,分别为简单,较难,困难,简单为单一花色的纸牌进行游戏,而较难和困难的纸牌花色相应的增多。
在设计时首先在SpiderMenuBar类中,将三种难度的菜单实现,然后通过调用PKcard的方法实现各难度的功能,如图11,12所示。
}else{ }point=newPoint(point);+=20;(point);-=20;(());(point);((),card);=(); 沈阳大学课程设计说明书 图11难度选择图12选择困难
沈阳大学课程设计说明书 通过如下代码实现:
实现菜单分成三种难度:
JRadioButtonMenuItemjRMItemEasy=newJRadioButtonMenuItem(\简单\ JRadioButtonMenuItemjRMItemNormal=newJRadioButtonMenuItem(\较难\JRadioButtonMenuItemjRMItemHard=newJRadioButtonMenuItem(\困难\(new(){ publicvoidactionPerformed(e){ (); (); (); }}分别对菜单进行事件监听,若选中相应的难度登记则触发Spider类中的方法进行实现:
(new(){ publicvoidactionPerformed(e){ (); (); (); }}(new(){ publicvoidactionPerformed(e){ ();(); (); } 沈阳大学课程设计说明书 }(new(){ publicvoidmenuSelected(e){ if(() 沈阳大学课程设计说明书 使用如下代码实现:
(new(){ publicvoidactionPerformed(e){ (); (0); } }4.设计体会通过本次课程设计,我学会了很多东西,在课堂上学习的知识是理论的,平时没有多少机会去实践,平时觉得自己JAVA学得还不错但真到想用它实现点什么的时候却又觉得好多地方不知道如何下手。
我的这个程序设计是以蜘蛛纸牌游戏作为基础,对其中很多地方进行了修改,原来游戏只有2个难度,我在原来的基础上对游戏进行修改增加了一个难度,也增加了游戏的可玩性。
在课程设计中我首先是对事件监听的进一步了解,在JAVA程序设计中,事件的处理是非常重要的,尤其是在需要自定义事件和设计JavaBean时.对事件的处理过程有一个完整的认识对于编程是很有帮助的。
如果想要自定义一个事件,则必须提供一个事件的监听接口以及一个事件类。
在JAVA中,事件类继承很多基本的事件在编程环境中都已经提供可以很方便使用,但是在自定义事件中必须要要了解这些。
还有触发事件的学习,这次设计中我对触发事件也有了一定的了解,以前没真正了解为什么在菜单中点一个功能,就能实现呢。
通过自己动手做,我真正了解了其原因。
可以这样用:
你可以给大菜单一个BOOLbL变量,再给要选择的小菜单一个BOOLbs变量,如果bl==TRUE&&bs==TRUE,那就是点击了,如果bl==TRUE&&bs==FALSE,就是没有点击。
这次设计使我对游戏的开发产生了浓厚的兴趣,以前只知道书本上的知识,通过至此设计我查了不少的资料获益匪浅!
沈阳大学课程设计说明书 5.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 扑克 游戏