Jogo da Forca - Python 3
Publicado por Phillipe Smith (última atualização em 14/11/2013)
[ Hits: 14.520 ]
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()
run_update - Atualizador de Sabayon
Cálculo de pontuação em Tranca
ISOsync_pt-BR.py - Um Baixador Automático de ISOs de Sabayon, escrito em Python
Calcular aproximação de raiz quadrada
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Quais os códigos mais dificeis que vcs sabem fazer? (3)
Fiz uma pergunta no fórum mas não consigo localizar (14)
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)









