import streamlit as st
import random
import time

# Set up the page
st.set_page_config(page_title="Concentration Grid")
st.title("Concentration Grid Trainer")

# Initialize session state for game data
if 'grid' not in st.session_state:
    numbers = list(range(1, 101))
    random.shuffle(numbers)
    st.session_state.grid = [numbers[i:i+10] for i in range(0, 100, 10)]
    st.session_state.next_num = 1
    st.session_state.start_time = time.time()

# Check for win condition
if st.session_state.next_num > 100:
    end_time = time.time()
    total_time = round(end_time - st.session_state.start_time, 2)
    st.success(f"Finished! Total time: {total_time} seconds.")
    if st.button("Play Again"):
        del st.session_state.grid
        st.rerun()
else:
    st.write(f"Find and click: **{st.session_state.next_num}**")
    
    # Create the 10x10 grid of buttons
    for row in st.session_state.grid:
        cols = st.columns(10)
        for i, num in enumerate(row):
            button_label = f"{num:02}"
            # Disable buttons already clicked
            is_clicked = num < st.session_state.next_num
            
            if cols[i].button(button_label, key=f"btn_{num}", disabled=is_clicked):
                if num == st.session_state.next_num:
                    st.session_state.next_num += 1
                    st.rerun()
                else:
                    st.error("Wrong number! Keep looking.")