Skip to content

RoadMapPython/Interface-Grafica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interface-Gráfica

//Interface Gráfica utilizando Tkinter para a construção do jogo Pedra, Papel e Tesoura

Vídeo aula no YouTube: https://youtu.be/1LpHxmqU4AE

Faala Dev!!!

Seja bem vindo ao nosso terceiro passo nessa viagem buscando mais conhecimentos de Python. Um prazer imenso rever você aqui com a gente, aperte o cinto pois embarcaremos em mais uma viagem.

Nesse terceiro momento realizaremos a criação de uma interface gráfica para o jogo de Pedra, Papel e Tesoura ou o mundialmente conhecido Jokenpô.

Além desse texto, temos também um pequeno trecho da nossa live realizada ao vivo na Twitch! Disponibilizamos ele no canal do YouTube!

Cada código realizado durante a nossa jornada sempre estará disponível por aqui, no nosso GitHub do projeto: RoadMapPython.

Divirta-se e mãos à massa.

//Precisamos importar as bibliotecas que vão nos auxiliar nesse novo desafio

from random import randint /// Irá auxiliar à maquina na escolha de um número aleatório from tkinter import * /// Será responsável pela nossa janela gráfica from PIL import ImageTk, Image /// Nos auxiliará na manipulação das fotografias (importar as fotos e redimensionar)

#Iniciando a janela gráfica tela=Tk()

#CPU gerando um numero aleatório maquina =randint (1,3) print(maquina)

Agora iremos criar funções para o resultado de cada tomada de decisão do usuário.

                  Calma, Calma Gafanhoto

Pense que você entra numa biblioteca grande, cheia de livros clássicos, de ficção , romance, quadrinhos e HQs, todos eles organizados em ninchos específicos em prateleiras que condizem com sua classificação, no nincho de clássicos, estarão presentes os livros de Guimarães Rosa, Mario de Andrade, Machado de Assis, dentre outros autores.

Daí você decide que naquela tarde chuvosa de domingo, gostaria de ler uma HQ do Homem Aranha, em meio aquela enorme biblioteca onde será que você irá obter sucesso ao procurar o seu HQ favorito?

Exatamente meu pequeno gafanhoto, no nincho de HQs.

Ao trabalharmos com funções em programação estaremos trabalhando com pequenos blocos de códigos que executam uma função bem definida.Logo, ao procurarmos as respostas para a tomada de decisão do computador é so ir no bloco definido e entender como o computador irá responder ao ser exposto aquele cenário.

//Vamos trabalhar com funçoes, dividindo cada possibilidade de jogada em um bloco

#Função Pedra def Pedra():

jogadajogador["text"]="Voce Jogou Pedra"

#Pedra

if maquina==1: # Caso o Jogador selecione Pedra e a Máquina Pedra # Obteremos um empate

     Empate["text"]="Empate"
     jogadamaquina["text"]="A maquina jogou Pedra"

elif maquina==2:# Caso o Jogador selecione Pedra e a Máquina Papel # Obteremos uma derrota Derrota["text"]="Derrota" jogadamaquina["text"]="A maquina jogou Papel"

elif maquina==3:# Caso o Jogador selecione Pedra e a Máquina Tesoura # Obteremos uma vitória Vitoria["text"]="Vitoria" jogadamaquina["text"]="A maquina jogou Tesoura"

#Função Papel def Papel(): jogadajogador["text"]="Voce Jogou Papel"

if maquina==2:

       Empate["text"]="Empate"
       jogadamaquina["text"]="A maquina jogou Papel"

elif maquina==1: Vitoria["text"]="Vitoria" jogadamaquina["text"]="A maquina jogou Pedra"

elif maquina==3: Derrota["text"]="Derrota" jogadamaquina["text"]="A maquina jogou Tesoura"

#Função Tesoura def Tesoura(): jogadajogador["text"]="Voce Jogou Tesoura"

if maquina==3:

     Empate["text"]="Empate"
     jogadamaquina["text"]="A maquina jogou Tesoura"

elif maquina==1: Derrota["text"]="Derrota" jogadamaquina["text"]="A maquina jogou Pedra"

elif maquina==2: Vitoria["text"]="Vitoria" jogadamaquina["text"]="A maquina jogou Papel"

Agora precisamos obter as fotos presentes na pasta, redimensionar elas e mostrar na tela.

Nessa interface gráfica construíremos botões com as imagens correspondentes.

Um botão com a foto de uma pedra, um para papel e para tesoura.

//Obter foto e redimensionar

photo1 = PhotoImage (file='pedra.png') photoimage = photo1.subsample(3, 3)

//Botao feito com a imagem

botao=Button(tela, image=photo1,command=Pedra) botao.place(x=100,y=100)

//Obter foto e redimensionar

photo = PhotoImage (file='papel.png') photoimage = photo1.subsample(10, 5)

//Botao feito com a imagem

botao1=Button(tela,image=photo,command=Papel) botao1.place(x=300,y=100)

//Obter foto e redimensionar

photo2 = PhotoImage (file='tesoura.png') photoimage = photo1.subsample(1,1 )

//Botao feito com a imagem

botao2=Button(tela,image=photo2, text='Tesoura',command=Tesoura) botao2.place(x=500,y=100)

Precisamos agora de um título para a aplicação, e algumas mensagens para serem exibidas em caso de vitória, derrota ou empate

//Titulo no topo da janela do Tkinter

Titulo=Label(tela,text=" Pedra , Papel e Tesoura",anchor=W).place(x=280,y=10,width=150,height=20)

//Mensagem na tela (Vitoria,Derrota e Empate)

Vitoria=Label(tela,text="",foreground="Green") Vitoria.place(x=300,y=250)

Derrota=Label(tela,text="",foreground="Red") Derrota.place(x=300,y=250)

Empate=Label(tela,text="",foreground="Gray") Empate.place(x=300,y=250)

//Jogada do Player

jogadajogador=Label(tela,text="") jogadajogador.place(x=300,y=300)

//Jogada da CPU

jogadamaquina=Label(tela,text="") jogadamaquina.place(x=300,y=350)

Por último,nosso botão sair, para fechar a aplicação e as dimensões da nossa janela gráfica

#Botao sair Sair=Button(tela, text='Sair',command=exit) Sair.place(x=300,y=400)

#Dimensões da janela gráfica tela.geometry("800x400+0+0") tela.configure(background="#800080") tela.mainloop()

Código completo no repositório

Autor : Emanoel Faria ( GitHub : @ Whoefa)

Referências :

Codemy : https://www.youtube.com/watch?v=YXPyB4XeYLA

DCC UFRJ : https://www.dcc.ufrj.br/~fabiom/mab225/14gui.pdf

About

Interface Gráfica utilizando Tkinter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages