产生一个随机数,有用户猜(输入数字),猜中胜,记录花费的时间和猜的次数。猜错提示猜大了还是小了,再继续猜,直到猜对为止。使用Java并且图形化
时间: 2024-02-28 19:56:15 浏览: 60
好的,我来帮你实现这个程序。首先,我们需要创建一个图形化界面,让用户可以输入猜测的数字。我们可以使用Java Swing来创建界面。
下面是代码实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class GuessNumberGame extends JFrame implements ActionListener {
private final JLabel label1, label2, label3;
private final JTextField textField;
private final JButton button;
private int randomNumber;
private int guessCount;
private final long startTime;
public GuessNumberGame() {
setTitle("Guess Number Game");
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
label1 = new JLabel("I'm thinking of a number between 1 and 100...");
label2 = new JLabel("");
label3 = new JLabel("");
textField = new JTextField(10);
button = new JButton("Guess");
button.addActionListener(this);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 1));
panel.add(label1);
panel.add(label2);
panel.add(textField);
panel.add(button);
panel.add(label3);
add(panel);
Random random = new Random();
randomNumber = random.nextInt(100) + 1;
guessCount = 0;
startTime = System.currentTimeMillis();
}
@Override
public void actionPerformed(ActionEvent e) {
try {
int guess = Integer.parseInt(textField.getText());
guessCount++;
if (guess == randomNumber) {
long endTime = System.currentTimeMillis();
long timeTaken = endTime - startTime;
double seconds = (double) timeTaken / 1000;
label2.setText("Congratulations! You guessed the number in " + guessCount + " attempts and " + seconds + " seconds.");
label3.setText("");
button.setEnabled(false);
} else if (guess > randomNumber) {
label3.setText("Too high! Try again.");
} else {
label3.setText("Too low! Try again.");
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Please enter a valid number.", "Error", JOptionPane.ERROR_MESSAGE);
}
textField.setText("");
}
public static void main(String[] args) {
GuessNumberGame game = new GuessNumberGame();
game.setVisible(true);
}
}
```
运行这个程序,你应该可以看到一个窗口,里面有一条消息,一个文本框和一个按钮。消息提示用户猜一个1到100的数字,文本框让用户输入猜测的数字,按钮用于提交猜测。
当用户点击“Guess”按钮时,程序会读取用户输入的数字,如果该数字等于随机数,程序会显示“Congratulations! You guessed the number in X attempts and Y seconds.”的消息,其中X是用户猜测的次数,Y是用户猜测的时间(以秒为单位)。否则,程序会根据用户猜测的数字提示用户继续猜测,直到用户猜测出正确的数字为止。
注意,如果用户输入的不是数字,程序会弹出一个错误消息。
希望这个程序能够帮助你完成你的需求。
阅读全文