Article image
RAPHAEL SOARES
RAPHAEL SOARES04/03/2023 11:44
Compartilhe

Jogo da Forca em Python

  • #Python

Nesse artigo demonstro um exemplo de código Python na construção de um jogo da forca, em que o usuário tenta adivinhar o nome de uma fruta.

Observações:

  • Para rodar o jogo vá no prompt de comando (ou no PowerShell);
  • Depois, copie e cole o caminho da pasta onde você salvou o arquivo jogo_da_forca.py (cd + caminho da pasta);
  • Por fim, digite Python e jogo_da_forca.py

Detalhes do jogo:

No jogo o usuário tem 10 chances de acertar o nome de uma fruta. Ao iniciar o jogo, primeiro é solicitado que o usuário digite uma letra.

O sistema verifica se a letra digitada pertence a palavra oculta e depois é perguntado ao usuário se ele deseja responder qual é a palavra oculta.

Se o jogador decidir responder e acertar, o jogo termina com sua vitória, mas se ele errar o jogo já é encerrado.

Se o usuário decidir não responder, ele pode digitar uma nova letra até ele decidir responder qual é a palavra oculta.

O usuário perde o jogo se ele não conseguir adivinhar a palavra em 10 chances

GitHub: https://github.com/phael8919/jogo_da_forca

Código:

def jogo_da_forca():
  print('----x----x---- JOGO DA FORCA ----x----x----')
  print('----- ADIVINHE O NOME DE UMA FRUTA -----\n')    


  import random as rd
  lista = ['LIMAO','ABACAXI','JABUTICABA','UVA','MELANCIA','ABACATE','MORANGO','ABACATE','PEQUI']


  #Função para escolher uma palavra da lista aleatoriamente
  def palavra_aleatoria(lista):    
      tamanho = len(lista)
      sorteio = rd.randint(1,tamanho)    
      palavra_aleatoria = lista[sorteio] 
      return palavra_aleatoria
  
  #função para localizar as posições de uma letra em uma palavra
  def localizar(texto,palavra):
      posicoes = []
      for i in range(0,len(texto)):
          if texto[i] == palavra:
              posicoes.append(i)
      return posicoes


  palavra = palavra_aleatoria(lista)
  print(f'DICA: A palavra tem {len(palavra)} letras')


  chances = 0
  pal_secreta = list('_' * len(palavra))
  while chances <= 10:
      letra_digitada = input('Digite somente uma letra: ').upper()    
      if letra_digitada in palavra:
          print(f'A letra {letra_digitada} está contida na frase')                 
          posicao = localizar(palavra,letra_digitada)
          for i in posicao:    
              pal_secreta[i] = letra_digitada            
          print(pal_secreta)  
          opcao = input('Você já sabe qual é o nome da palavra? (S ou N): ')        
          if opcao.upper() == 'S':
              resposta = input('Digite o nome da palavra: ')
              if resposta.upper() == palavra:
                  print('-------- X -------- X --------') 
                  print(f'Parabéns!!\nA Palavra correta é {palavra}! ')
                  print('-------- X -------- X --------') 
                  break
              else:
                  print('Você errou!')
                  print(f'A Palavra correta é {palavra}!')
                  print('-------- X GAME OVER X --------') 
                  break
          else:
              print('-------- X -------- X --------\n')
              print(f'Você ainda tem mais {9-int(chances)} chances')             
      else:
          print(f'A letra {letra_digitada} NÃO está contida na frase')
          print(pal_secreta) 
          opcao = input('Você já sabe qual é o nome da palavra? (S ou N): ')
          if opcao.upper() == 'S':
              resposta = input('Digite o nome da palavra: ')
              if resposta.upper() == palavra:
                  print('-------- X -------- X --------') 
                  print(f'Parabéns!!\nA Palavra correta é {palavra}!')
                  print('-------- X -------- X --------') 
                  break
              else:
                  print('Você errou!')
                  print(f'A Palavra correta é {palavra}!')
                  print('-------- X GAME OVER X --------') 
                  break 
          else:
              print(f'Você ainda tem mais {9-int(chances)} chances')
              print('-------- X -------- X --------\n') 
              
      chances +=1
      if chances >= 10:
          print('-------- X GAME OVER X --------') 
          print(f'A Palavra correta é {palavra}!')
          break


jogo_da_forca()
Compartilhe
Comentários (0)