Jogo da Forca - Python 3
Publicado por Phillipe Smith (última atualização em 14/11/2013)
[ Hits: 14.369 ]
Homepage: http://phillipelnx.com
Download 1384287248.JogoDaForca.py (versão 2)
Simples jogo da forca feito em Python 3.
Necessário internet para executá-lo pois o as palavras a serem adivinhadas são obtidas através do endereço:
http://www.ime.usp.br/~pf/algoritmos/dicios/br
Versão 2 - Enviado por Phillipe Smith em 12/11/2013
Changelog: - Melhor apresentação;
- Adicionada contagem de acertos e erros;
- Adicionada opção para sair do jogo.
Download 1384287248.JogoDaForca.py
#!/usr/bin/python3 -tt # -*- encoding: utf-8 -*- # # Author: Phillipe Smith <phillipelnx@gmail.com> # Description: Simple Python Hangman # import os, sys from urllib.request import Request, urlopen from urllib.error import URLError, HTTPError from random import randint class Hangman: picture = ''' +-------+ | | | O | /|\ | / \ | =================== ''' doll = [ 82, # Right leg 80, # Left leg 65, # Right Arm 63, # Left Arm 64, # Body 50, # Head ] def __init__(self): try: self.wordlist = urlopen('http://www.ime.usp.br/~pf/algoritmos/dicios/br') except HTTPError as e: sys.exit('\nO servidor não conseguiu atender a solicitação.\nCódigo do Erro: %d' % e.code) except URLError as e: sys.exit('\nFalha ao contactar o servidor.\nCausa: %s' % e.reason) else: self.wordlist = self.wordlist.read().decode('iso-8859-1').split() def play(self): self.correct = '' self.wrong = '' self.sorted_word = self.wordlist[randint(0, len(self.wordlist))] self.word = ['_'] * (len(self.sorted_word)) while len(self.wrong) <= len(self.doll): os.system('cls') if sys.platform.find('win') > -1 else os.system('clear') self.draw() def kick(self, chars): kick = input('Chute uma letra: ') if kick.isalpha() and len(kick) == 1 and kick not in chars: if kick in self.sorted_word: self.correct += kick for i in range(len(self.sorted_word)): if kick == self.sorted_word[i]: self.word[i] = kick else: self.wrong += kick return kick def draw(self): draw_picture = self.picture n_wrong = len(self.wrong) kicks = self.correct + self.wrong if n_wrong <= len(self.doll): for i in range(n_wrong): draw_picture = draw_picture[:self.doll[i]] + ' ' + draw_picture[self.doll[i]+1:] print(' JOGO DA FORCA\n====================\n%s' % draw_picture) print('Chutes: %s\nPalavra: %s\n' % (' '.join(kicks), ' '.join(self.word))) if ''.join(self.word) == self.sorted_word: print('Você acertou! Parabéns!\n') self.play() if self.again() else sys.exit() else: if n_wrong != len(self.doll): self.kick(kicks) else: print('Você Perdeu... A palavra era: %s\n' % self.sorted_word) self.play() if self.again() else sys.exit() def again(self): play_again = input('Deseja jogar novamente [s ou n]: ') if play_again and play_again[0].lower() == 's': print('Aguarde enquanto o jogo é carregado...\n') return True else: print('Obrigado por jogar!\n') return False if __name__ == '__main__': game = Hangman() game.play()
Visualizar a data e hora de um servidor SNTP e atualizar na BIOS do sistema
Probabilidade de Vencer - Poker Texas Hold
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Driver da nvidia e desempenho em jogos (1)
A escola é altamente ineficiente e ineficaz! (13)
Sincronização Horario Estação de trabalho máquinas domínio com samba N... (2)