java实战之连连看游戏源码(完整版) 联系客服

发布时间 : 星期三 文章java实战之连连看游戏源码(完整版)更新完毕开始阅读38d8258471fe910ef12df8b2

import javax.swing.*; import java.awt.*;

import java.awt.event.*;

public class lianliankan implements ActionListener {

JFrame mainFrame; // 主面板

JPanel centerPanel,saidPanel; // 子面板

JButton diamondsButton[][] = new JButton[10][10];// 游戏按钮数组 JButton firstButton, secondButton; // 分别记录两次被选中的按钮

JButton backButton, remarkButton, newlyButton, startButton;// 返回,重列,重新,开始|暂停按钮

JLabel lable1 = new JLabel(\分数:\

JLabel lable2 = new JLabel(\分数标签 int grid[][] = new int[12][12];

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 AddGif() {

for (int cols = 0; cols < 10; cols++) {

for (int rows = 0; rows < 10; rows++) {

diamondsButton[cols][rows] = new JButton(new ImageIcon(String.valueOf(grid[cols + 1][rows + 1])+\ diamondsButton[cols][rows].addActionListener(this); centerPanel.add(diamondsButton[cols][rows]); } } }

public void create() {

mainFrame = new JFrame(\连连看\ mainFrame.setLayout(null); centerPanel = new JPanel(); saidPanel = new JPanel(); saidPanel.setLayout(null);

saidPanel.setBackground(Color.yellow);

centerPanel.setLayout(new GridLayout(10,10)); //10*10的网格布局

AddGif();

backButton = new JButton(\返回\ backButton.addActionListener(this); remarkButton = new JButton(\重列\ remarkButton.addActionListener(this); newlyButton = new JButton(\重新开始\ newlyButton.addActionListener(this);

mainFrame.setBounds(100, 100, 750, 550); mainFrame.add(centerPanel); saidPanel.add(lable1); saidPanel.add(lable2); mainFrame.add(saidPanel); saidPanel.add(remarkButton); saidPanel.add(newlyButton);

remarkButton.setBounds(100,100,90,30); newlyButton.setBounds(100,150,90,30); saidPanel.setBounds(470,0,270,530); lable1.setBounds(100,50,70,50); lable2.setBounds(170,50,100,50);

centerPanel.setBounds(50,50,370,410); mainFrame.setVisible(true);

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }

public void randomBuild() {

int randoms, cols, rows;

for (int twins = 1; twins <= 25; twins++) {//一共15对button,30个

randoms = (int) (Math.random() * 25 + 1);//button上的数字 for (int alike = 1; alike <= 4; alike++) {

cols = (int) (Math.random() * 10 + 1); rows = (int) (Math.random() * 10 + 1);

while (grid[cols][rows] != 0) //等于0说明这个空格有了button {

cols = (int) (Math.random() * 10 + 1); rows = (int) (Math.random() * 10 + 1); }

this.grid[cols][rows] = randoms; }

} }

public void reload() {

int save[] = new int[100]; int n = 0, cols, rows;

int grid[][] = new int[12][12]; for (int i = 0; i <= 10; i++) {

for (int j = 0; j <= 10; j++) {

if (this.grid[i][j] != 0) {

save[n] = this.grid[i][j];//记下每个button的数字 n++;//有几个没有消去的button } } }

n = n - 1;

this.grid = grid; while (n >= 0)

{//把没有消去的button重新放一次

cols = (int) (Math.random() * 10 + 1); rows = (int) (Math.random() * 10 + 1); while (grid[cols][rows] != 0) {

cols = (int) (Math.random() * 10 + 1); rows = (int) (Math.random() * 10 + 1); }

this.grid[cols][rows] = save[n]; n--; }

mainFrame.setVisible(false);

pressInformation = false; // 这里一定要将按钮点击信息归为初始 create();

for (int i = 0; i < 10; i++) {

for (int j = 0; j < 10; j++) {

if (grid[i + 1][j + 1] == 0)

diamondsButton[i][j].setVisible(false); }

} }

public void estimateEven(int placeX, int placeY, JButton bz) {

if (pressInformation == false) {

x = placeX; y = placeY;

secondMsg = grid[x][y]; secondButton = bz;

pressInformation = true; } else {

x0 = x; y0 = y;

fristMsg = secondMsg;

firstButton = secondButton; x = placeX; y = placeY;

secondMsg = grid[x][y]; secondButton = bz;

if (fristMsg == secondMsg && secondButton != firstButton) {

xiao(); } } }

public void fraction()

{ //分数加100

lable2.setText(String.valueOf(Integer.parseInt(lable2.getText()) + 100)); }

public 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 < 12; j++) {

if (grid[x0][j] == 0) { // 判断和第一个按钮同行的哪个按钮为空

//如果找到一个为空的,就按列值的三种情况比较第二个按钮与空按钮的位置