《JAVA课程设计—连连看最终版要点.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计—连连看最终版要点.docx(23页珍藏版)》请在优知文库上搜索。
1、JAVA课程设计报告试验题目:“连连看”嬉戏程序设计小组成员:王飞铭、毛建平、陈银银、黄庭威成员分工:组长:王飞铭王飞铭:actIonPerformed():重来一局按钮的响应事务及remove()推断移去方法毛建平:xia。()消去方法、estimateEven()方法陈银银:init()方法:嬉戏主界面和main()方法实现黄庭威:randomBuild()产生随机数方法、fraction()刷新方法(一):内容:1:功能需求和分析:(1)该嬉戏界面为:数字方格类型,由6竖7横的直线平行垂直交叉而组成,分别是6行5列网方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要求是至少两两
2、相同,位置随机打乱。(2)嬉戏规则是:将相同数字的方块连接,但要满意只能至少单边无阻碍呈直线趋势连接,否则视为无效,假如一对数字连接胜利,那么就会消逝在界面,并且分数标签会加分,接着嬉戏,直到嬉戏结束。(3)帮助项目:在嬉戏过程中,假如出现没有可以连接的数字对时候,可按界面下方按钮刷新重新排列,便可以可接着嬉戏。(4)退出嬉戏:可以鼠标点击“退出”按钮,结束嬉戏。(5)再来一局:本局结束或者中途不想接着玩本局,可以点击界面下方的再来一局,系统会自动再次重新起先。(二):主要方法:首先我们定义了一个Iianliankan类,实现了接口Action1.istener:1) init()方法:实现嬉
3、戏主界面;2) randomBuild()方法:用来产生嬉戏按钮上的随机数;3) fraction)方法:嬉戏界面最上面用来加分;4) reload()方法:用来刷新,重载,窗体界面:5) estimateEven()方法:推断按钮数字是否满意消去的条件IinePaSSOne()方法:推断第一按钮同左右侧空按钮之间rowPassOne()方法:推断第一按钮同列空按钮与其次按钮;6) actionPerformed(ActionEvente)方法:用来实现重来一局按钮的响应事务:7) main(Stringargs)方法:主函数;8) xia。()方法:消去方法(三):界面要求:用图形界面实现,
4、参考下国数字版连连看-O151137181371271677232231815161472020314182181312再来一局系统流程图如下(四):代码设计package数字版;/*本嬉戏是连连看,上面出现的都是数字,点击两个相邻的或者之间没有第三个的,便可以消去假如不能消退完,便可以按重列,这样会把剩余的重新排列。便可以接着玩了,或者您可以按重置,重新再来一局!”!*/importjavax.swing.*;/调用图形界面类布局importjava.awt.*;importjava.awt.event.*;publicclassIianliankanimplementsAction1.is
5、tener继承一个监听器JFramemainFrame;/嬉戏主面板用布局管理器ContainerthisContainer;/一个容器JPanelCenterPanelzSouthPanel,northPanel;子面板JButtondiamondsBtton=newJButton65;/嬉戏按钮数组JButtonexitButtonzresetButton,newlyButton;退出,重列,重新起先按钮J1.abelfraction1.able=newJ1.abel(0,);分数标签显示您玩嬉戏得了多少分!”!)JButtonfirstButtonzSecondButton;/分别记录两
6、次被选中的按钮intgrid=newint87;/储存嬉戏按钮位置staticbooleanpresslnformation=false;推断是否有按钮被选中intxO=O,yO=O,x=0,y=0,EristMsg=O,SecondMsg=O,validate1.V;嬉戏按钮的位置坐标inti,j,k,n;/消退方法限制publicvoidinit()mainFrame=newJFrame(数字版连连看”);thisContainer=mainFrame.getContentPane();thisContainer.Set1.ayout(newBorder1.ayout();/set1.ay
7、out()设置用户界面上的屏幕组件的格式布局,是java图形界面编程的常用方法。此处是方位布局centerPanel=newJPanel();中间部分(用来放嬉戏显示内容southPanel=newJPanel();下面部分(用来放退出,重列,重新起先按钮)northPanel=newJPanel();上面部分(用来记录得分状况)centerpanel.SetBackground(newColor(145,145,44);灰色northPanel.SetBackground(newColor(245,252,252)颜色redthisContainer.add(centerPanel,Cent
8、er);thisContainer.add(southpanel,South);thisContainer.add(northPanelzNorth1);centerPanel.Set1.ayout(nevGrid1.ayout(6,5);/设置嬉戏图标for(intcols=O;cols6;cols+)for(introws=O;rows5;rovzs+)CiiamondsButtoncolsrows=newJButton(String.valuef(gridcols+1rows+l);/换下一行diamondsBttoncols(rows.SetBackground(newColor(19
9、9,190,33);颜色diamondsButtoncols(rows.setFont(newjava.awt.Font(JXlIz1,22);diamondsButtoncols(rows.SetBorder(BorderFactory.Create1.oweredBevelBorder();diamondsButtoncolsrows.addAction1.istener(this);CenterPanel.add(diamondsButtoncolsrows);exitButton=newJButton(,i);exitButton.setFont(newjava.awt.Font(,体
10、,1,16);exitButton.SetPreferredSize(newDimension(55,30);exitButton.SetBorder(BorderFactory.CreateRaisedBevelBorder();exitButton.SetBackground(newColor(25,155,100);/颜色绿色exitButton.addAction1.istener(this);resetButton=newJBUtton(刷新);resetButton.setFont(newjava.awt.Font(黑体,1,16);resetButton.SetPreferred
11、Size(newDimension(55,30);resetButton.SetBorder(BorderFactory-CreateRaisedBevelBorder();resetButton.SetBackground(newColor(77,175z100);蓝色resetButton.SddAction1.istener(this);newlyButton=newJBUtton(再来一局);newlyButton.setFont(newjava.av/t.Font(黑体”,1,16);newlyButton.SetPreferredSize(newDimension(100,33);
12、newlyButton.SetBorder(BorderFactory.createRaisedBevelBorder();newlyButton.SetBackground(newCOsr(255,192,203);粉色newlyButton.addAction1.istener(this);/添力口了监听器!当点击时候,用那个来通知SouthPanel.addCexitButton);SOuthPanel.add(resetButton);SouthPanel.add(newlyButton);fraction1.able.setText(String.valuef(Integer.par
13、selnt(fraction1.able.getText();用来计算得分数,不断改变northPanel.add(fraction1.able);InainFrame.SetBounds(300z100z500z450);mainFrame.SetVisible(true);)publicvoidrandomBuild()产生随机数intrandoms,cols,rows;for(inttwins=l;twins=15;twins+)randoms=(int)(Math.random()*25+1);for(intalike=l;alike=2;alike+)cols=(int)(Math.
14、random()*6+1);rows=(int)(Math.random()*5+1);while(gridcolsrows!=0)cols=(int)(Math.random()*61);rows=(int)(Math.random()*5+1);this.grid(colsrows)=randoms;)publicvoidfraction()fraction1.able.SetText(String.valuef(Integer.parselnt(fraction1.able.getText()+100);publicvoidreload()intsave=newint30;intn=0zcols,rows;intgrid()=newint87);/双重循环,愉出二维数组!!for(inti=0;i=;i+)for(intj=0;j=0)cols=(int)(Math.rando