Jogo da Forca - Python 3
Publicado por Phillipe Smith (última atualização em 14/11/2013)
[ Hits: 14.151 ]
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()
Calculadora para números complexos
Script para Away com varias funções para xchat.
Compartilhe suas configurações gconf
Mighty Are's Tool of Easily Promote Combats
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Wifi não funciona no Aspire ES 15 com o Debian (8)
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta