Pedra Papel Tesoura
Você já se perguntou como construir um jogo com Python? Você sempre quis construir seu próprio jogo, mas não o fez porque achava que era difícil? Bem, hoje vou mostrar como construir um e mostrar o quão simples pode ser!
Aqui está a demo ao vivo e o código final.
Parte 1: Pré-requisitos
Você deve saber um pouquinho de:
- Python
Parte 2: Configuração
Configurando seu ambiente de código no Repl.it
O Repl.it é um editor de código online onde você pode construir seu jogo. Você não precisa usar o Repl.it, mas eu sugiro que você faça, pois ele configura tudo e não é necessário instalar nada.
Para começar, vá para repl.it/languages/python. Seu ambiente de programação irá girar em apenas alguns segundos!
Você deve ver algo como o seguinte:
Parte 3: Fazendo o jogo
1) Importando Módulos
Primeiro, precisamos importar o módulo randint
. Para saber mais sobre o pacote randint, clique aqui.
Na primeira linha do arquivo main.py
, digite from random import randint
. Isso importará o módulo randint.
2) Atribuindo valores às variáveis
Vamos fazer uma lista com todas as entradas que um jogador pode inserir. Em seu arquivo main.py
, adicione:
t = ["ped", "pap", "tes"]
‘ped’ significa ‘Pedra’, ‘pap’ significa ‘Papel’ e ‘tes’ significa ‘Tesoura’.
Agora, vamos escrever um código para que o jogador possa inserir seu nome.
nome = input("Digite seu nome:")
Agora, queremos dar ao jogador a opção de resetar o jogo.
print("Digite 'resetar' para resetar a pontuação")
Para fazermos um sistema de pontuação, escreveremos o seguinte código:
Voce = 0
PC = 0
Esse é o código até agora:
from random import randint
t = ["ped", "pap", "tes"]
nome = input("Digite seu nome:")
print("Digite 'resetar' para resetar a pontuação")
Voce = 0
PC = 0
3) Mantendo o jogo em um loop
Para isso, usarei um loop while
, mas você também pode usar loops for
!
Na parte inferior do arquivo main.py
, adicione isto:
while True:
Agora, vamos escrever um código que escolha pedra, papel ou tesoura aleatoriamente para o computador.
computador = t[randint (0,2)]
Em seguida, usaremos input
para permitir que o jogador escolha Pedra
, Papel
ou Tesoura
.
jogador = input("Pedra, Papel, Tesoura?(ped, pap, tes)")
Existem 5 possibilidades:
- O jogador escolhe
Pedra
- O jogador escolhe
Papel
- O jogador escolhe
Tesoura
- O jogador escreve
resetar
- A palavra inserida é inválida
4) Produzindo resultados separados para todas as possibilidades
Para facilitar as coisas estarei criando funções para imprimir se o jogador ganhar ou perder.
Primeiro vou escrever o seguinte código logo antes do loop while
:
mensagem = ""
Isso nos ajudará a imprimir mensagens diferentes, chamando a mesma função.
Também antes do loop while
criarei a função que será chamada somente quando o jogador ganhar, para fazer isso usarei o seguinte código:
def ganhou():
global Voce
Voce+=1
print (mensagem)
print('Computador =', PC, '\n', nome, '=', Voce)
Depois, irei fazer a função para quando o jogador perder.
def perdeu():
global PC
PC+=1
print (mensagem)
print('Computador =', PC, '\n', nome, '=', Voce)
Agora chamaremos essas funções nos lugares certos.
Em primeiro lugar, vamos supor que o resultado padrão é um empate. Para fazer isso, digite o seguinte código dentro do loop while
:
while True:
computador = t[randint (0,2)]
jogador = input("Pedra, Papel, Tesoura?(ped, pap, tes)")
if jogador == computador:
print("Empate!")
print('Computador =',PC)
print(nome,'=',Voce)
Depois, colocamos um pouco de código para cada ação que pode ser tomada.
elif jogador == "ped":
if computador == "pap":
mensagem = "Você perdeu!, Papel cobre Pedra"
perdeu()
else:
mensagem ="Você ganhou!, Pedra destrói Tesoura"
ganhou()
Já esse, seria o código para papel e tesoura.
elif jogador == "pap":
if computador == "tes":
mensagem = "Você perdeu!, Tesoura corta Papel"
perdeu()
else:
mensagem ="Você ganhou!, Papel cobre Pedra"
ganhou()
elif jogador == "tes":
if computador == "ped":
mensagem = "Você perdeu!, Pedra destrói Tesoura"
perdeu()
else:
mensagem ="Você ganhou!, Tesoura corta Papel"
ganhou()
Para a última parte, assumiremos que o jogador quer resetar o jogo ou digitou algo inválido.
elif jogador == "resetar":
Voce=1*0
PC=1*0
print("A pontuação foi resetada!")
else:
print("Essa jogada foi inválida. Selecione uma opção válida!")
O código final ficará assim:
from random import randint
t = ["ped", "pap", "tes"]
nome = input("Digite seu nome:")
print("Digite 'resetar' para resetar a pontuação")
Voce = 0
PC = 0
mensagem = ""
def ganhou():
global Voce
Voce+=1
print (mensagem)
print('Computador =', PC, '\n', nome, '=', Voce)
def perdeu():
global PC
PC+=1
print (mensagem)
print('Computador =', PC, '\n', nome, '=', Voce)
while True:
computador = t[randint (0,2)]
jogador = input("Pedra, Papel, Tesoura?(ped, pap, tes)")
if jogador == computador:
print("Empate!")
print('Computador =',PC)
print(nome,'=',Voce)
elif jogador == "ped":
if computador == "pap":
mensagem = "Você perdeu!, Papel cobre Pedra"
perdeu()
else:
mensagem ="Você ganhou! Pedra destrói Tesoura"
ganhou()
elif jogador == "pap":
if computador == "tes":
mensagem = "Você perdeu!, Tesoura corta Papel"
perdeu()
else:
mensagem ="Você ganhou!, Papel cobre Pedra"
ganhou()
elif jogador == "tes":
if computador == "ped":
mensagem = "Você perdeu!, Pedra destrói Tesoura"
perdeu()
else:
mensagem ="Você ganhou!, Tesoura corta Papel"
ganhou()
elif jogador == "resetar":
Voce=1*0
PC=1*0
print("A pontuação foi resetada!")
else:
print("Essa jogada foi inválida. Selecione uma opção válida!")
5) O Fim
Eeee, parabéns! Você acabou de fazer seu próprio jogo usando Python!
Se você ainda não criou uma conta no repl.it, certifique-se de fazer uma conta para salvar esta criação maravilhosa!
Se você estiver enfrentando dificuldades para se inscrever, assista a esse vídeo (em inglês).
Aqui estão algumas ideais do que você pode fazer:
- Considere alterar e adicionar mais recursos!
- Torne-o em um jogo para dois jogadores.
- Acabe o jogo em 3 turnos, ao invés de rodá-lo infinitamente.
- Você pode dar ao texto um efeito de máquina de escrever. (Se você não sabe como fazer, assista este vídeo)
Projetos de alguns Hack Clubbers que hackearam esse workshop:
Agora que você terminou de construir este maravilhoso projeto, compartilhe sua bela criação com outras pessoas! Lembre-se, é só mandar a URL do seu projeto!
Você provavelmente conhece as melhores maneiras de entrar em contato com seus amigos e familiares, mas se você quiser compartilhar seu projeto com a comunidade brasileira do Hack Club, não há melhor lugar para fazer isso do que no Discord do Hack Club Brasil.✨
- Clique aqui para fazer parte da nossa comunidade!
- Depois, poste o link do seu projeto no canal
💡┇criações
para compartilhá-lo com todos os Hack Clubbers!
A comunidade te espera!🎉🎉