编写一个图形界面程序实现在100以内的数据的猜数游戏,给予5次猜的机会。猜的过程中给予是“大了”还是“小了”的提示。
时间: 2024-02-21 17:01:19 浏览: 78
好的,我可以为您提供一个简单的 Java 图形界面程序,实现在 100 以内的数据的猜数游戏,给予 5 次猜的机会,猜的过程中给予是“大了”还是“小了”的提示。以下是代码实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class GuessingGameGUI extends JFrame implements ActionListener {
private JTextField textField;
private JButton button;
private JLabel label1, label2;
private int secretNumber, numGuesses;
public GuessingGameGUI() {
// 设置窗口标题和大小
setTitle("猜数字游戏");
setSize(400, 200);
// 设置布局和组件
setLayout(new GridLayout(3, 2));
label1 = new JLabel("我想了一个1-100之间的数字。你有5次机会猜对它。");
add(label1);
label2 = new JLabel("");
add(label2);
textField = new JTextField();
textField.addActionListener(this);
add(textField);
button = new JButton("猜");
button.addActionListener(this);
add(button);
// 生成1-100之间的随机数
Random random = new Random();
secretNumber = random.nextInt(100) + 1;
numGuesses = 0;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == textField || e.getSource() == button) {
int guess = Integer.parseInt(textField.getText());
numGuesses++;
if (guess == secretNumber) {
label2.setText("恭喜你,猜对了!");
button.setEnabled(false);
textField.setEnabled(false);
} else if (guess < secretNumber) {
label2.setText("你猜的数字太小了。");
} else {
label2.setText("你猜的数字太大了。");
}
if (numGuesses == 5 && guess != secretNumber) {
label2.setText("很遗憾,你没有猜对。正确答案是:" + secretNumber);
button.setEnabled(false);
textField.setEnabled(false);
}
textField.setText("");
}
}
public static void main(String[] args) {
GuessingGameGUI game = new GuessingGameGUI();
game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
game.setVisible(true);
}
}
```
这个程序使用了 Java 的 Swing 组件库来实现图形界面。程序会生成一个 1-100 之间的随机数,然后让用户有 5 次机会猜测这个数字。程序的界面上有一个文本框和一个按钮,用户可以在文本框中输入猜测的数字,也可以点击按钮进行猜测。每次猜测后,程序会告诉用户猜的数字是太大还是太小,并继续循环直到用户猜对或者猜错次数达到 5 次为止。如果用户猜错了 5 次,程序会输出正确答案并禁用按钮和文本框。
阅读全文