# -*- coding: utf-8 -*-
"""
Created on Fri Jul  5 15:11:00 2024

@author: Stéphane Pasquet
"""

import random
import string
import tkinter as tk

def generate_boggle_board(size=4):
    """Generate a Boggle board of given size with random letters."""
    board = []
    for _ in range(size):
        row = [random.choice(string.ascii_uppercase) for _ in range(size)]
        board.append(row)
    return board

class BoggleGame:
    def __init__(self, root):
        self.root = root
        self.root.title("Le Boggle")
        
        self.board = generate_boggle_board()
        
        # Création d'un cadre principal
        self.main_frame = tk.Frame(root)
        self.main_frame.pack()
        
        # Cadre pour le plateau
        self.board_frame = tk.Frame(self.main_frame)
        self.board_frame.grid(row=0, column=0)

        self.display_board()

        # Cadre pour le chronomètre
        self.timer_frame = tk.Frame(self.main_frame)
        self.timer_frame.grid(row=0, column=1, padx=20)

        self.time_left = 180  # 3 minutes
        self.timer_label = tk.Label(self.timer_frame, text=self.format_time(self.time_left), font=("Helvetica", 32))
        self.timer_label.pack()

        self.update_timer()

    def display_board(self):
        for i, row in enumerate(self.board):
            for j, letter in enumerate(row):
                label = tk.Label(self.board_frame, text=letter, width=4, height=2, font=("Helvetica", 32), borderwidth=2, relief="solid")
                label.grid(row=i, column=j, padx=5, pady=5)

    def format_time(self, seconds):
        """Format seconds into a MM:SS string."""
        minutes = seconds // 60
        seconds = seconds % 60
        return f"{minutes:02}:{seconds:02}"

    def update_timer(self):
        if self.time_left > 0:
            self.time_left -= 1
            self.timer_label.config(text=self.format_time(self.time_left))
            self.root.after(1000, self.update_timer)
        else:
            self.timer_label.config(text="Fini!")

root = tk.Tk()
game = BoggleGame(root)
root.mainloop()
