Jogo 101: criando um jogo TIC-TAC-TOE com GUI de Python | Joel Ademola | Skillshare
Pesquisar

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Jogo 101: criando um jogo TIC-TAC-TOE com GUI de Python

teacher avatar Joel Ademola, Software Developer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Introdução

      0:49

    • 2.

      Explicação do projeto

      4:09

    • 3.

      Intoduction à GUI do Tkinter

      8:21

    • 4.

      Criando buttons de GUI

      16:28

    • 5.

      Verifique se o 'X' ganhou

      14:07

    • 6.

      Verifique se o 'O' ganhou e se empate

      6:46

    • 7.

      Reinicialização de toque final

      7:36

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

93

Estudantes

2

Projetos

Sobre este curso

Você está pronto para aprender a GUI de Python para criar seu próprio jogo? Este tutorial ensina você a usar uma GUI Tkinter popular do Python para criar um jogo TIC-TAC-TOE.

Neste curso você vai aprender e



praticar:-Tkinter-GUI-Methods-Logic e.t.c

E você vai aprender como aplicar classes a um projeto real, tudo o que você precisa é do seu Editor de texto, ou seja; Código do Visual Studio, Atom, Thonny, etc.

No final deste curso, teremos programado nosso próprio jogo TIC-TAC-TOE.

Conheça seu professor

Teacher Profile Image

Joel Ademola

Software Developer

Professor

Hello, I'm a young innovative software developer. I have been in software development world for about 4 years now, I have a passion for programming and making beautiful things. I enjoy working with new technologies and solutions, and in my spare time, to read, play games, and spend time with friends.

Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução: Olá pessoal, eu sou Joel Del. Sou desenvolvedor de software. Eu poderei começar este curso, criando um jogo Tat em Python com Python O sumpter também aprendeu com esse cara em particular, Dem, o cara é muito bom, pode conferir on-line um desses cursos Neste curso, começaremos entendendo como o jogo realmente funciona e depois entendendo o modo. Vamos usar o pacote, os pacotes de interface de usuário que vamos usar. Em seguida, vamos nos conectar totalmente à construção nosso jogo neste curso, sem demora. Além disso, vamos começar. Obrigada. 2. Explicação do projeto: Bem vindos de volta, pessoal. Então, nesta parte de Victoria, vou explicar como será a aparência do jogo na segunda. Talvez pessoas que não saibam como o Tick jogou, ou talvez você não saiba como ele é jogado. Ou vamos projetar a interface nesse rebocador em particular, a interface ficará exatamente assim Teremos nossa opção em que o usuário também colocará apenas uma opção lá, o usuário pode simplesmente reiniciar o jogo ali. Teremos nove caixas neste jogo. É assim que o jogo será jogado. O primeiro, o primeiro jogador será X em dois, será X. O primeiro jogador será X, e o segundo jogador será quando o primeiro jogador jogou X. O segundo jogador joga quando o segundo jogador joga o segundo jogador joga e clica nesse botão em particular Como toda a caixa será colocada onde estamos desenvolvendo, ele pode clicar nesse botão sinalizar uma seta que essa caixa em particular foi usada. Ou até mesmo clicar em caixas que talvez já pertençam a essa caixa em particular. E X, se clicar nele novamente, sinalizará uma flecha sobre ele Vamos desenvolvê-lo e dizer que, para quando X, esse navio em particular onde dizemos X, realmente vence o jogo. No caso de termos esse particular, ela diz que o jogo, nesse sentido talvez X seja que vocês estejam lado a lado. Que talvez tenhamos X limpo. Neste temos X, neste caso temos Xs. X. Será uma forma de, se tivermos x, x, essa forma, eles dizem que X realmente vence, vice-versa. Nesse caso, tenha esses tempos específicos xy X, na verdade. Ou neste lugar, x realmente venceu o jogo. Vice-versa. Talvez também me deixe limpar essa parte. Talvez assim, na medida em que estão nesta forma ou nesta forma, ou nesta forma, ou nesta forma, ou nesta forma, ou nesta forma. Ou é x ou é uma vitória para qualquer um dos lados. Qualquer x dessa peça em particular. Talvez x, x, talvez x x ganhem para X. Talvez seja um ano. Sim. Sim, vai ser uma vitória para quem? Talvez seja de qualquer outro tipo. Então, será uma vitória, vitória para o jogador. É assim que o jogo vai ser. vemos no Nsttera quando começarmos nosso desenvolvimento usando Python . Obrigada 3. Intoduction à GUI do Tkinter: Sim, bem-vindos de volta, pessoal. Eu tenho meu jogo apenas para o jogo para o qual criei o Python. Não quero usar um nome de reserva em Python. Talvez, eu não sei, talvez haja um nome de reserva ou um jogo reservado em Python Eu não quero usar isso. Eu decidi usar. Como dito anteriormente, usaremos modo de interface Tinker Python no discurso , usaremos a interface de usuário do Tinker , você pode usar o Pycharm , você pode Tinker também é, você pode usar V V na maioria das vezes é usado para desenvolvimento de aplicativos Vamos começar. Vamos criar nossa interface usando o tinker. Eu não acho que você precise instalar o Tinker antes de usá-lo Acho que já é como seguir do Python. Existem alguns pacotes que costumavam seguir o Python. Quando você instala o Python em seu sistema, é Se o estivermos executando e não estiver funcionando, basta acessar o pip search pink diretamente no seu sistema e ele funcionará Vamos chamá-lo, vamos importar tudo nesta página. Na verdade, isso significa que você está instalando tudo da Tina Não que você esteja instalando, talvez apenas uma caixa de mensagem ou você esteja instalando apenas você está instalando tudo da Tina. especialmente Instala caixa de mensagem separadamente. Então, por dentro ou por algum motivo, você precisa importá-lo assim. Se você está familiarizado com a programação relacionada a objetos de classe em Python, ao importar algo, você precisa vinculá-lo ou pode simplesmente usá-lo para vinculá-lo diretamente a um nome específico Vou chamar o nome da minha classe de instinto, vou chamá-la de roots equal to take Quando você usa um think, tem que fazer algo assim para que todos os módulos, todo o atributo da Tina seja usado pelo root. Não se importe com isso , Visual Studio. Ao importar, ao usar um nome específico, parece que você precisa importar uma biblioteca com o mesmo nome. O que realmente importa isso, acho que r também é o nome do servidor. Não precisamos disso, eu tenho que deletá-lo. Depois disso, quero que minha interface tenha um título para dentro das colunas de string. Ligue para isso. Esse será o nome que surgirá na forma de Lembre-se de que ilustramos o software de pintura e como ele ficará O título do jogo será: esse será o nome do que eu quero ter um no meu nome para criá-lo, para que fique cada vez mais legal ter uma aparência parecida Vou enraizar quando estou chamando isso de nome desse instinto de variável instantânea específico para essa classe que eu faço Avalie todos os atributos para que possamos ver outros atributos que eu possa avaliar neste módulo. Para este pacote específico do Tinker, vou ver root Você pode ver o mapa de ícones para ver o que significa Amp para icon were wam Retorne esta parada para que você possa ler isso, entenda isso com mais frequência. Você pode acessar a documentação desse modo específico. Só aqui, eu tenho um ícone específico aqui. Esse é o ícone. Quero usar esse ícone para este curso, então vou chamar o nome de jogo. Talvez para que você não tenha esse ícone aqui, talvez faça o download ou algo possa dizer que ele voltará para esse ícone em particular. O que às vezes é mais aconselhável é simplesmente trazê-lo para a pasta do programa e salvá-lo lá para que eu possa chamá-lo da forma mais fácil possível. É isso para a última parte. Vamos usar o root. Faça isso para ver isso em particular . Você vai usar o rootlook. Pode ler mais sobre todo esse método Eu vou te mostrar. Se você não colocar essa aparência principal lá, verá o que vai acontecer. Deixe-me comentar isso. Vamos ver o que vai acontecer. Coloque de forma que minha interface possa simplesmente aparecer ou voltar. Não vai ficar se não adicionarmos esse atributo específico a essa aparência principal agora que eu o adicionei a ela. Então, deixe-me resumir. Nós vemos nossa interface. Esta é a nossa interface de tanque. Este é o nosso aplicativo em que podemos colocar qualquer coisa aqui. Pode ser uma página de inscrição. Qualquer coisa mais divertida ou qualquer coisa que você queira usar como semicícone aqui, o ícone que eu uso e o nome do jogo já são , já criamos nossa interface No próximo tutorial, começaremos escrevendo alguns códigos nos quais começaremos a colocar todos os botões necessários e criaremos nossas funções de clique Nos vemos no próximo tutorial. 4. Criando buttons de GUI: Bem vindos de volta, pessoal. Nesta parte do tutorial, vamos seguir em frente usando Harding, botões e partes x e zero do nosso código Essa atribuição específica deseja começar a criar botões Declaramos a navegabilidade do botão. Pode escrever o código por muito tempo, basta me seguir. Vou ligar para o meu primeiro, vai ser um dentro da bunda Eu vou, você pode ver todas as coisas que eu preciso acrescentar. Então, vou chamar o nome desse instinto em particular, o nome dessa variável dentro de sua rota, o texto que estará no bot ficará vazio por enquanto por alguns motivos Vamos ver que a forma que vamos usar igual será vertical Não tenho certeza da ortografia. Vamos apenas escrever na capa. O tamanho será 20. A altura é a altura do engate será três A largura do bot será seis. Agora tem a forma de um quadrado retangular, mas o retângulo será como um retângulo vertical longo Realmente. Vamos andar em segundo plano. Bg, a cor do fundo será do sistema, será da cor das janelas, dos potros, algo como se não fosse realmente cinza ou algo parecido Para Mark, há outro nome que você precisa colocar aqui versus essa cor específica para Windows, é isso. Depois de usarmos o comando de comando, queremos que esse botão específico siga. Quando você clica no botão, o que você puxa, é isso que queremos dizer com comando. Vamos usar lambda, lambda, lambda, coisas lambda Escolhemos essa função específica que será clicar em clicar é uma função. A função que ele aceitará. Vou aceitar o nome dessa variável. Vamos aceitar o nome dessa variável, B. Não importa o que está dizendo, eu clico. Por causa desse erro, nossa função cria uma função clique, clique. Mas, por enquanto, vamos passar. Você não quer fazer nada, quer continuar com o código, não pode simplesmente pagar indenização. Quando você vê esse código específico, siga em frente. Não espere de acordo com nossa lista. Nove botões, 123-456-7789 Agora só temos um Eu só vou copiar um. Vou apenas copiar este e alterar o controle. Se você estiver usando o código do Visual Studio como meu único controle D, vou colocar espaço nele, significando que esse Ft e esse Luv, para seguir em frente, controlam VV, vou mudar o nome. Serão dois, nove, lembre-se aqui também aqui. Você vai mudar isso. 8.9 criamos com sucesso nossos botingst's. Execute-o e veja como o bot realmente se parece. Talvez até estejamos dirigindo ou estamos. Lembre-se de onde você é colocado no botão, todo o código que você deseja escrever deve estar dentro dele. Para qualquer coisa fora da zona não vai funcionar. Vamos executá-lo e ver. Então, o que não está aparecendo? Os botões estão aparecendo. Agora, para resolver isso, há algo chamado grade nesse particular Se você também está acostumado a desenvolver um site ou a desenvolver um aplicativo, entender a grade que é grade RID é como colocar tudo dentro. Cada um vai aparecer para isso. Eu digo um, ótimo. Então você está dizendo que coloque este em zero, coluna zero. Coluna zero. Então, eu vou copiar isso. Continue. 56789. Sim. Sim. Vou mudar isso 123456. Eu vou mudar onde cada um deles estará. Eu quero que todos esses estejam em zero. Isso significa 123. Cada coluna um, essa coluna dois, essa coluna três a três, todas elas têm colunas diferentes. Esta é a 021 e a rota dois, você deve estar se perguntando por que é a nº 12 e a rota três Na programação, nossos números começam de zero a nove ou infinito. Começamos a partir de 01, todos eles estão em um. Esta será alterada para a coluna um, coluna dois. Os que vão mudar, hum, 111,1 para dois Vamos dar uma olhada nessa zona, talvez funcione. Agora vamos executá-lo. Nossa, agora temos nossos botões. Temos todos os nossos botões em um lugar separado. Olha para mim, a flecha. Vamos fazer isso de novo. Pare com isso de novo, agora temos nossas opções. Nada está acontecendo se eu clicar nessa virada de x para zero x, ou onde está acontecendo quando vamos usar essa função específica, essa função, vamos declarar onde primeiro x, onde você clica Gire para o início do passe. Eu vou removê-lo. Vou declarar duas variáveis fora dessa função Vou declarar que a primeira variável clicada em Eu quero clicar Clique está reservada clicada Vou entender por que estou usando essa lógica e igual a zero. Vamos usar essas duas variáveis volta à minha função click. O que acontece quando clicamos em um clique? Vamos colocar um argumento para que, lembre-se, mas há um argumento específico lá dentro. Pelo amor de Deus, o programa não vai ser como uau. Estamos colocando 123 como argumento, como parâmetro para essa função. Olha, esse argumento ou essa função específica não está aceitando nada. Vamos apenas usar um parâmetro B, essa função. Vamos escrever sobre o que deve acontecer quando estamos fazendo isso. Vou apenas chamar as duas variáveis globais I. Vou chamá-las variáveis globais para clicar e o que deve acontecer? Estou dizendo que depois de chamar as duas variáveis, vou declarar algumas condicionais Vou usar a declaração if para fazer alguma coisa. Isso é o que acabei de fazer, as oito linhas de código. Estou dizendo que, em brace, este é o mesmo tipo que está colocado aqui Estamos dizendo que se um texto estiver vazio com esse colchete, isso me dará a oportunidade de avaliar qualquer coisa dentro disso, qualquer propriedade disso Mas eu posso mudar o, eu posso mudar, eu posso mudar o plano de fundo disso usando este clique de colchete Essas condições ainda permanecem as mesmas quando eles clicam nesse botão. X deve mudar para X deve mudar de verdadeiro para força e o contador deve ser mais um. O que estamos fazendo aqui é que, na primeira vez que o usuário clicar, o X mudará o clique para forçar. A segunda afirmação é se uma caixa específica está vazia, outra caixa está vazia e clique está, isso significa que X já fez sua própria parte. O clique mudará o texto da caixa para, isso mudará. Clique em voltar para verdadeiro e vou aumentar. Isso vai continuar a partir de x0x 0x0x0 000x0. Esse contador significa que talvez depois de eu usar a contagem talvez as forças sejam jogadas, x0x 0x0x0, nenhuma delas realmente Nenhum deles. Nem Xia. O contador será igual a nove. Queremos terminar o jogo a tempo e reiniciá-lo novamente. É por isso que estou usando a variável. Você vai ver se o usuário realmente clicar no mesmo botão novamente, o que deve acontecer? Então eu vou dizer L para mostrar a caixa de mensagem. Mensagem é onde vamos usar nossa caixa de mensagem, er, er, o que deveria ser? A mensagem será vinculada à primeira questão da U Pm, ou o argumento que devemos inserir é uma forma de força e deve ser o T. Depois disso, temos a mensagem. Vou colocar o T. Depois disso, vou colocar a mensagem selecionada. Essa será a mensagem, ela esperará para o usuário. Vamos rodar essa coisa e ver o que temos feito até agora. Talvez realmente esteja escrevendo, porque depois de escrever, depois de escrever por engano, tudo ficará bem. Agora. O primeiro clique é, uau, está realmente funcionando Você pode ver se eu clicar no mesmo botão novamente? Veja a caixa de entrada já selecionada. O jogo está funcionando perfeitamente bem. Se você notar, este é um jogo ganhador para X. Mas, na verdade, está funcionando, é nisso que vamos trabalhar. Na próxima. Vamos resolver se ganhamos e se ganhamos vemos na próxima Storia 5. Verifique se o 'X' ganhou: Sim, bem-vindos de volta, pessoal. Nesta parte da história, vamos fazer o check-in, o passageiro vence o jogo. E vamos colocar algumas condições nas quais talvez seja X, talvez X esteja na caixa 12, caixa três. Isso é um vento para x. Vamos considerar tudo neste jogo se x for 2,3 tem vitória para x. Se x estiver em 14,7, haverá uma vitória se x estiver em 15,9, ganha se x estiver em 25 e x ganha se x estiver em 6,9, o vento ex está em 456, ex é 789, há uma vitória ex é 789, Vamos escrever e vice-versa, para zero. Se zero estiver em todas as condições que eu coloquei para x, isso é uma sorte inesperada Vamos escrever uma declaração que fazemos todas essas coisas por nós. Vai ser uma longa distância de codificação. Acho que se você souber o que fazer nessas partes e seguir em frente, devolva o vídeo e continue. Vamos declarar uma função de função que fazemos todas essas coisas verificar se uma, essa será a função que fazemos e você não aceitará nenhum atributo , parâmetro ou argumento interno Vamos declarar uma variável global interna. Para chamar a variável global, o vencedor é igual a falso X. Tenho que começar com uma Declaração condicional. Eu te disse que se você quiser avaliar todos os atributos dentro desta caixa, hum, então se um pegar igual, igual a x dois, eu vou copiar dois a três iguais a x. O que deveria acontecer? mudar a cor dessas caixas para verde e depois imprimir uma mensagem dizendo que X vence o jogo ou coisas assim. Então, vamos começar uma configuração. A configuração pode mudar de cor. Uma grande cor BG. Vou trocá-lo por grão. É a mesma coisa que vou fazer pelo resto. Vou apenas duplicar isso de uma forma para que as cores mudem para granulação Então, depois que esse gêmeo se tornar verdadeiro, teremos uma caixa de mensagem que entregaremos. Lembre-se de que queremos colocar a mensagem do nome, minha querida criança. Caso contrário, vamos desativar todas as flutuações. Desculpe, seremos desativados. Desative os dois e também será uma função. Não declaramos nenhuma função como essa Então, vou tirar o pó imediatamente e usar a outra lógica do passe. Então, vou me desculpar , mas agora eu vou passar. Isso é para a primeira caixa. Isso é para a primeira caixa é isso que é o suporte da caixa. 123. Então, vamos continuar com 456789 e o resto é É assim que vamos continuar. Vou declarar uma declaração LC por uma questão de tempo, vou apenas copiar isso Sim, este vai ser 45,6 então será B B 5,6 Então eu vou mudar isso, 45,6 Então vamos continuar Eu ia copiar isso. Duplique, desculpe. Eu ia duplicá-lo e mudar para 789. mesmo que 78,9 O que vamos fazer 125-819-8159 Vou continuar copiando e colando aqui. Então eu vou fazer 25, vou fazer um para sete. Eu quero completar tudo, um por um, será 4.7. Você pode usar este trove substituto para este caso Acho que serão materiais porque temos muitos sete anos. Isso interromperá algum outro código e eu não quero nenhuma alteração de volta para 11 a quatro após essa condição Então, vou passar para 258. Este vai ser 25,8 Sim, 25 e dois E o que mais? Vamos verificar 25258. Vamos apenas 369-36-9369 pedir desculpas, 369369 . Que outra zona permanece? O 159 próximo 59959. Sim, 59 a 159. Saída 159. Então, é enviado na ordem 357 a 5,10 no mesmo ano, 35,7 Então eu acho que isso é tudo Então, acho que está faltando um Não, eu faço 4725869. Não acho que exista apenas um com 696. Não, não tenho nenhum 69. Talvez tenhamos excluído por engano, então vamos fazer isso agora Nove, 69. 69. Acho que estamos com todo o X. Vamos executá-lo e ver se ele vai funcionar Sim, é. 10 x0x0. Oh, não está funcionando? Não está funcionando? Ah, sim, não vai funcionar. E deixe-me verificar. Sim, você vai chamar a função check e. Eu vou verificar se há uma também. Vamos ver. Agora, deixe-me ver. Nossa, não está funcionando. Agora está funcionando perfeitamente. Agora eu posso clicar em outra coisa. Podemos clicar em outra coisa. E não deveria ser o que esse botão desativado realmente significa para a rede. Vamos trabalhar nisso, verificando que todas essas condições que fizemos para X, hum, estão realmente funcionando. Além disso. Isso será para o ninho. História, eu no ninho. 6. Verifique se o 'O' ganhou e se empate: Bem vindos de volta, pessoal. Nesta parte, vamos verificar as asas. Verificamos a asa X. Ele ainda estará na mesma função. Vai continuar a partir de el. Eu já fiz isso sozinho. Só vou copiar e , para facilitar, basta copiar tudo e alterar a zona para talvez você esteja usando letra maiúscula, esteja usando zero. Indique-o para que não haja uma restrição. Você alterará tudo de um para um. Além disso, você vai trocá-lo por tudo porque o condicionador é na verdade o mesmo Então, vou superar aquele em que trabalho sozinho. Me desculpe Ok, esse é o vídeo e trabalhe sozinho. Também colete algumas caixas aqui. Vá usar isso, deixe-me copiar isso e usar isso. Você também pode usar algo assim para o seu X. E não é aconselhável, não somos muito cuidadosos Você cometeu muitos erros, você vai cometer muitos erros. Eu não gosto de mudar isso. Então eu mudo, acho que agora não tenho todas essas condições para X e no meu código, então vou apenas indicar se vencer essa condição é perfeita. As ameixas foram preenchidas e ninguém realmente ganha. Quando vamos fazer uso disso, podemos declarar da outra vez? Não pode ser uma variável declarada que isso não pode ser variável. Declaramos outras vezes quando vamos fazer uso dele. Na outra vez, estamos aumentando, à medida que os jogadores clicarem no botão , ele continuará aumentando, aumentando, aumentando. Vamos verificar se há empate, se há empate, o que deve acontecer? Vamos declarar uma declaração condicional. O corte é igual, igual a nove, igual a quatro. Ainda significa que ainda não há como eu saber o que deveria acontecer? Caixa de mensagens, precisamos que nossa mensagem seja exibida desta vez. Eu só vou copiar esta por uma questão de tempo, veja, te mostrar esta outra linha. Só vou dizer que nenhuma asa vai aparecer desse jeito. Vou desativar todo o botão. Vou usar desativado ou BTN, BTN. Vamos trabalhar em nosso botão desativado para que ele não se separe. Ele funcionará se estiver desativado será one.com Fig state state of the Então, vou configurar o estado do botão. Deveria ser desativado, desculpe, vai ser desativado. Deficiente. A parte inferior está desativada. Isso só funciona para um, então vou copiá-lo para 256789, não altera os anúncios, o botão será desativado O que aconteceu aqui foi o erro. Oh, na verdade, vou designar mais dez anos. Deveria ser como, acho que não há erro. Agora, vamos executá-lo e verificar se tudo está funcionando perfeitamente agora. Deixe-me tentar ganhar, ok? Uau. Você pode dizer que está funcionando? Não consigo reiniciar novamente. Eu só tenho que cancelar o jogo de uma vez por todas. Deixe-me fazer um empate para que ninguém realmente ganhe. Deixe-me tentar fazer algo assim. É uma gravata. Ninguém ganha. Na verdade, está funcionando. Mas depois disso, suponho que eles deveriam ser uma opção para eu reiniciar o jogo. É nisso que vamos trabalhar. No Nestor, vamos criar um botão de menu no qual o usuário pode reiniciar o jogo Digo para vocês, Nik, você. 7. Reinicialização de toque final: Provavelmente, na última parte do tutorial, queremos criar uma função e um menu que façam com que o usuário reinicie o jogo. Isso significa reiniciar novamente. Na parte inferior do nosso código, acho que é mais variável para colocar. Ainda não será uma função informal, mas vamos chamá-la de função For that. Vamos apenas criar um menu. Cardápio. O menu é um menu de funções, então vou chamar o root dentro do mestre. Verifique o acento do menu para o mestre. O mestre dessa coisa é a rota. Você se lembra de quando clicamos na rota depois disso para configurar o menu root rot configure menu Depois disso, também criamos o botão na opção dentro do menu. Será um menu de opções. A opção é outro menu de opções igual ao menu dentro dele. Vá passando pelo meu menu e depois você poderá ler muito na documentação sobre as estrelas. Depois disso, vou dizer meu menu, vou adicionar mais dez Ski. Isso será uma etiqueta, então eu tenho que passar a etiqueta dentro dela. O rótulo será opção que será uma forma de string. Depois desse menu chamado menu de opções. Depois disso, passe o menu de opções, menu de opções, adicione o comando. Eu quero adicionar o comando. Esta opção em particular seguirá os sinos que serão reiniciados, reiniciados E, na verdade, um erro, o comando set game será reiniciado. Para ser reiniciado, o reset será uma função. Vou jogar a função, vou declarar o motivo pelo qual estou declarando a Eu não quero que a Decer simplesmente escreva tudo isso de Esses deveres e deveres. Deveres. E eu vou apenas colocar reset. Sim, eu vou colocar todas essas coisas dentro dele. Todos os comandos que eu tenho dentro dele só vou chamar uma variável para dentro dele. Vai ser um 3456789. Não é como a variável que eu passo para ela como uma variável e também como um entusiasmo Então, depois dessa declaração verdadeira, na outra vez zero, eu a declaro dentro desse botão de reset Então essa função de reset, a função vai saber, eu vou chamar a função aqui deste formulário, que quando o jogo para que quando o jogo começar esteja em forma de recibo, em forma de recibo, tudo esteja em forma de recibo, continue com o código e Vamos fazer isso e ver se talvez estejamos fazendo sentido. Apenas pegue. Nossa, temos a opção aqui. Reinicializar. Depois de fazer todas essas coisas, posso simplesmente reiniciar meu jogo e tentar isso. Nossa, eu nem sei. Eu posso simplesmente reiniciá-lo. Só posso continuar. Jogue. Oh, é a vitória X. Depois disso, posso simplesmente reiniciar. Um jogo é muito bom e legal. Terminamos nosso jogo concluindo este jogo pesado. Se você quiser adicionar, talvez outros recursos , ele possa fazer parte de sua avaliação. Talvez você queira adicionar um placar, talvez um X zero e, na verdade Isso significa que eles estão jogando cerca de 100, talvez 15 e todos de um. Você pode simplesmente, isso será uma função, um teste de menu e será apenas uma forma de pontuação. O nome da diferença será score e será colocado, aumentando o número tanto quanto Bs X zero somos nós Obrigado por assistirem este tutorial desde o início até agora. Eu amo vocês. Por favor, deixe um comentário para que outras pessoas saibam. Muito obrigado