Java对对碰游戏
时间: 2023-07-01 18:05:15 浏览: 56
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网格来显示牌。每个按钮都有一个数字,玩家需要翻转两个相同的数字的按钮,以找到所有的配对。如果找到了一个配对,这两个按钮将被禁用,否则它们将被翻转回去。游戏将在找到所有的配对时结束。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)