├── 0.png ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── requirements.txt ├── .streamlit └── config.toml └── main.py /0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/0.png -------------------------------------------------------------------------------- /1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/1.png -------------------------------------------------------------------------------- /2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/2.png -------------------------------------------------------------------------------- /3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/3.png -------------------------------------------------------------------------------- /4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/4.png -------------------------------------------------------------------------------- /5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/5.png -------------------------------------------------------------------------------- /6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/6.png -------------------------------------------------------------------------------- /7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/7.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liviavianna/hangman_amor/HEAD/requirements.txt -------------------------------------------------------------------------------- /.streamlit/config.toml: -------------------------------------------------------------------------------- 1 | [theme] 2 | primaryColor="#FFFFFFF" 3 | secondaryBackgroundColor="#FFFFFF" 4 | textColor="#000000" 5 | font="monospace" 6 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import streamlit as st 2 | 3 | frase = 'NAMORA COMIGO?' 4 | 5 | 6 | def img(): 7 | st.image(fases.get((st.session_state.tentativas))) 8 | 9 | 10 | st.title('Jogo da Forca do Amor') 11 | st.markdown(""" 12 | 18 | """, unsafe_allow_html=True) 19 | 20 | 21 | def reset_game(): 22 | st.session_state.clear() # Limpa todo o estado da sessão 23 | st.experimental_rerun() 24 | 25 | 26 | input_letra = st.text_input("Digite uma letra 👇", key="input_letra").upper() 27 | fases = { 28 | 7: "1.png", 29 | 6: "2.png", 30 | 5: "3.png", 31 | 4: "4.png", 32 | 3: "5.png", 33 | 2: "6.png", 34 | 1: "7.png", 35 | 0: "0.png" 36 | } 37 | if 'tentativas' not in st.session_state: 38 | st.session_state.tentativas = 7 39 | st.session_state.letras_adivinhadas = [] 40 | st.session_state.palavras_em_lista = [] 41 | img() 42 | st.session_state.frase_completa = '_' * len(frase) 43 | 44 | 45 | def jogar(): 46 | if len(input_letra) == 1 and input_letra.isalpha(): 47 | if input_letra in st.session_state.letras_adivinhadas: 48 | st.error(f"Você já adivinhou a letra {input_letra}") 49 | elif input_letra not in frase: 50 | st.error(f"{input_letra} não está na palavra.") 51 | st.session_state.tentativas -= 1 52 | st.session_state.letras_adivinhadas.append(input_letra) 53 | else: 54 | st.success(f"Parabéns, {input_letra} está na frase!") 55 | index = [i for i, letra in enumerate( 56 | frase) if letra == input_letra] 57 | frase_completa_lista = list(st.session_state.frase_completa) 58 | for i in index: 59 | frase_completa_lista[i] = input_letra 60 | st.session_state.frase_completa = "".join(frase_completa_lista) 61 | st.session_state.letras_adivinhadas.append(input_letra) 62 | 63 | img() 64 | 65 | if all(c in st.session_state.letras_adivinhadas or c in [' ', '?'] for c in frase): 66 | st.balloons() 67 | st.success('Parabéns! Você acertou a frase completa!') 68 | 69 | elif len(input_letra) > 1: 70 | st.warning("Escreva apenas uma letra.") 71 | elif input_letra and not input_letra.isalpha(): 72 | st.warning('Digito inválido.') 73 | 74 | if st.session_state.tentativas <= 0: 75 | 76 | st.error('Você perdeu!') 77 | button_key = f"tentar_novamente_btn{st.session_state.tentativas}" 78 | if st.button("Tentar novamente", key=button_key): 79 | reset_game() 80 | 81 | columns = st.columns(len(frase)) 82 | 83 | for i, col in enumerate(columns): 84 | with col: 85 | if i == 6: 86 | st.subheader(' ') 87 | elif i == 13: 88 | st.subheader('?') 89 | else: 90 | st.subheader(st.session_state.frase_completa[i]) 91 | 92 | 93 | jogar() 94 | 95 | print(st.session_state.tentativas) 96 | --------------------------------------------------------------------------------