java实战之连连看游戏源码(完整版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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("0"); // 分数标签
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])+".gif"));
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;
}