java基于swing实现的连连看代码.doc

上传人:rrsccc 文档编号:8837330 上传时间:2021-01-19 格式:DOC 页数:9 大小:59.50KB
返回 下载 相关 举报
java基于swing实现的连连看代码.doc_第1页
第1页 / 共9页
java基于swing实现的连连看代码.doc_第2页
第2页 / 共9页
java基于swing实现的连连看代码.doc_第3页
第3页 / 共9页
java基于swing实现的连连看代码.doc_第4页
第4页 / 共9页
java基于swing实现的连连看代码.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《java基于swing实现的连连看代码.doc》由会员分享,可在线阅读,更多相关《java基于swing实现的连连看代码.doc(9页珍藏版)》请在三一文库上搜索。

1、java基于swing实现的连连看代码这篇文章主要介绍了java基于swing实现的连连看代码,包含了游戏中涉及的事件处理与逻辑功能,需要的朋友可以参考下本文实例讲述了java基于swing实现连连看代码。分享给大家供大家参考。 主要功能代码如下: 复制代码 代码如下: package llkan; import javax.swing.*; import java.awt.*; import java.awt.event.*; /* * 连连看游戏 * author Administrator *2014年10月17日 */ public class MainGame implements

2、ActionListener JFrame mainFrame; / 主面板 Container thisContainer; JPanel centerPanel, southPanel, northPanel; / 子面板 JButton diamondsButton = new JButton65;/ 游戏按钮数组 JButton exitButton, resetButton, newlyButton; / 退出,重列,重新开始按钮 JLabel fractionLable = new JLabel(0); / 分数标签 JButton firstButton, secondButto

3、n; / 分别记录两次被选中的按钮 int grid = new int87;/ 储存游戏按钮位置 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(连连看游戏); thisContainer = mainFrame.getConten

4、tPane(); thisContainer.setLayout(new BorderLayout(); centerPanel = new JPanel(); 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 (

5、int cols = 0; cols 6; cols+) for (int rows = 0; rows 5; rows+) diamondsButtoncolsrows = new JButton( String.valueOf(gridcols + 1rows + 1); diamondsButtoncolsrows.addActionListener(this); centerPanel.add(diamondsButtoncolsrows); exitButton = new JButton(退出); exitButton.addActionListener(this); resetB

6、utton = new JButton(重列); resetButton.addActionListener(this); newlyButton = new JButton(再来一局); newlyButton.addActionListener(this); southPanel.add(exitButton); southPanel.add(resetButton); southPanel.add(newlyButton); fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable .getText(); no

7、rthPanel.add(fractionLable); mainFrame.setBounds(280, 100, 500, 450); mainFrame.setVisible(true); public void randomBuild() 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() *

8、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 void fraction() fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable .getText() + 100); public void r

9、eload() 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) cols = (int) (Math.random() * 6 + 1); rows = (int) (Math.random() * 5 + 1

10、); 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 placeY, JButton bz) if (pressInfo

11、rmation = false) x = placeX; y = placeY; secondMsg = gridxy; secondButton = bz; pressInformation = true; else x0 = x; y0 = y; fristMsg = secondMsg; firstButton = Button; x = placeX; y = placeY; secondMsg = gridxy; secondButton = bz; if (fristMsg = secondMsg & secondButton != firstButton) xiao(); pub

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

13、了第一次验证 if (k = 1) linePassOne(); if (y j) / 如果第二个按钮的Y坐标小于空按钮的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 (x0 x) for (n = x0; n x) for (n = x0; n

14、= x + 1; n-) if (gridnj != 0) k = 0; break; if (gridnj = 0 & n = x + 1) remove(); for (i = 0; i i) for (j = x - 1; j = i; j-) if (gridjy != 0) k = 0; break; else k = 1; if (k = 1) rowPassOne(); if (x i) for (j = x + 1; j = i; j+) if (gridjy != 0) k = 0; break; else k = 1; if (k = 1) rowPassOne(); if

15、 (x = i) rowPassOne(); if (k = 2) if (y0 = y) remove(); if (y0 y) for (n = y0; n y) for (n = y0; n = y + 1; n-) if (gridin != 0) k = 0; break; if (gridin = 0 & n = y + 1) remove(); public void linePassOne() if (y0 j) / 第一按钮同行空按钮在左边 for (i = y0 - 1; i = j; i-) / 判断第一按钮同左侧空按钮之间有没按钮 if (gridx0i != 0) k = 0; break; else k = 2; / K=2说明通过了第二次验证 if (y0 j) / 第一按钮同行空按钮在与第二按钮之间 for (i = y0 + 1; i =

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

当前位置:首页 > 社会民生


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