Java对对碰游戏
时间: 2023-07-01 09:05:15 浏览: 52
Java对对碰游戏可以使用Swing或JavaFX进行开发。以下是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MatchGame extends JFrame implements ActionListener {
private JButton[] buttons = new JButton[16];
private int[] buttonValues = new int[16];
private int counter = 0;
private int firstButtonIndex = -1;
private int secondButtonIndex = -1;
private int pairsFound = 0;
public MatchGame() {
super("Match Game");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(4, 4));
initButtons();
setVisible(true);
}
public void initButtons() {
for (int i = 0; i < 16; i++) {
buttons[i] = new JButton();
buttons[i].addActionListener(this);
add(buttons[i]);
}
initButtonValues();
}
public void initButtonValues() {
int[] values = new int[8];
for (int i = 0; i < 8; i++) {
values[i] = i + 1;
}
for (int i = 0; i < 16; i++) {
if (buttonValues[i] == 0) {
int index = (int) (Math.random() * 8);
if (values[index] == 0) {
i--;
} else {
buttonValues[i] = values[index];
values[index] = 0;
}
}
}
}
public void actionPerformed(ActionEvent e) {
counter++;
JButton button = (JButton) e.getSource();
int index = getButtonIndex(button);
button.setText(Integer.toString(buttonValues[index]));
if (counter % 2 != 0) {
firstButtonIndex = index;
} else {
secondButtonIndex = index;
checkPair();
}
}
public int getButtonIndex(JButton button) {
for (int i = 0; i < 16; i++) {
if (buttons[i] == button) {
return i;
}
}
return -1;
}
public void checkPair() {
if (buttonValues[firstButtonIndex] == buttonValues[secondButtonIndex]) {
buttons[firstButtonIndex].setEnabled(false);
buttons[secondButtonIndex].setEnabled(false);
pairsFound++;
if (pairsFound == 8) {
JOptionPane.showMessageDialog(this, "Congratulations! You won!");
System.exit(0);
}
} else {
buttons[firstButtonIndex].setText("");
buttons[secondButtonIndex].setText("");
}
}
public static void main(String[] args) {
new MatchGame();
}
}
```
这个对对碰游戏使用了一个16个按钮的4x4网格来显示牌。每个按钮都有一个数字,玩家需要翻转两个相同的数字的按钮,以找到所有的配对。如果找到了一个配对,这两个按钮将被禁用,否则它们将被翻转回去。游戏将在找到所有的配对时结束。