Python Streamlit #12


Zgadnij liczbę

import streamlit as st
import random

if 'liczba' not in st.session_state:
    st.session_state['liczba'] =   random.randint(1,100)

if 'szanse' not in st.session_state:
    st.session_state['szanse'] =  10

if 'komunikat' not in st.session_state:
    st.session_state['komunikat'] =  ""


if st.session_state['szanse'] == 0:
        st.write("Ostatnia szansa została wykorzystana. Koniec gry")
        st.stop()

st.write("Gra Zgadnij liczbę")
st.write(f"Ilość pozostałych szans: {st.session_state['szanse']}")


suwak = st.slider(label = "Program losuje liczbę. Zgadnij jaka to liczba:", min_value= 0, max_value= 100)
st.write( st.session_state['komunikat'])


def sprawdz():

    if suwak == st.session_state['liczba']:
        st.balloons()
        st.session_state['komunikat'] = "Brawo!"
        st.write("Brawo!")
        st.stop()
        
    elif suwak > st.session_state['liczba']:
        st.session_state['szanse'] -=1
        st.session_state ['komunikat'] = "Twoja liczba jest za duża"
    
    else:
        st.write(st.session_state['liczba'])
        st.session_state['szanse'] -=1
        st.session_state ['komunikat'] = "Twoja liczba jest za mała"
    

st.button(label = "Sprawdź liczbę", on_click = sprawdz)

Arkusz:

import streamlit as st
import json
import os

if 'quiz' not in st.session_state:
    st.session_state['quiz'] =  ""


file = st.file_uploader(
    "Upload data", accept_multiple_files=False, type="json"
)

if file:

    path = file.name
    with open(path, 'r', encoding='utf-8') as plik:
        st.session_state['quiz']  = json.load(plik)

def wyswietl_arkusz():
        
            st.write(st.session_state['quiz'])


def dodaj():
        
        if file  is not None:

            st.session_state['quiz'].append({"Pytanie": pytanie, "odpowiedzi" : [(odp1, punkty1), ( odp2, punkty2), (odp3, punkty3)]})
            st.write("Pytanie zostało dodane do quizu")
            
            with open(path, "w") as quiz:
            
                json.dump(st.session_state['quiz'] , quiz,
                indent=4,
                sort_keys=True,
                ensure_ascii=False)
        else:
            st.write("Nie wybrano pliku. Wybierz plik z quizem.")       

   
with st.form("formularz", clear_on_submit=True):

    
    pytanie = st.text_input(label = "Podaj tresc pytania")
    odp1 = st.text_input(label = "Podaj treść odpowiedzi nr1: ")
    punkty1 = st.text_input(label = "Podaj punktację odp 1")
    odp2 = st.text_input(label = "Podaj treść odpowiedzi nr2:")
    punkty2 = st.text_input(label = "Podaj punktację odp 2 ")
    odp3 = st.text_input(label = "Podaj treść odpowiedzi nr3:")
    punkty3 = st.text_input(label = "Podaj punktację odp 3 ")

    przycisk_dodaj = st.form_submit_button(label = "Dodaj pytanie do Quizu")
    
    if przycisk_dodaj:

        dodaj()

    
przycisk_wyswietl = st.button(label = "Wyświetl zawartość Quizu ")

if przycisk_wyswietl:
    if file  is not None:
        wyswietl_arkusz()
    else:
        st.write("Nie wybrano pliku. Wybierz plik z quizem.")