Fazer um jogo de JoKemPo em Python é simples, mas para complementar fiz alguns tratamentos diferentes, como a captura de KeyboardException para tratar a saída do programa.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| from random import choice # Esta função serve para escolher aleatoriamente um elemento da lista!
# Dicionário de movimentos, na chave a opção e no valor quem ela ganha!
MOVES = {
'rock': 'scissors',
'paper': 'rock',
'scissors': 'paper',
}
# Lista de opções
OPTIONS = list(MOVES.keys())
def _get_user_choice():
"""
Recupera e valida a opção do usuário
"""
while True:
user_choice = input('Choose one option [rock/paper/scissors] - ctrl+c to exit: ')
if user_choice not in OPTIONS:
print('Choose a valid option!')
continue
return user_choice
def _jokenpo(user_choice, computer_choice):
"""
Valida a regra do jogo, comparando a escolha do usuário com a do computador!
"""
if MOVES[user_choice] == computer_choice:
print('You win!')
elif MOVES[computer_choice] == user_choice:
print('I win!')
else:
print('Meh!')
if __name__ == "__main__":
while True: # Roda infinitamente
try:
user_choice = _get_user_choice()
except KeyboardInterrupt:
print('\nBye!') # Caso o usuário aperte ctrl+c sairá do loop infinito
break
computer_choice = choice(OPTIONS) # Escolhe a opção do computador
_jokenpo(
user_choice=user_choice,
computer_choice=computer_choice,
)
|