Um jogo que usa como pricipal forma de sorteio o termo RANDINT da biblioteca RANDOM. E as funções IF, ELIF e ELSE para comparar as escolhas e decidir um vencedor.
Desenvoldido por Igorgp06.
from random import randint
from time import sleep
Usaremos o RANDIT para fazer a máquina escolher um item aleatório dentro da lista que mostrarei a seguir. O termo SLEEP serve como uma decoração, dando uma certa imersão ao jogo, isto o torna um elemento opcional ao nosso código, fica ao seu críterio alterá-lo ou não.
cor = {'nocolor': '\033[m',
'preto': '\033[30m',
'vermlho': '\033[31m',
'azul': '\033[34m',
'verde': '\033[32m',
'amarelo': '\033[33m',
'branco': '\033[97m',
'roxo': '\033[35m'}
Aqui atribuimos uma váriavel COR, ela será responsável por fazer com que nosso programa fique mais organizado e visualmente bonito.
opcoes = ('Pedra', 'Papel', 'Tesoura')
escolhas = randint(0, 2)
Atribuimos as opções a uma lista e em seguida fazemos com que as escolhas escolham aleatóriamente um item dentro desta mesma lista.
empate = f'\033[1m{cor["amarelo"]}EMPATE{cor["nocolor"]}'
vitplayer = f'\033[1m{cor["verde"]}Você ganhou!{cor["nocolor"]}'
derrota = f'\033[1m{cor["vermlho"]}Você perdeu!{cor["nocolor"]}'
joginva = f'\033[1m{cor["vermlho"]}JOGADA INVÁLIDA!{cor["nocolor"]}'
Atribuimos diversas váriaveis a palavras que vamos usar mais para frente. Fazemos isto para que nosso código não tenha tanta poluição visual quando formos inserir cores em nosso algoritimo.
print(f"""\033[1mEscolha alguma destas opções para jogar:
[0] Pedra
[1] Papel
[2] Tesoura{cor['nocolor']}""")
player = int(input(f'Escreva aqui {cor["azul"]}sua escolha: {cor["nocolor"]}'))
Aqui atribuimos a váriavel PLAYER a um número que o jogador deverá escolher para jogar, ou seja, o número que o jogador escolher ficara salva dentro da veriável PLAYER.
print(f'\033[1mJO{cor["nocolor"]}')
sleep(0.7)
print(f'\033[1mKEN{cor["nocolor"]}')
sleep(0.7)
print(f'\033[1mPÔ{cor["nocolor"]}')
Parte decorativa que irá escrever o que foi designado no PRINT dentro de 0.7 segundos, isto ocorrerá duas vezes.
print(f'{cor["roxo"]}-----{cor["nocolor"]}' * 10)
print(f'\033[1mO computador {cor["amarelo"]}escolheu {opcoes[escolhas]}{cor["nocolor"]}')
print(f'\033[1mO jogador {cor["azul"]}escolheu {opcoes[player]}{cor["nocolor"]}')
print(f'{cor["roxo"]}-----{cor["nocolor"]}' * 10)
Esta parte apresenta o que o jogador e a máquina escolheram em forma de Pedra, Papel ou Tesoura, isto só é possível se as váriaveis OPCOES e ESCOLHAS forem definidas corretamente. Caso contrário, o código não funcionária.
if escolhas == 0: # pedra
if player == 0:
print(empate)
elif player == 1:
print(vitplayer)
elif player == 2:
print(derrota)
else:
print(joginva)
elif escolhas == 1: # papel
if player == 0:
print(derrota)
elif player == 1:
print(empate)
elif player == 2:
print(vitplayer)
else:
print(joginva)
elif escolhas == 2: # tesoura
if player == 0:
print(vitplayer)
elif player == 1:
print(derrota)
elif player == 2:
print(empate)
else:
print(joginva)
else:
print(joginva)
Aqui fuciona da seguinte maneira, a máquina escolheu um número, caso tenha sido o número 1 o segundo ELIF irá entrar em ação, comparando a escolha do jogador com as da máquina. Se o jogador tiver escolhido o número 0 ele irá perder, pois o número 0 tem a equivalência a PEDRA e como a máquina escolheu o número 1 que equivale ao PAPEL ela sairá vitoriosa. Agora se o jogador tivesse escolhido o número 2 que equivale a TESOURA ele teria ganhado da máquina, o mesmo se aplica para o resto do Sistemas de escolhas. Resumidamente, ele pega a jogada da máquina e compara com as do jogador, decidindo assim, quem ganhou e quem perdeu.