Python zajecia 12 (zadanie)

Python zajecia 12 (zadanie)
Photo by Susan Holt Simpson / Unsplash

GRA liczbowa

import streamlit as st
import random

st.title("🎯 Gra liczbowa")

st.write("Witaj w grze! Zgadnij liczbę od 1 do 100.")

#reset gry
if 'reset_gra' in st.session_state and st.session_state.reset_gra:
    st.session_state.losowa_liczba = random.randint(1, 100)
    st.session_state.liczba_prob = 10
    st.session_state.reset_gra = False

# Losowanie liczby
if "losowa_liczba" not in st.session_state:
    st.session_state.losowa_liczba = random.randint(1, 100)

# Liczba prób
if "liczba_prob" not in st.session_state:
    st.session_state.liczba_prob = 10

if 'reset_gra' not in st.session_state:
    st.session_state.reset_gra = False

# do testów
# st.write(st.session_state.losowa_liczba)

# Pobranie liczby od użytkownika
wybrana_liczba = st.number_input("Wprowadź liczbę od 1 do 100:", min_value=1, max_value=100, step=1)

# Przycisk zgadywania
if st.button("Sprawdź") and st.session_state.liczba_prob > 0:
    st.session_state.liczba_prob -= 1

    if wybrana_liczba == st.session_state.losowa_liczba:
        st.success("🎉 Bingo! Zgadłeś!")
        st.balloons()
       
    elif wybrana_liczba > st.session_state.losowa_liczba:
        st.warning(f"Twoja liczba jest za duża. Zostało {st.session_state.liczba_prob} prób.")
    else:
        st.warning(f"Twoja liczba jest za mała. Zostało {st.session_state.liczba_prob} prób.")

# Sprawdzenie przegranej
if st.session_state.liczba_prob == 0 and wybrana_liczba != st.session_state.losowa_liczba:
    st.error("😢 Przegrałeś! 💔 Wyczerpałeś wszystkie próby.")
    st.write(f"Prawidłowa liczba to: {st.session_state.losowa_liczba}")
    st.snow()

if st.button("Zagraj jeszcze raz"):
    st.session_state.reset_gra = True
    st.rerun()