aashwinik commited on
Commit
20d2097
1 Parent(s): e3e578d

Upload Scrape.py

Browse files
Files changed (1) hide show
  1. 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
+