-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGuessTheNumberGame.java
More file actions
59 lines (49 loc) · 2.12 KB
/
GuessTheNumberGame.java
File metadata and controls
59 lines (49 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class GuessTheNumberGame extends Game {
public void start() {
Random random = new Random();
int numberToGuess = random.nextInt(10) + 1;
// Set up the game window
JFrame gameFrame = new JFrame("Guess the Number");
gameFrame.setSize(800, 700);
gameFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
gameFrame.setLayout(new BorderLayout());
// Panel for components
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 1));
// Input field for user guesses
JTextField guessField = new JTextField();
guessField.setFont(new Font("Arial", Font.BOLD, 22));
panel.add(guessField);
// Label for instructions and feedback
JLabel messageLabel = new JLabel("Guess a number between 1 and 10", JLabel.CENTER);
messageLabel.setFont(new Font("Arial", Font.BOLD, 22));
panel.add(messageLabel);
// Submit button
JButton guessButton = new JButton("Submit Guess");
guessButton.setFont(new Font("Arial", Font.BOLD, 22));
// Action listener for the button
guessButton.addActionListener(e -> {
try {
int userGuess = Integer.parseInt(guessField.getText());
if (userGuess == numberToGuess) {
messageLabel.setText("Correct! The number was " + numberToGuess + ".");
guessButton.setEnabled(false);
displayMessage(gameFrame, "You guessed the number! It was: " + numberToGuess);
} else if (userGuess < numberToGuess) {
messageLabel.setText("Too low! Try again.");
} else {
messageLabel.setText("Too high! Try again.");
}
} catch (NumberFormatException ex) {
messageLabel.setText("Please enter a valid number.");
}
});
panel.add(guessButton);
// Add panel to the frame
gameFrame.add(panel, BorderLayout.CENTER);
gameFrame.setVisible(true);
}
}