Spaces:
Sleeping
Sleeping
Upload Scrape.py
Browse files- Workflow/Scrape.py +200 -0
Workflow/Scrape.py
ADDED
@@ -0,0 +1,200 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
|
3 |
+
#Sessions
|
4 |
+
if "legal_numbers" not in st.session_state:
|
5 |
+
st.session_state.legal_numbers = [1,2,3,4,5,6,7,8,9]
|
6 |
+
if "gridNumbers" not in st.session_state:
|
7 |
+
st.session_state.gridNumbers = ["...", "...", "...", "...", "...", "...", "...", "...", "..."]
|
8 |
+
if "Value" not in st.session_state:
|
9 |
+
st.session_state.Value = "X"
|
10 |
+
if 'submit_disabled' not in st.session_state:
|
11 |
+
st.session_state.submit_disabled = False
|
12 |
+
|
13 |
+
def get_userInput():
|
14 |
+
input = st.number_input("Enter a number between 1 to 9." ,min_value=1,max_value=9,key="int",on_change=None)
|
15 |
+
return input
|
16 |
+
|
17 |
+
def validate_userInput(user_input):
|
18 |
+
#user_input = int(user_input)
|
19 |
+
if user_input >= 1 and user_input <= 9:
|
20 |
+
if user_input in st.session_state.legal_numbers:
|
21 |
+
return True
|
22 |
+
else:
|
23 |
+
#st.write("input is not in session " + user_input)
|
24 |
+
return False
|
25 |
+
else:
|
26 |
+
#st.write("input is not between 1 and 9 " + user_input)
|
27 |
+
return False
|
28 |
+
|
29 |
+
def error_Message(msg):
|
30 |
+
st.write(msg)
|
31 |
+
|
32 |
+
def toggleValue():
|
33 |
+
if st.session_state.Value == "X":
|
34 |
+
st.session_state.Value = "O"
|
35 |
+
else:
|
36 |
+
st.session_state.Value = "X"
|
37 |
+
|
38 |
+
def display_guide():
|
39 |
+
st.text("How to play: Enter the grid number as shown below to mark 'X' or 'O'. \n"+
|
40 |
+
"Kindly pick any number shown in Legal Numbers. \n" +
|
41 |
+
"Number cannot be repeated more than twice.")
|
42 |
+
|
43 |
+
col1, col2, col3 = st.columns(3)
|
44 |
+
col4, col5, col6 = st.columns(3)
|
45 |
+
col7, col8, col9 = st.columns(3)
|
46 |
+
with col1:
|
47 |
+
st.text("1")
|
48 |
+
with col2:
|
49 |
+
st.text("2")
|
50 |
+
with col3:
|
51 |
+
st.text("3")
|
52 |
+
with col4:
|
53 |
+
st.text("4")
|
54 |
+
with col5:
|
55 |
+
st.text("5")
|
56 |
+
with col6:
|
57 |
+
st.text("6")
|
58 |
+
with col7:
|
59 |
+
st.text("7")
|
60 |
+
with col8:
|
61 |
+
st.text("8")
|
62 |
+
with col9:
|
63 |
+
st.text("9")
|
64 |
+
|
65 |
+
def display_board(num):
|
66 |
+
col1, col2, col3 = st.columns(3)
|
67 |
+
col4, col5, col6 = st.columns(3)
|
68 |
+
col7, col8, col9 = st.columns(3)
|
69 |
+
|
70 |
+
if int(num) == 0:
|
71 |
+
with col1:
|
72 |
+
st.text(st.session_state.gridNumbers[0])
|
73 |
+
with col2:
|
74 |
+
st.text(st.session_state.gridNumbers[1])
|
75 |
+
with col3:
|
76 |
+
st.text(st.session_state.gridNumbers[2])
|
77 |
+
with col4:
|
78 |
+
st.text(st.session_state.gridNumbers[3])
|
79 |
+
with col5:
|
80 |
+
st.text(st.session_state.gridNumbers[4])
|
81 |
+
with col6:
|
82 |
+
st.text(st.session_state.gridNumbers[5])
|
83 |
+
with col7:
|
84 |
+
st.text(st.session_state.gridNumbers[6])
|
85 |
+
with col8:
|
86 |
+
st.text(st.session_state.gridNumbers[7])
|
87 |
+
with col9:
|
88 |
+
st.text(st.session_state.gridNumbers[8])
|
89 |
+
else:
|
90 |
+
st.session_state.gridNumbers[int(num)-1]= st.session_state.Value
|
91 |
+
with col1:
|
92 |
+
st.text(st.session_state.gridNumbers[0])
|
93 |
+
with col2:
|
94 |
+
st.text(st.session_state.gridNumbers[1])
|
95 |
+
with col3:
|
96 |
+
st.text(st.session_state.gridNumbers[2])
|
97 |
+
with col4:
|
98 |
+
st.text(st.session_state.gridNumbers[3])
|
99 |
+
with col5:
|
100 |
+
st.text(st.session_state.gridNumbers[4])
|
101 |
+
with col6:
|
102 |
+
st.text(st.session_state.gridNumbers[5])
|
103 |
+
with col7:
|
104 |
+
st.text(st.session_state.gridNumbers[6])
|
105 |
+
with col8:
|
106 |
+
st.text(st.session_state.gridNumbers[7])
|
107 |
+
with col9:
|
108 |
+
st.text(st.session_state.gridNumbers[8])
|
109 |
+
toggleValue()
|
110 |
+
|
111 |
+
def reset_game():
|
112 |
+
st.session_state.legal_numbers = [1,2,3,4,5,6,7,8,9]
|
113 |
+
st.session_state.gridNumbers = ["...", "...", "...", "...", "...", "...", "...", "...", "..."]
|
114 |
+
st.session_state.Value = "X"
|
115 |
+
st.session_state.submit_disabled=False
|
116 |
+
st.rerun()
|
117 |
+
|
118 |
+
def update_legalNumbers(number):
|
119 |
+
if number == 0:
|
120 |
+
"Legal Numbers: " + "".join(str(st.session_state.legal_numbers))
|
121 |
+
else:
|
122 |
+
st.session_state.legal_numbers.remove(int(user_input))
|
123 |
+
"Legal Numbers: " + "".join(str(st.session_state.legal_numbers))
|
124 |
+
|
125 |
+
def isGameWon():
|
126 |
+
|
127 |
+
if st.session_state.gridNumbers[0] == "X" and st.session_state.gridNumbers[1] == "X" and st.session_state.gridNumbers[2] == "X":
|
128 |
+
return True
|
129 |
+
elif st.session_state.gridNumbers[3] == "X" and st.session_state.gridNumbers[4] == "X" and st.session_state.gridNumbers[5] == "X":
|
130 |
+
return True
|
131 |
+
elif st.session_state.gridNumbers[6] == "X" and st.session_state.gridNumbers[7] == "X" and st.session_state.gridNumbers[8] == "X":
|
132 |
+
return True
|
133 |
+
elif st.session_state.gridNumbers[0] == "X" and st.session_state.gridNumbers[4] == "X" and st.session_state.gridNumbers[8] == "X":
|
134 |
+
return True
|
135 |
+
elif st.session_state.gridNumbers[2] == "X" and st.session_state.gridNumbers[4] == "X" and st.session_state.gridNumbers[6] == "X":
|
136 |
+
return True
|
137 |
+
elif st.session_state.gridNumbers[0] == "X" and st.session_state.gridNumbers[3] == "X" and st.session_state.gridNumbers[6] == "X":
|
138 |
+
return True
|
139 |
+
elif st.session_state.gridNumbers[1] == "X" and st.session_state.gridNumbers[4] == "X" and st.session_state.gridNumbers[7] == "X":
|
140 |
+
return True
|
141 |
+
elif st.session_state.gridNumbers[2] == "X" and st.session_state.gridNumbers[5] == "X" and st.session_state.gridNumbers[8] == "X":
|
142 |
+
return True
|
143 |
+
elif st.session_state.gridNumbers[0] == "O" and st.session_state.gridNumbers[1] == "O" and st.session_state.gridNumbers[2] == "O":
|
144 |
+
return True
|
145 |
+
elif st.session_state.gridNumbers[3] == "O" and st.session_state.gridNumbers[4] == "O" and st.session_state.gridNumbers[5] == "O":
|
146 |
+
return True
|
147 |
+
elif st.session_state.gridNumbers[6] == "O" and st.session_state.gridNumbers[7] == "O" and st.session_state.gridNumbers[8] == "O":
|
148 |
+
return True
|
149 |
+
elif st.session_state.gridNumbers[0] == "O" and st.session_state.gridNumbers[4] == "O" and st.session_state.gridNumbers[8] == "O":
|
150 |
+
return True
|
151 |
+
elif st.session_state.gridNumbers[2] == "O" and st.session_state.gridNumbers[4] == "O" and st.session_state.gridNumbers[6] == "O":
|
152 |
+
return True
|
153 |
+
elif st.session_state.gridNumbers[0] == "O" and st.session_state.gridNumbers[3] == "O" and st.session_state.gridNumbers[6] == "O":
|
154 |
+
return True
|
155 |
+
elif st.session_state.gridNumbers[1] == "O" and st.session_state.gridNumbers[4] == "O" and st.session_state.gridNumbers[7] == "O":
|
156 |
+
return True
|
157 |
+
elif st.session_state.gridNumbers[2] == "O" and st.session_state.gridNumbers[5] == "O" and st.session_state.gridNumbers[8] == "O":
|
158 |
+
return True
|
159 |
+
else:
|
160 |
+
return False
|
161 |
+
|
162 |
+
|
163 |
+
#UIApp starts here
|
164 |
+
st.set_page_config(page_title="Python - Tic Tac Toe", page_icon=":python:")
|
165 |
+
st.header("Python - Tic Tac Toe")
|
166 |
+
display_guide()
|
167 |
+
|
168 |
+
user_input=get_userInput()
|
169 |
+
|
170 |
+
#UI Buttons
|
171 |
+
col1, col2 = st.columns(2)
|
172 |
+
with col1:
|
173 |
+
submit=st.button('Submit', key='submit', disabled=st.session_state.submit_disabled)
|
174 |
+
with col2:
|
175 |
+
reset=st.button('Reset', key='reset')
|
176 |
+
|
177 |
+
#Button functionality
|
178 |
+
if submit:
|
179 |
+
valid=validate_userInput(user_input)
|
180 |
+
if valid:
|
181 |
+
update_legalNumbers(user_input)
|
182 |
+
display_board(user_input)
|
183 |
+
check=isGameWon()
|
184 |
+
if check:
|
185 |
+
st.session_state.submit_disabled=True
|
186 |
+
st.subheader('', divider='rainbow')
|
187 |
+
st.subheader('You have the won the Game!!!')
|
188 |
+
|
189 |
+
elif len(st.session_state.legal_numbers)==0:
|
190 |
+
st.session_state.submit_disabled=True
|
191 |
+
st.subheader('', divider='rainbow')
|
192 |
+
st.subheader('The Game is Tie!!!')
|
193 |
+
|
194 |
+
else:
|
195 |
+
display_board(0)
|
196 |
+
error_Message("Please enter any of these numbers: " + "Legal Numbers: " + "".join(str(st.session_state.legal_numbers)))
|
197 |
+
|
198 |
+
if reset:
|
199 |
+
reset_game()
|
200 |
+
|