import random
import tkinter as tk
from tkinter import messagebox

class NumberGuessingGame:
    def __init__(self, master):
        self.master = master
        self.master.title("Number Guessing Game")
        self.master.configure(bg="black")

        self.number_to_guess = random.randint(1, 100)
        self.attempts = 0
        self.max_attempts = 5

        tk.Label(self.master, text="Enter your guess:", fg="white", bg="black").pack()
        self.entry_guess = tk.Entry(self.master)
        self.entry_guess.pack()

        tk.Button(self.master, text="Guess", command=self.check_guess).pack(pady=5)

        self.result_label = tk.Label(self.master, fg="white", bg="black")
        self.result_label.pack()

        self.attempts_label = tk.Label(self.master, fg="white", bg="black")
        self.attempts_label.pack()

    def check_guess(self):
        try:
            guess = int(self.entry_guess.get())
            self.attempts += 1
            self.attempts_label.config(text=f"Attempts: {self.attempts}/{self.max_attempts}")

            if guess < self.number_to_guess:
                self.result_label.config(text="Too low! Try again.")
            elif guess > self.number_to_guess:
                self.result_label.config(text="Too high! Try again.")
            else:
                self.result_label.config(text="Congratulations! You guessed the number correctly!")
                messagebox.showinfo("Congratulations", "You guessed the number correctly!")
                self.master.destroy()
            
            if self.attempts == self.max_attempts and guess != self.number_to_guess:
                self.result_label.config(text=f"Sorry, you've used all {self.max_attempts} attempts. The number was {self.number_to_guess}.")
                messagebox.showinfo("Game Over", f"Sorry, you've used all {self.max_attempts} attempts. The number was {self.number_to_guess}.")
                self.master.destroy()
        except ValueError:
            messagebox.showerror("Error", "Please enter a valid number.")

def main():
    root = tk.Tk()
    game = NumberGuessingGame(root)
    root.mainloop()

if __name__ == "__main__":
    main()