PythonTicTacToe / app.py
aashwinik's picture
Update app.py
3f65a39 verified
raw
history blame
2.57 kB
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()