Ad Code

Pedra Papel e Tesoura usando Python

Aqui neste artigo, você tem o código completo sobre como criar o jogo Rock Paper and Scissors usando Python.

E como também existe o vídeo que demonstra como funciona a lógica do código, assista ao vídeo para entender melhor o código e tente implementar novos recursos nele se pensar melhor.


Pedra Papel e Tesoura usando Python parte 1




Pedra Papel e Tesoura usando Python parte 2




Pedra Papel e Tesoura usando Python parte 3




Pedra Papel e Tesoura usando Python parte 4





Pedra Papel e Tesoura usando Python parte 5





Pedra Papel e Tesoura usando Python parte 6




Pedra Papel e Tesoura usando Python parte 7



Pedra Papel e Tesoura usando Python Código Completo

import tkinter
from tkinter import *
from tkinter import ttk

# importando o pillow
from PIL import Image, ImageTk
import random


# cores --------------------------------
co0 = "#FFFFFF" # white / branca
co1 = "#333333" # black / preta
co2 = "#fcc058" # orange / laranja
co3 = "#fff873" # yellow / amarela
co4 = "#34eb3d" # green / verde
co5 = "#e85151" # red / vermelha

fundo = "#3b3b3b"

# comfigurando a janela
janela = Tk()
janela.title('')
janela.geometry('260x280')
janela.configure(bg=fundo)


# dividindo a janela

frame_cima = Frame(janela, width=260, height=100, bg=co1, relief='raised')
frame_cima.grid(row = 0, column = 0, sticky=NW)
frame_baixo = Frame(janela, width=260, height=300, bg=co0, relief='flat')
frame_baixo.grid(row = 1, column = 0, sticky=NW)

estilo = ttk.Style(janela)
estilo.theme_use('clam')

# configurando o frame cima

app_1 = Label(frame_cima, text="Voce", height=1, anchor='center', font=('Ivy 10 bold'), bg=co1, fg=co0)
app_1.place(x=25, y=70)
app_1_linha = Label(frame_cima, text="", height=10, anchor='center', font=('Ivy 10 bold'), bg=co0, fg=co0)
app_1_linha.place(x=0, y=0)
app_1_pontos = Label(frame_cima, text="0", height=1, anchor='center', font=('Ivy 30 bold'), bg=co1, fg=co0)
app_1_pontos.place(x=50, y=20)


app_ = Label(frame_cima, text=":", height=1, anchor='center', font=('Ivy 30 bold'), bg=co1, fg=co0)
app_.place(x=125, y=20)

app_2_pontos = Label(frame_cima, text="0", height=1, anchor='center', font=('Ivy 30 bold'), bg=co1, fg=co0)
app_2_pontos.place(x=170, y=20)
app_2 = Label(frame_cima, text="PC", height=1, anchor='center', font=('Ivy 10 bold'), bg=co1, fg=co0)
app_2.place(x=205, y=70)
app_2_linha = Label(frame_cima, text="", height=10, anchor='center', font=('Ivy 10 bold'), bg=co0, fg=co0)
app_2_linha.place(x=255, y=0)

app_linha = Label(frame_cima, text="", width=255, anchor='center', font=('Ivy 1 bold'), bg=co0, fg=co0)
app_linha.place(x=0, y=95)

app_pc = Label(frame_baixo, text="", height=1, anchor='center', font=('Ivy 10 bold'), bg=co0, fg=co0)
app_pc.place(x=190, y=10)


global voce
global pc
global rondas
global pontos_voce
global pontos_pc

pontos_voce = 0
pontos_pc = 0
rondas = 5

# funcao logica do jogo
def jogar(i):
global rondas
global pontos_voce
global pontos_pc

if rondas >0:
print(rondas)
opcoes = ['Pedra', 'Papel', 'Tesoura']
pc = random.choice(opcoes)
voce = i

app_pc['text'] = pc
app_pc['fg'] = co1

# caso for igual
if voce == 'Pedra' and pc == 'Pedra':
print('empate')
app_1_linha['bg'] = co0
app_2_linha['bg'] = co0
app_linha['bg'] = co3

elif voce == 'Papel' and pc == 'Papel':
print('empate')
app_1_linha['bg'] = co0
app_2_linha['bg'] = co0
app_linha['bg'] = co3

elif voce == 'Tesoura' and pc == 'Tesoura':
print('empate')
app_1_linha['bg'] = co0
app_2_linha['bg'] = co0
app_linha['bg'] = co3

# movendo para frente
elif voce == 'Pedra' and pc == 'Papel':
print('Pc ganhou')
app_1_linha['bg'] = co0
app_2_linha['bg'] = co4
app_linha['bg'] = co0

pontos_pc += 10

elif voce == 'Pedra' and pc == 'Papel':
print('Voce ganhou')
app_1_linha['bg'] = co4
app_2_linha['bg'] = co0
app_linha['bg'] = co0

pontos_voce += 10

elif voce == 'Papel' and pc == 'Tesoura':
print('Pc ganhou')
app_1_linha['bg'] = co0
app_2_linha['bg'] = co4
app_linha['bg'] = co0

pontos_pc += 10

# movendo para tras
elif voce == 'Tesoura' and pc == 'Papel':
print('Voce ganhou')
app_1_linha['bg'] = co4
app_2_linha['bg'] = co0
app_linha['bg'] = co0

pontos_voce += 10

elif voce == 'Tesoura' and pc == 'Pedra':
print('Pc ganhou')
app_1_linha['bg'] = co0
app_2_linha['bg'] = co4
app_linha['bg'] = co0

pontos_pc += 10

elif voce == 'Papel' and pc == 'Pedra':
print('Voce ganhou')
app_1_linha['bg'] = co4
app_2_linha['bg'] = co0
app_linha['bg'] = co0

pontos_voce += 10

# atualizando a pontuacao
app_1_pontos['text'] = pontos_voce
app_2_pontos['text'] = pontos_pc

# atualizando o numero de rondas
rondas -=1

else:
app_1_pontos['text'] = pontos_voce
app_2_pontos['text'] = pontos_pc

# chamando a funcao terminar
fim_do_jogo()


# funcao iniciar o jogo
def iniciar_jogo():
global icon_1
global icon_2
global icon_3
global b_icon_1
global b_icon_2
global b_icon_3

b_jogar.destroy()

icon_1 = Image.open('images/pedra.png')
icon_1 = icon_1.resize((50,50), Image.ANTIALIAS)
icon_1 = ImageTk.PhotoImage(icon_1)
b_icon_1 = Button(frame_baixo,command=lambda: jogar('Pedra'), width=50, image=icon_1, compound=CENTER, bg=co0, fg=co0, font=('Ivy 10 bold'), anchor=CENTER, relief=FLAT)
b_icon_1.place(x=15, y=60)

icon_2 = Image.open('images/papel.png')
icon_2 = icon_2.resize((50,50), Image.ANTIALIAS)
icon_2 = ImageTk.PhotoImage(icon_2)
b_icon_2 = Button(frame_baixo,command=lambda: jogar('Papel'), width=50, image=icon_2, compound=CENTER, bg=co0, fg=co0, font=('Ivy 10 bold'), anchor=CENTER, relief=FLAT)
b_icon_2.place(x=95, y=60)

icon_3 = Image.open('images/tesoura.png')
icon_3 = icon_3.resize((50,50), Image.ANTIALIAS)
icon_3 = ImageTk.PhotoImage(icon_3)
b_icon_3 = Button(frame_baixo,command=lambda: jogar('Tesoura'), width=50, image=icon_3, compound=CENTER, bg=co0, fg=co0, font=('Ivy 10 bold'), anchor=CENTER, relief=FLAT)
b_icon_3.place(x=170, y=60)


# funcao terminar o jogo
def fim_do_jogo():
global rondas
global pontos_voce
global pontos_pc

# reiniciando as variaveis para zero
pontos_voce = 0
pontos_pc = 0
rondas = 5

# destruindo os botoes de opcoes
b_icon_1.destroy()
b_icon_2.destroy()
b_icon_3.destroy()

# definindo o vencedor
jogador_voce = int(app_1_pontos['text'])
jogador_pc = int(app_2_pontos['text'])

if jogador_voce > jogador_pc:
app_vencedor = Label(frame_baixo, text="Parabens voce ganhou !!!", height=1, anchor='center', font=('Ivy 10 bold'), bg=co0, fg=co4)
app_vencedor.place(x=5, y=60)
elif jogador_voce < jogador_pc:
app_vencedor = Label(frame_baixo, text="Infelizmente voce perdeu !!!", height=1, anchor='center', font=('Ivy 10 bold'), bg=co0, fg=co5)
app_vencedor.place(x=5, y=60)
else:
app_vencedor = Label(frame_baixo, text="Foi um empate !!!", height=1, anchor='center', font=('Ivy 10 bold'), bg=co0, fg=co1)
app_vencedor.place(x=5, y=60)

# jogar denovo
def jogar_denovo():
app_1_pontos['text'] = '0'
app_2_pontos['text'] = '0'
app_vencedor.destroy()

b_jogar_denovo.destroy()

iniciar_jogo()

b_jogar_denovo = Button(frame_baixo,command=jogar_denovo, width=30, text='Jogar denovo', bg=fundo, fg=co0, font=('Ivy 10 bold'), anchor=CENTER, relief=RAISED, overrelief=RIDGE)
b_jogar_denovo.place(x=5, y=151)

b_jogar = Button(frame_baixo,command=iniciar_jogo, width=30, text='Jogar', bg=fundo, fg=co0, font=('Ivy 10 bold'), anchor=CENTER, relief=RAISED, overrelief=RIDGE)
b_jogar.place(x=5, y=151)



janela.mainloop()

 



Enviar um comentário

0 Comentários

Close Menu