【连连看】小游戏初始源代码.docx

上传人:大张伟 文档编号:6201741 上传时间:2020-09-23 格式:DOCX 页数:8 大小:46.69KB
返回 下载 相关 举报
【连连看】小游戏初始源代码.docx_第1页
第1页 / 共8页
【连连看】小游戏初始源代码.docx_第2页
第2页 / 共8页
【连连看】小游戏初始源代码.docx_第3页
第3页 / 共8页
【连连看】小游戏初始源代码.docx_第4页
第4页 / 共8页
【连连看】小游戏初始源代码.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《【连连看】小游戏初始源代码.docx》由会员分享,可在线阅读,更多相关《【连连看】小游戏初始源代码.docx(8页珍藏版)》请在三一文库上搜索。

1、.【连连看】简单小游戏初始源代码使用说明:进入Java开发工具eclipse 中,在左面建立一个任意名的java project, 然后在工程下建立一个名字为Lianliankan 的 package,最后建立一个名字为lianliankan 的 class 类。将以下程序代码复制入class 内容面板中,点击运行。package Lianliankan;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class lianliankan implements ActionListenerJFrame m

2、ainFrame; / 主面板Container thisContainer;JPanel centerPanel,southPanel,northPanel; / 子面板JButton diamondsButton = new JButton65;/游戏按钮数组JButton exitButton,resetButton,newlyButton; /退出,重列,重新开始按钮JLabel fractionLable=new JLabel(0); / 分数标签JButton firstButton,secondButton; /分别记录两次被选中的按钮int grid = new int87;/

3、储存游戏按钮位置static boolean pressInformation=false; /判断是否有按钮被选中int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; / 游戏按钮的位置坐标int i,j,k,n;/ 消除方法控制public void init()mainFrame=new JFrame(JKJ连连看 );thisContainer = mainFrame.getContentPane();thisContainer.setLayout(new BorderLayout();centerPanel=new JPan

4、el();southPanel=new JPanel();northPanel=new JPanel();thisContainer.add(centerPanel,Center);thisContainer.add(southPanel,South);thisContainer.add(northPanel,North);centerPanel.setLayout(new GridLayout(6,5);for(int cols = 0;cols 6;cols+)for(int rows = 0;rows 5;rows+ )diamondsButtoncolsrows=new JButton

5、(String.valueOf(gridcols+1rows+1); diamondsButtoncolsrows.addActionListener(this); centerPanel.add(diamondsButtoncolsrows);exitButton=new JButton( 退出 );exitButton.addActionListener(this);resetButton=new JButton( 重列 );resetButton.addActionListener(this);newlyButton=new JButton( 再来一局 );.newlyButton.ad

6、dActionListener(this);southPanel.add(exitButton);southPanel.add(resetButton);southPanel.add(newlyButton);fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText();northPanel.add(fractionLable);mainFrame.setBounds(280,100,500,450);mainFrame.setVisible(true);public void randomBuild

7、() int randoms,cols,rows;for(int twins=1;twins=15;twins+) randoms=(int)(Math.random()*25+1);for(int alike=1;alike=2;alike+) cols=(int)(Math.random()*6+1);rows=(int)(Math.random()*5+1);while(gridcolsrows!=0) cols=(int)(Math.random()*6+1);rows=(int)(Math.random()*5+1);this.gridcolsrows=randoms;public

8、void fraction()fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText()+100);public void reload() int save = new int30;int n=0,cols,rows;int grid= new int87;for(int i=0;i=6;i+) for(int j=0;j=0) cols=(int)(Math.random()*6+1);rows=(int)(Math.random()*5+1);.while(gridcolsrows!=0) c

9、ols=(int)(Math.random()*6+1);rows=(int)(Math.random()*5+1);this.gridcolsrows=saven;n-;mainFrame.setVisible(false);pressInformation=false; / 这里一定要将按钮点击信息归为初始 init();for(int i = 0;i 6;i+)for(int j = 0;j 5;j+ )if(gridi+1j+1=0)diamondsButtonij.setVisible(false);public void estimateEven(int placeX,int pl

10、aceY ,JButton bz) if(pressInformation=false) x=placeX;y=placeY;secondMsg=gridxy;secondButton=bz;pressInformation=true;else x0=x;y0=y;fristMsg=secondMsg;firstButton=secondButton;x=placeX;y=placeY;secondMsg=gridxy;secondButton=bz;if(fristMsg=secondMsg & secondButton!=firstButton)xiao();public void xia

11、o() / 相同的情况下能不能消去。仔细分析,不一条条注释if(x0=x &(y0=y+1|y0=y-1) | (x0=x+1|x0=x-1)&(y0=y) / 判断是否相邻 remove();else.for (j=0;jj) / 如果第二个按钮的 Y 坐标大于空按钮的 Y 坐标说明第一按钮在第二按钮左边 for (i=y-1;i=j;i- ) / 判断第二按钮左侧直到第一按钮中间有没有按钮if (gridxi!=0) k=0;break;else k=1; /K=1 说明通过了第一次验证if (k=1) linePassOne();if (yj) / 如果第二个按钮的 Y 坐标小于空按钮的

12、 Y 坐标说明第一按钮在第二按钮右边 for (i=y+1;i=j ;i+ ) / 判断第二按钮左侧直到第一按钮中间有没有按钮 if (gridxi!=0)k=0;break;else k=1; if (k=1)linePassOne();if (y=j ) linePassOne();if (k=2) if (x0=x) remove();if (x0x) for (n=x0;nx) for (n=x0;n=x+1 ;n- ) if (gridnj!=0) k=0;break;if(gridnj=0 & n=x+1) remove();for (i=0;ii) for (j=x-1;j=i

13、;j- ) if (gridjy!=0) k=0;break;else k=1; if (k=1) rowPassOne();if (xi) for (j=x+1;j=i;j+ ) if (gridjy!=0) k=0;break;else k=1; if (k=1) rowPassOne();if (x=i) rowPassOne();.if (k=2)if (y0=y) remove();if (y0y) for (n=y0;ny) for (n=y0;n=y+1 ;n-) if (gridin!=0) k=0;break;if(gridin=0 & n=y+1) remove();pub

14、lic void linePassOne()if (y0j) / 第一按钮同行空按钮在左边for (i=y0-1;i=j ;i- ) / 判断第一按钮同左侧空按钮之间有没按钮 if (gridx0i!=0) k=0;break;else k=2; /K=2 说明通过了第二次验证if (y0j) / 第一按钮同行空按钮在与第二按钮之间for (i=y0+1;ii) for (j=x0-1;j=i ;j- ) if (gridjy0!=0) k=0;break;else k=2; if (x0i) for (j=x0+1;j=i ;j+ ) if (gridjy0!=0) k=0;break;el

15、se k=2; public void remove()firstButton.setVisible(false);secondButton.setVisible(false);fraction();pressInformation=false;k=0;gridx0y0=0;gridxy=0;public void actionPerformed(ActionEvent e) if(e.getSource()=newlyButton)int grid = new int87;this.grid = grid;randomBuild();mainFrame.setVisible(false);p

16、ressInformation=false;init();.if(e.getSource()=exitButton)System.exit(0);if(e.getSource()=resetButton)reload();for(int cols = 0;cols 6;cols+)for(int rows = 0;rows 5;rows+ )if(e.getSource()=diamondsButtoncolsrows)estimateEven(cols+1,rows+1,diamondsButtoncolsrows);public static void main(String args) lianliankan llk = new lianliankan();llk.randomBuild();llk.init();.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1