java代码完成一个游戏,生成一个点击的页面,页面有36个矩形的格子。在游戏开始时,随机生成18对不同的动物在格子中,需要显示格子中动物的名称进行区别。只有点击两只名称相同的动物的格子时,才能进行消除,并在格子里删除点击的动物名称。当所有的动物全部消除时,结束游戏并提示重新开始新的游戏。
时间: 2023-07-16 08:16:25 浏览: 96
一个用java写的小游戏
5星 · 资源好评率100%
以下是一个简单的 Java 代码实现,可以生成一个包含36个矩形格子的页面,并在其中随机生成18对不同的动物名称。
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class AnimalGame extends JFrame implements ActionListener {
private JButton[] buttons;
private String[] animalNames = {"熊猫", "老虎", "长颈鹿", "袋鼠", "大象", "狮子", "鸟", "蛇", "猴子", "企鹅", "海豚", "鲨鱼", "鳄鱼", "鹿", "狗", "猫", "兔子", "青蛙"};
private int[] indices = new int[36];
private String firstAnimal = "";
private int firstIndex = -1;
public AnimalGame() {
setTitle("动物连连看");
setSize(600, 600);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel = new JPanel(new GridLayout(6, 6));
buttons = new JButton[36];
for (int i = 0; i < 36; i++) {
buttons[i] = new JButton("");
buttons[i].setActionCommand(String.valueOf(i));
buttons[i].addActionListener(this);
panel.add(buttons[i]);
}
add(panel);
}
public void startGame() {
// 随机生成18对不同的动物名称
for (int i = 0; i < 18; i++) {
int index1, index2;
do {
index1 = (int)(Math.random() * 36);
index2 = (int)(Math.random() * 36);
} while (indices[index1] != 0 || indices[index2] != 0 || index1 == index2);
indices[index1] = indices[index2] = i + 1;
}
// 将动物名称显示在按钮上
for (int i = 0; i < 36; i++) {
buttons[i].setText(animalNames[indices[i]-1]);
}
}
public void actionPerformed(ActionEvent e) {
int index = Integer.parseInt(e.getActionCommand());
String animal = animalNames[indices[index]-1];
if (firstIndex == -1) {
firstAnimal = animal;
firstIndex = index;
buttons[index].setEnabled(false);
} else {
if (animal.equals(firstAnimal)) {
buttons[firstIndex].setVisible(false);
buttons[index].setVisible(false);
indices[firstIndex] = 0;
indices[index] = 0;
} else {
buttons[firstIndex].setEnabled(true);
}
firstIndex = -1;
}
boolean gameOver = true;
for (int i = 0; i < 36; i++) {
if (indices[i] != 0) {
gameOver = false;
break;
}
}
if (gameOver) {
JOptionPane.showMessageDialog(this, "恭喜您,游戏结束!");
startGame();
}
}
public static void main(String[] args) {
AnimalGame game = new AnimalGame();
game.setVisible(true);
game.startGame();
}
}
```
在 `main` 方法中创建一个 `AnimalGame` 对象,设置可见性并开始游戏。在 `AnimalGame` 类中,首先创建一个包含36个按钮的面板,并随机生成18对不同的动物名称。每个按钮都绑定了一个 `ActionListener`,在点击时会执行 `actionPerformed` 方法。在该方法中,首先获取点击的按钮所对应的动物名称,然后根据是否是第一次点击分别进行处理。如果是第一次点击,记录下该动物名称和按钮的索引,并将该按钮禁用;如果是第二次点击,判断该动物名称是否与第一次点击的相同。如果相同,将两个按钮隐藏并将它们对应的索引设置为0;如果不同,将第一个按钮重新启用。最后,检查是否所有的动物都已经消除,如果是则弹出提示并开始新的游戏。
阅读全文