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.")