import streamlit as st #Globals if "legal_numbers" not in st.session_state: st.session_state.legal_numbers = [1,2,3,4,5,6,7,8,9] if "gridNumbers" not in st.session_state: st.session_state.gridNumbers = ["...", "...", "...", "...", "...", "...", "...", "...", "..."] if "Value" not in st.session_state: st.session_state.Value = "X" def get_userInput(): input = st.text_input("Enter a number between 1 to 9: ", key="input") return input def validate_userInput(user_input): if user_input.isdigit(): if int(user_input) < 1 or int(user_input) > 9: return False else: return True else: return False def error_Message(msg): st.write(msg) def toggleValue(): if st.session_state.Value == "X": st.session_state.Value = "O" else: st.session_state.Value == "X" def display_board(user_input): col1, col2, col3 = st.columns(3) col4, col5, col6 = st.columns(3) col7, col8, col9 = st.columns(3) st.session_state.gridNumbers[int(num)-1]= st.session_state.Value with col1: st.text(st.session_state.gridNumbers[0]) with col2: st.text(st.session_state.gridNumbers[1]) with col3: st.text(st.session_state.gridNumbers[2]) with col4: st.text(st.session_state.gridNumbers[3]) with col5: st.text(st.session_state.gridNumbers[4]) with col6: st.text(st.session_state.gridNumbers[5]) with col7: st.text(st.session_state.gridNumbers[6]) with col8: st.text(st.session_state.gridNumbers[7]) with col9: st.text(st.session_state.gridNumbers[8]) toggleValue() def reset_game(): st.session_state.legal_numbers = [1,2,3,4,5,6,7,8,9] st.session_state.gridNumbers = ["...", "...", "...", "...", "...", "...", "...", "...", "..."] st.session_state.Value = "X" def update_legalNumbers(number): st.session_state.legal_numbers.remove(int(user_input)) st.write("Legal Numbers: " + "".join(str(st.session_state.legal_numbers))) #UIApp starts here st.set_page_config(page_title="Python - Tic Tac Toe", page_icon=":python:") st.header("Python - Tic Tac Toe") user_input=get_userInput() #UI Buttons submit=st.button('Submit') replay=st.button('Replay') #Button functionality if submit: response=validate_userInput(user_input) if response: update_legalNumbers(user_input) display_board(user_input) else: error_Message("Please enter a digit between 1 to 9.") if replay: reset_game()