Uzaiir commited on
Commit
ffe335f
Β·
verified Β·
1 Parent(s): a740371

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +109 -25
src/streamlit_app.py CHANGED
@@ -1,69 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import streamlit as st
2
  from riddles import load_riddles, get_random_riddle
3
 
4
- # Loading CSS from file
5
  def load_css(file_name):
6
  with open(file_name) as f:
7
  css = f.read()
8
  st.markdown(f"<style>{css}</style>", unsafe_allow_html=True)
9
-
10
  load_css('src/css/style.css')
11
 
12
- # Loading riddles
13
  riddles = load_riddles()
14
 
15
- # Checking if riddles loaded
16
  if not riddles:
17
  st.write("No riddles found. Please check your CSV file.")
18
  else:
19
- # Initializing session state variables
20
  if "riddle" not in st.session_state:
21
  st.session_state.riddle = get_random_riddle(riddles)
22
  st.session_state.hint_shown = False
23
  st.session_state.answer_shown = False
24
- st.session_state.user_answer_key = 0
25
 
26
- # Displaying the riddle
27
- st.header("Lets Riddle")
28
  st.write(st.session_state.riddle['Riddle'])
29
-
30
 
31
- # Users input
32
- user_answer = st.text_input("Your answer is :",placeholder="Type Your Answer Here", key=f"user_answer_{st.session_state.user_answer_key}")
 
 
 
 
33
 
34
- # Buttons submit , hint , reveal
 
 
 
 
 
35
  col1, col2, col3 = st.columns(3)
36
  with col1:
37
  if st.button("Submit"):
38
  if user_answer.strip().lower() == st.session_state.riddle['Answer'].lower():
39
- st.write("Correct! Well done!")
40
  else:
41
- st.write("Incorrect, ask for a hint")
42
-
43
  with col2:
44
  if st.button("Hint"):
45
  if not st.session_state.hint_shown:
46
- st.write(f"Hint: {st.session_state.riddle['Hint']}")
47
  st.session_state.hint_shown = True
48
  else:
49
- st.write("Hint already shown.")
50
 
51
  with col3:
52
  if st.button("Reveal"):
 
 
 
53
  if not st.session_state.answer_shown:
54
- st.write(f"The answer is: {st.session_state.riddle['Answer']}")
55
  st.session_state.answer_shown = True
56
  else:
57
- st.write("Answer already revealed.")
58
 
59
- #Next riddle
60
- st.write("")
61
- # Center the button by using a three-column layout
62
- col_center = st.columns([1, 1, 1])[1]
63
  with col_center:
64
  if st.button("Next"):
65
  st.session_state.riddle = get_random_riddle(riddles)
66
  st.session_state.hint_shown = False
67
  st.session_state.answer_shown = False
68
- st.session_state.user_answer_key += 1 # Increment key to reset input
69
- st.rerun()
 
 
 
 
 
 
 
1
+ # import streamlit as st
2
+ # from riddles import load_riddles, get_random_riddle
3
+
4
+ # # Loading CSS from file
5
+ # def load_css(file_name):
6
+ # with open(file_name) as f:
7
+ # css = f.read()
8
+ # st.markdown(f"<style>{css}</style>", unsafe_allow_html=True)
9
+
10
+ # load_css('src/css/style.css')
11
+
12
+ # # Loading riddles
13
+ # riddles = load_riddles()
14
+
15
+ # # Checking if riddles loaded
16
+ # if not riddles:
17
+ # st.write("No riddles found. Please check your CSV file.")
18
+ # else:
19
+ # # Initializing session state variables
20
+ # if "riddle" not in st.session_state:
21
+ # st.session_state.riddle = get_random_riddle(riddles)
22
+ # st.session_state.hint_shown = False
23
+ # st.session_state.answer_shown = False
24
+ # st.session_state.user_answer_key = 0
25
+
26
+ # # Displaying the riddle
27
+ # st.header("Lets Riddle")
28
+ # st.write(st.session_state.riddle['Riddle'])
29
+
30
+
31
+ # # Users input
32
+ # user_answer = st.text_input("Your answer is :",placeholder="Type Your Answer Here", key=f"user_answer_{st.session_state.user_answer_key}")
33
+
34
+ # # Buttons submit , hint , reveal
35
+ # col1, col2, col3 = st.columns(3)
36
+ # with col1:
37
+ # if st.button("Submit"):
38
+ # if user_answer.strip().lower() == st.session_state.riddle['Answer'].lower():
39
+ # st.write("Correct! Well done!")
40
+ # else:
41
+ # st.write("Incorrect, ask for a hint")
42
+
43
+ # with col2:
44
+ # if st.button("Hint"):
45
+ # if not st.session_state.hint_shown:
46
+ # st.write(f"Hint: {st.session_state.riddle['Hint']}")
47
+ # st.session_state.hint_shown = True
48
+ # else:
49
+ # st.write("Hint already shown.")
50
+
51
+ # with col3:
52
+ # if st.button("Reveal"):
53
+ # if not st.session_state.answer_shown:
54
+ # st.write(f"The answer is: {st.session_state.riddle['Answer']}")
55
+ # st.session_state.answer_shown = True
56
+ # else:
57
+ # st.write("Answer already revealed.")
58
+
59
+ # #Next riddle
60
+ # st.write("")
61
+ # # Center the button by using a three-column layout
62
+ # col_center = st.columns([1, 1, 1])[1]
63
+ # with col_center:
64
+ # if st.button("Next"):
65
+ # st.session_state.riddle = get_random_riddle(riddles)
66
+ # st.session_state.hint_shown = False
67
+ # st.session_state.answer_shown = False
68
+ # st.session_state.user_answer_key += 1 # Increment key to reset input
69
+ # st.rerun()
70
+
71
  import streamlit as st
72
  from riddles import load_riddles, get_random_riddle
73
 
74
+ # Load custom CSS
75
  def load_css(file_name):
76
  with open(file_name) as f:
77
  css = f.read()
78
  st.markdown(f"<style>{css}</style>", unsafe_allow_html=True)
79
+
80
  load_css('src/css/style.css')
81
 
82
+ # Load riddles from CSV
83
  riddles = load_riddles()
84
 
85
+ # Check if riddles loaded
86
  if not riddles:
87
  st.write("No riddles found. Please check your CSV file.")
88
  else:
89
+ # Initialize session state
90
  if "riddle" not in st.session_state:
91
  st.session_state.riddle = get_random_riddle(riddles)
92
  st.session_state.hint_shown = False
93
  st.session_state.answer_shown = False
94
+ st.session_state.user_answer_key = 0
95
 
96
+ st.header("Let's Riddle!")
 
97
  st.write(st.session_state.riddle['Riddle'])
 
98
 
99
+ # Input for user's answer
100
+ user_answer = st.text_input(
101
+ "Your answer is:",
102
+ placeholder="Type Your Answer Here",
103
+ key=f"user_answer_{st.session_state.user_answer_key}"
104
+ )
105
 
106
+ # Create empty containers to dynamically update content
107
+ feedback_container = st.empty()
108
+ hint_container = st.empty()
109
+ answer_container = st.empty()
110
+
111
+ # Layout: Submit, Hint, Reveal buttons
112
  col1, col2, col3 = st.columns(3)
113
  with col1:
114
  if st.button("Submit"):
115
  if user_answer.strip().lower() == st.session_state.riddle['Answer'].lower():
116
+ feedback_container.write("βœ… Correct! Well done!")
117
  else:
118
+ feedback_container.write("❌ Incorrect. Try asking for a hint!")
119
+
120
  with col2:
121
  if st.button("Hint"):
122
  if not st.session_state.hint_shown:
123
+ hint_container.write(f"πŸ’‘ Hint: {st.session_state.riddle['Hint']}")
124
  st.session_state.hint_shown = True
125
  else:
126
+ hint_container.write("Hint already shown.")
127
 
128
  with col3:
129
  if st.button("Reveal"):
130
+ # Clear the hint when answer is shown
131
+ if st.session_state.hint_shown:
132
+ hint_container.empty()
133
  if not st.session_state.answer_shown:
134
+ answer_container.write(f"🟒 The answer is: {st.session_state.riddle['Answer']}")
135
  st.session_state.answer_shown = True
136
  else:
137
+ answer_container.write("Answer already revealed.")
138
 
139
+ # 'Next' button centered
140
+ col_center = st.columns([1, 1, 1])[1]
 
 
141
  with col_center:
142
  if st.button("Next"):
143
  st.session_state.riddle = get_random_riddle(riddles)
144
  st.session_state.hint_shown = False
145
  st.session_state.answer_shown = False
146
+ st.session_state.user_answer_key += 1
147
+
148
+ # Clear all previous outputs
149
+ feedback_container.empty()
150
+ hint_container.empty()
151
+ answer_container.empty()
152
+
153
+ st.rerun()