Java编写一个图形界面程序实现在100以内的数据的猜数游戏,给予5次猜数的机会。猜的过程中给予是“大了”还是“小了”的提示
时间: 2024-02-18 09:05:00 浏览: 82
java编写的猜数游戏
好的,我可以帮你解答这个问题。这里我提供一个Java的图形界面库Swing来实现这个游戏。
首先,我们需要生成一个100以内的随机数作为答案。可以使用Java内置的Math.random()函数实现:
```java
int answer = (int) (Math.random() * 100) + 1;
```
接下来,我们需要使用Swing创建一个窗口,并添加游戏所需的组件:
```java
import javax.swing.*;
public class GuessNumberGame extends JFrame {
private JLabel label;
private JTextField textField;
private JButton button;
private JLabel resultLabel;
public GuessNumberGame() {
// 设置窗口标题
super("猜数游戏");
// 添加标签、文本框和按钮组件
label = new JLabel("请猜一个1到100之间的整数:");
textField = new JTextField(10);
button = new JButton("确定");
resultLabel = new JLabel();
JPanel panel = new JPanel();
panel.add(label);
panel.add(textField);
panel.add(button);
panel.add(resultLabel);
add(panel);
// 设置窗口大小并居中显示
setSize(400, 100);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new GuessNumberGame();
}
}
```
然后,我们需要实现猜数的逻辑。可以使用一个变量来记录已经猜了几次,如果猜的数和答案相同,就提示用户猜对了,否则根据大小关系提示用户“大了”或者“小了”。
```java
public class GuessNumberGame extends JFrame {
// ...
private int guessTimes = 0;
private int answer = (int) (Math.random() * 100) + 1;
public GuessNumberGame() {
// ...
// 绑定按钮的点击事件
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
guessNumber();
}
});
}
private void guessNumber() {
guessTimes++;
// 获取用户输入的猜测值
String text = textField.getText();
int guess = Integer.parseInt(text);
if (guess == answer) {
resultLabel.setText("恭喜你,猜对了!");
} else if (guess < answer) {
resultLabel.setText("你猜的数太小了!");
} else {
resultLabel.setText("你猜的数太大了!");
}
// 显示提示信息
if (guessTimes == 5 || guess == answer) {
button.setEnabled(false);
textField.setEnabled(false);
}
}
}
```
完整的代码如下:
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GuessNumberGame extends JFrame {
private JLabel label;
private JTextField textField;
private JButton button;
private JLabel resultLabel;
private int guessTimes = 0;
private int answer = (int) (Math.random() * 100) + 1;
public GuessNumberGame() {
// 设置窗口标题
super("猜数游戏");
// 添加标签、文本框和按钮组件
label = new JLabel("请猜一个1到100之间的整数:");
textField = new JTextField(10);
button = new JButton("确定");
resultLabel = new JLabel();
JPanel panel = new JPanel();
panel.add(label);
panel.add(textField);
panel.add(button);
panel.add(resultLabel);
add(panel);
// 绑定按钮的点击事件
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
guessNumber();
}
});
// 设置窗口大小并居中显示
setSize(400, 100);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private void guessNumber() {
guessTimes++;
// 获取用户输入的猜测值
String text = textField.getText();
int guess = Integer.parseInt(text);
if (guess == answer) {
resultLabel.setText("恭喜你,猜对了!");
} else if (guess < answer) {
resultLabel.setText("你猜的数太小了!");
} else {
resultLabel.setText("你猜的数太大了!");
}
// 显示提示信息
if (guessTimes == 5 || guess == answer) {
button.setEnabled(false);
textField.setEnabled(false);
}
}
public static void main(String[] args) {
new GuessNumberGame();
}
}
```
阅读全文