Uzaiir commited on
Commit
a740371
·
verified ·
1 Parent(s): 68064b7

Update src/riddles.py

Browse files
Files changed (1) hide show
  1. src/riddles.py +16 -99
src/riddles.py CHANGED
@@ -1,105 +1,22 @@
1
- # import csv
2
- # import random
3
- # import streamlit as st
4
-
5
- # def load_riddles():
6
- # riddles = []
7
- # try:
8
- # with open('src/Riddles.csv', mode='r', encoding='utf-8') as file:
9
- # reader = csv.DictReader(file)
10
- # if all(field in reader.fieldnames for field in ['Riddle', 'Hint', 'Answer']):
11
- # for row in reader:
12
- # riddles.append(row)
13
- # else:
14
- # st.write("CSV file is missing one or more required columns: 'Riddle', 'Hint', 'Answer'")
15
- # except Exception as e:
16
- # st.write(f"Error loading riddles: {e}")
17
- # return riddles
18
-
19
- # def get_random_riddle(riddles):
20
- # return random.choice(riddles) if riddles else None
21
-
22
-
23
  import streamlit as st
24
- from riddles import load_riddles, get_random_riddle
25
-
26
- # Load custom CSS
27
- def load_css(file_name):
28
- with open(file_name) as f:
29
- css = f.read()
30
- st.markdown(f"<style>{css}</style>", unsafe_allow_html=True)
31
-
32
- load_css('src/css/style.css')
33
-
34
- # Load riddles from CSV
35
- riddles = load_riddles()
36
-
37
- # Check if riddles loaded
38
- if not riddles:
39
- st.write("No riddles found. Please check your CSV file.")
40
- else:
41
- # Initialize session state
42
- if "riddle" not in st.session_state:
43
- st.session_state.riddle = get_random_riddle(riddles)
44
- st.session_state.hint_shown = False
45
- st.session_state.answer_shown = False
46
- st.session_state.user_answer_key = 0
47
-
48
- st.header("Let's Riddle!")
49
- st.write(st.session_state.riddle['Riddle'])
50
-
51
- # Input for user's answer
52
- user_answer = st.text_input(
53
- "Your answer is:",
54
- placeholder="Type Your Answer Here",
55
- key=f"user_answer_{st.session_state.user_answer_key}"
56
- )
57
-
58
- # Create empty containers to dynamically update content
59
- feedback_container = st.empty()
60
- hint_container = st.empty()
61
- answer_container = st.empty()
62
-
63
- # Layout: Submit, Hint, Reveal buttons
64
- col1, col2, col3 = st.columns(3)
65
- with col1:
66
- if st.button("Submit"):
67
- if user_answer.strip().lower() == st.session_state.riddle['Answer'].lower():
68
- feedback_container.write("✅ Correct! Well done!")
69
- else:
70
- feedback_container.write("❌ Incorrect. Try asking for a hint!")
71
-
72
- with col2:
73
- if st.button("Hint"):
74
- if not st.session_state.hint_shown:
75
- hint_container.write(f"💡 Hint: {st.session_state.riddle['Hint']}")
76
- st.session_state.hint_shown = True
77
- else:
78
- hint_container.write("Hint already shown.")
79
 
80
- with col3:
81
- if st.button("Reveal"):
82
- # Clear the hint when answer is shown
83
- if st.session_state.hint_shown:
84
- hint_container.empty()
85
- if not st.session_state.answer_shown:
86
- answer_container.write(f"🟢 The answer is: {st.session_state.riddle['Answer']}")
87
- st.session_state.answer_shown = True
88
  else:
89
- answer_container.write("Answer already revealed.")
 
 
 
90
 
91
- # 'Next' button centered
92
- col_center = st.columns([1, 1, 1])[1]
93
- with col_center:
94
- if st.button("Next"):
95
- st.session_state.riddle = get_random_riddle(riddles)
96
- st.session_state.hint_shown = False
97
- st.session_state.answer_shown = False
98
- st.session_state.user_answer_key += 1
99
 
100
- # Clear all previous outputs
101
- feedback_container.empty()
102
- hint_container.empty()
103
- answer_container.empty()
104
 
105
- st.rerun()
 
1
+ import csv
2
+ import random
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  import streamlit as st
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
+ def load_riddles():
6
+ riddles = []
7
+ try:
8
+ with open('src/Riddles.csv', mode='r', encoding='utf-8') as file:
9
+ reader = csv.DictReader(file)
10
+ if all(field in reader.fieldnames for field in ['Riddle', 'Hint', 'Answer']):
11
+ for row in reader:
12
+ riddles.append(row)
13
  else:
14
+ st.write("CSV file is missing one or more required columns: 'Riddle', 'Hint', 'Answer'")
15
+ except Exception as e:
16
+ st.write(f"Error loading riddles: {e}")
17
+ return riddles
18
 
19
+ def get_random_riddle(riddles):
20
+ return random.choice(riddles) if riddles else None
 
 
 
 
 
 
21
 
 
 
 
 
22