File size: 4,474 Bytes
1292ed1
74a6ec1
 
 
b922996
06a931f
74a6ec1
 
 
06a931f
74a6ec1
 
1292ed1
06a931f
74a6ec1
 
 
06a931f
74a6ec1
 
1292ed1
 
74a6ec1
1292ed1
74a6ec1
 
1292ed1
74a6ec1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
06a931f
1292ed1
74a6ec1
 
06a931f
 
 
 
1292ed1
74a6ec1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
06a931f
74a6ec1
 
1292ed1
06a931f
 
 
 
1292ed1
06a931f
 
 
 
 
 
 
1292ed1
06a931f
 
 
 
 
 
 
 
74a6ec1
 
 
 
 
 
 
1292ed1
74a6ec1
 
 
 
 
 
06a931f
 
 
 
 
 
74a6ec1
06a931f
 
 
1292ed1
74a6ec1
1292ed1
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import streamlit as st
import time
import random
from streamlit.components.v1 import html

# Custom CSS (same as before)
def inject_custom_css():
    st.markdown("""
    <style>
        /* Previous CSS styles remain the same */
    </style>
    """, unsafe_allow_html=True)

# Confetti animation (same as before)
def show_confetti():
    html("""
    <script>
    // Previous confetti code remains the same
    </script>
    """)

def main():
    inject_custom_css()
    
    st.markdown('<div class="title">KASOTI</div>', unsafe_allow_html=True)
    st.markdown('<div class="subtitle">The Ultimate Guessing Game</div>', unsafe_allow_html=True)
    
    if 'game_state' not in st.session_state:
        st.session_state.game_state = "start"
        st.session_state.questions = [
            "Is it something you can hold in your hand?",
            "Is it commonly found in households?",
            "Can it be used as a tool?",
            "Is it primarily made of metal?",
            "Does it have moving parts?",
            "Is it electronic?",
            "Is it something you would gift to someone?",
            "Can it be found in an office?",
            "Does it require electricity to function?",
            "Is it typically under $100?"
        ]
        st.session_state.current_q = 0
        st.session_state.answers = []
        st.session_state.target = "smartphone"
    
    # Start screen
    if st.session_state.game_state == "start":
        # Using direct URL instead of placeholder
        st.image("https://i.imgur.com/7vQD0fP.png", 
                caption="Think of something and we'll try to guess it!",
                use_column_width=True)
        
        with st.form("start_form"):
            category = st.radio("What are you thinking of?", 
                              ["A famous person", "An object", "A place"],
                              index=1)
            user_input = st.text_input("Type it here (we won't peek!):").strip().lower()
            
            if st.form_submit_button("Start Game"):
                if not user_input:
                    st.error("Please type something!")
                elif len(user_input) < 3:
                    st.error("Too short! Type properly.")
                else:
                    st.session_state.game_state = "gameplay"
                    st.session_state.user_input = user_input
                    st.rerun()
    
    # Gameplay screen - FIXED IMAGE DISPLAY
    elif st.session_state.game_state == "gameplay":
        col1, col2 = st.columns([1, 3])
        with col1:
            # Using a reliable image URL
            st.image("https://i.imgur.com/JnQ6Tyr.png", 
                    width=150, 
                    caption=f"Question {st.session_state.current_q + 1}")
        with col2:
            st.markdown(
                f'<div class="question-box">'
                f'<h3>Question {st.session_state.current_q + 1}/10:</h3>'
                f'<p><strong>{st.session_state.questions[st.session_state.current_q]}</strong></p>'
                f'</div>',
                unsafe_allow_html=True
            )
        
        # Answer buttons with better spacing
        answer = st.radio(
            "Your answer:",
            ["Yes", "No"],
            horizontal=True,
            label_visibility="collapsed",
            key=f"q{st.session_state.current_q}"
        )
        
        if st.button("Submit Answer", type="primary"):
            st.session_state.answers.append(answer == "Yes")
            st.session_state.current_q += 1
            
            if st.session_state.current_q >= len(st.session_state.questions):
                st.session_state.game_state = "result"
            st.rerun()
    
    # Result screen
    elif st.session_state.game_state == "result":
        show_confetti()
        st.markdown('<div class="final-reveal">🎉 I think it\'s a...</div>', unsafe_allow_html=True)
        time.sleep(1)
        st.markdown(
            f'<div class="final-reveal" style="font-size:3.5rem;color:#6C63FF;">'
            f'{st.session_state.target.upper()}'
            f'</div>',
            unsafe_allow_html=True
        )
        
        st.image("https://i.imgur.com/7vQD0fP.png", 
                caption="Congratulations!",
                use_column_width=True)
        
        if st.button("Play Again", key="play_again"):
            st.session_state.clear()
            st.rerun()

if __name__ == "__main__":
    main()