e fala moçada beleza a professora um voltando para o nosso curso de python e na aula de hoje nós vamos desenvolver vamos começar a desenvolver um jogo da velha isso aí vamos praticar seguindo a linha da aula das aulas é aula retrasada né que nós terminamos uma fática nós vamos começar o outro exercício uma outra parte prática onde nós vamos desenvolver o jogo da velha é isso é bom que nós vamos praticar muitas coisas que nós vimos até agora no curso de python beleza esse é o nosso conteúdo aula de hoje se você não é
inscrito se inscreva no nosso canal meu bom já clica no sininho assim você não perde nada também já deixa aquele super like aqui no início do vídeo para garantir que você não vai esquecer para o final sabe o que que ajuda também você seguir a gente nas nossas redes sociais então segue a gente no insta e no face para compartilhar espalhar o nosso com teu esse é o objetivo que seguir a gente nas nossas redes para espalhar o nosso conteúdo e ter cada os inscritos aqui no nosso time beleza vamos lá então para aula de
hoje eu já estou com código pronto aqui certo é tudo isso aqui que nós vamos fazer para desenvolver esse game aqui ó então hum activos y tá aqui o nosso jogo da velha certo e como é que a gente joga nós vamos selecionar uma linha e uma coluna tá vendo eu numerei aqui as linhas e não mereço colunas e ele tá falando aqui para gente é o dia de uma linha talvez pulei linha zero pois é que eu quero né sou eu quero marcar nessa posição aqui ou então linha zero colunas é então linha em
t0 coluna zero em ter tá aqui ó nós marcamos aqui um x e o computador já jogou então a gente tá jogando com um x e o computador jogando com a bolinha e ele já jogou aqui ó a mesma e aí a nossa já tem duas jogadas né na nosso manda o computador e mais agora nossa vez de novo então agora eu quero uma e é aqui ó quero marcar aqui certo até marcar na linha zero coluna dois então linha zero coluna 2 marcou o nosso x aqui e o computador também já fez uma jogada
e já jogou aqui para gente fechar o game eu vou jogar aqui ora-01110 coluna um ele verificou a fim de jogo resultado jogador x venceu jogar novamente se eu selecionar aqui os sim o s pressionar o enter ele reseta e reinicia outro jogo beleza jóia bom tem muitas coisas que vocês podem fazer nesse jogo da vera por exemplo vocês podem marcar o número de vitórias do jogador número de vitórias da cpu vocês podem implementar uma inteligência é mais ativa né nas jogadas da cpu o caso aqui que nós vamos e são jogadas aleatórias então cpu
joga nós estamos usando random aqui tá vendo ele vai sortear até encontrar uma posição vazia e vai jogar ali naquela posição fazia ok eu não implementei muitos controles também não vocês vão implementar isso aí é no de vocês tá certo eu vou apagar tudo isso aqui para gente começar do zero fazer uma que têm cores gente usa matriz entre os uma série de coisas aqui ó ó é vamos lá vamos apagar tudo aqui ó a gente começar do zero eu vou deixar só os importes aqui então é o seguinte é tão importante aqui o oeste
que nós vamos utilizar o limpar tela né o gogos ls randon que nós vamos precisar de números aleatórios e o colorama que nós vamos utilizar cores e aqui do from colorama tua importando o fole para acordeon da cor do texto é a cor da frente o beck para cor de fundo e já estou importando e aqui também que permite configurar o estilo da fonte é deixar um pouquinho mais grossa um pouquinho mais fina normal não tem muitas coisas de estilo não é e pode usar é eu inclusive acho que nem eu não é nesse código
que eu apaguei eu nem utilizei o style eu te importado que eu não sabia se eu usar ou não mas eu deixo aqui certo se vocês quiserem arriscar e não uso de style primeira coisa então que nós vamos fazer vão ser declarar as variáveis globais do nosso código ok do nosso jogo então vou colocar aqui uma uma variável chamada jogar novamente novamente e vou iniciar ela já com o texto sim e essa maria vai servir para indicar se o jogador quer jogar novamente ou não após uma jogada se ele quiser jogar novamente ele vai determinar
o valor dessa variável tá certo tá vai servir para isso jogadas jogadas para determinar o número de jogadas e foram feitas no nosso game tá isso aqui é importante que o jogo da velha o número de jogadas limitadas eu tenho o número máximo de nove jogadas certo se é houveram nove jogadas e não te ver se eu dou significa houve um empate essa regra básica do jogo da velha certo vou terminar aqui uma variável para indicar quem joga e eu vou iniciar ela com o valor 22 vai ser o jogador e um vai ser a
cpu se vocês quiserem fazer isso ao contrário fica ao gosto de vocês eu vou indicar uma variável telmax jogadas com o número máximo de jogadas possíveis sobre a diminuiu o número máximo de jogadas é aqui aumentar não tem jeito porque não tem jeito né do jogo dela tradicional com nove casos tem mais de 9 jogadas tá certo é bom vou criar uma variável também que eu vou chamar de vit que vai ser implementada aqui na função e a vitória tá no retorno vai receber o retorno da função de verificar vitória inicialmente eu vou iniciar vou
colocar ela como não ok ela pode ser do tipo falso pode pode ser do tipo falso é boolean que o ou falso também tá se você quiser implementar dessa maneira e aqui eu vou criar a a nossa matriz que vai ser um list que vai ser a nossa matriz do jogo da velha certo é o são limites são três vezes de três posições dentro da nossa list para ficar mais fácil entendimento eu vou separar assim ó certo nessa formatação para vocês entenderem aqui as posições então a primeira list vai ter três posições em cada posição
eu já vou iniciar com o espaço ok beleza é você que é a primeira list eu vou implementar mais duas listes dentro dessa outra list e tal conceito de matrizes aqui é como se eu tivesse três linhas uma duas três e três colunas uma duas três certo então implementei a nossa matriz do jogo da velha com 9 posições ok três linhas com três pontos nas cada e cada posição eu já adicionei que um espaço em branco esse espaço vai servir para formatação para nós de desenhar a matriz ele é desenhar sem o espaço ok se
fizer a ser um espaço e vai ser de ver se é ruim porque a hora que ele foi adicionando o xizinho ou a bolinha ele vai adicionar o espaço da do caracter certo aí vai perdendo a formatação é por isso que eu já inicializei com esse passo a nossa matriz por enquanto são essas variáveis que nós vamos utilizar e nós precisamos implementar uma função que vai ser responsável por desenhar a tela essa responsável pelo gerenciamento da tela e ela vai vim para a tela certo e vai desenhar a matriz qual as jogadas tanto do jogador
como da cpu o jogador recebeu o vou jogar em cima da matriz ok e vai vou adicionar os seus símbolos né oxe sou a bolinha ok e nós vamos redesenhar essa matriz a cada jogada cada jogada do jogador e de cpu nós vamos redesenhar essa matriz vai apagar e a desenhar com as jogadas para isso então fica mais fácil de criar uma função que nós vamos chamar de tela ok beleza né na função tela nós vamos precisar utilizar a matriz na nossa matriz velha ok então a gente vai definir a todo momento é vai redesenhar
a nossa matriz é de acordo com a desenhar na tela de acordo com a matriz teleton o print nas posições da matriz velha zero é interessante toda vez que nós formos utilizar variáveis globais certo a gente define a variável aqui ó global antes no caso da matriz velha nem tem tanta necessidade que eu não vou usar dentro de loop dentro de if dentro de nada então aqui eu não preciso declarar a velha como global mas eu vou de parar porque eu tenho esse costume são costume meu sempre dentro da função a que a gente usa
as as variáveis globais a gente declara que como global em alguns casos é obrigatório presente gente fosse usar essa velha dentro de um with zé ou dentro de um definido dentro de um ah eu aí eu preciso declarar como global antes aqui para indicar que eu quero usar essa variável global ok spray torna o nosso código mas está eu sou busto é nesse caso como eu não vou usar mas eu vou deixar declaração dela como global ele tem um costume meu que eu tenho costume gente sempre de declarar para não errar beleza vamos então limpar
a tela vamos chamar aqui do sistema vamos chamar o cls cls 300m para tela ok e agora vamos começar a impressão dos elementos da nossa tela então o primeiro aqui é um print com a as colunas certo então nós vamos aqui ó 12 pera aí você 12340 121 122 só pegar na minha colinha aqui se é dois ou três um dois três é que são três espaços isso aqui é porque eu já verifiquei eu já medi lá na na já fiz a impressão na eu já sei a quantidade de espaços que eu tô colocando aqui
tá eu não tô inventando agora não um que eu conferir de um dois três quatro aqui tem que ter quatro mesmo um dois três quatro eu não tô inventando né porque eu já testei certo só para sair empréstimo nas posições certinhas então agora vamos dar um print print na primeira linha da nossa matriz a primeira linha aqui na verdade a gente cabeçario agora vem a linha da matriz então nós vamos ter que buscar aqui toda essa primeira linha aqui da massa do da nossa matriz velha eu vou imprimir aqui o índice da linha foi quantos
passos eu coloquei disc 2 12 é 12 mais o valor da nossa matriz velha posição 000 100 mais a um espaço com a barrinha e outro espaço que já é o desenho da nossa matriz mesmo tá é aqui a posição 011011 mais espaço com a barrinha mas outra posição aqui da nossa matriz que a posição 02 é o que eu imprimi a primeira linha da nossa matriz velha agora vamos dar um print aqui print para desenhar o tracinho embaixo que o jogo da velha é aquele hashtag né então tem as barrinhas eles vão traz mais
verticais e as barrinhas horizontais essa aqui agora uma barrinha horizontal deixa eu ver quanto o espaço aqui também 12323 com tracinhos ausente contar aqui ó 1 2 3 há cinco seis sete oito nove dez onze um dois três quatro cinco seis sete oito nove dez onze beleza as outras aqui ó eu vou aproveitar isso aqui vou copiar e vou colar certo esse aqui é a linha 11 então aqui agora é linha 1 linha 1 ele é um beleza jóia e aqui é a mesma coisa copia e cola e tal linha dois poderia usar um for
para entrar nisso poderia sem problema nenhum inclusive fica a dica e para vocês quem quiser usar o four sem problema nenhum então desenhei aqui ó já tá indicado a nossa matriz a última aqui não tem não né porque não tem esse print não tá atendendo a nossa matriz eu vou imprimir aqui também o número de jogadas então o jô jogada se mas é o número de jogadas que a nossa variável jogadas jogadas notem que ela é uma variável inteira então tem que converter ela para stringhi também não tem a obrigatoriedade da gente fazer essa declaração
nesse caso que mas para não perder o costume né eu vou colocar aqui vai que eu preciso implementar uma função aqui dentro esqueço de a beleza só deixar como aviso que isso aqui nesse caso não teria não tem a necessidade de fazer aquela declaração como global ali certo muito bem não tem aqui não sei se vocês viram não sei se vocês repararam aqui que nós usamos algumas cores ok inclusive o número de jogadas aqui eu tinha colocado como cor verde aí por isso que nós estamos usando aqui do colorama o forbeck e style então para
a gente usar é a fonte a cor da fonte a gente vai fazer o seguinte olha só eu quero que essa fonte seja verde então nós vamos buscar lá do mori mori fora é a cor da fonte obé é a cor de fundo certo eu vou falar aqui ó forte ponto eu usei verde então vamos ficar aqui é o green mais aquele texto e na sequência aqui eu vou rezar e não o resto conteúdo vai sair verde também certo não tem nem outro print aí embaixo nesse caso aqui nem teria problema mas outra coisa também
é para prevenir problemas prevenir erros aí nós vamos fazer um reset ok beleza se ele tivesse aqui em cima fori aqui eu esqueci de fazer o reset tudo e que ia ficar da mesma cor certo aqui nem tem tanto problema não que já o fim da nossa função mas tá aí a função para desenhar a tela se eu quiser desenhar a letra tela vamos chamar ela aqui só pra gente ver a nossa tela desenhada nossa matriz do jogo da velha desenhada randy couture tie of certo tudo que nós fizemos aí para desenhar é a nossa
tela do jogo nossa parte principal da tela do jogo também é função tela desenhada e nós precisamos de uma série de outras funções nós precisamos de uma força as principais são jogar jogar jogada do jogador jogada da cpu verificar vitória redefinir o game para jogar novamente e tudo isso vai ficar dentro de um loop na verdade serão usados dois loops o loop de jogar novamente é toda vez que quiser jogar novamente ele entra dentro de cilo e enquanto estiver jogando também é um loop certo porque ele precisa repetir essas tarefas de jogador joga cpu joga
verifica vitória constantemente a cada jogada ele precisa fazer esse essas verificações então nós vamos colocar isso dentro de um loop o loop principal do nosso game e vai ser vou colocar olha só aqui loop interessante enquanto trio isso aqui é um loop infinito é isso a gente tem que tomar cuidado isso aqui é um loop infinito e enquanto eu não executar o comando break certo ele não para esse loop e aí que é o nosso game nosso bem vai acontecer aqui tem dentro ok o que que eu preciso fazer eu preciso chamar até lá ok
eu vou te chamar a tela eu preciso jogada um jogador eu preciso jogada da cpu eu preciso verificar vitória ok e preciso também é o setor é todo ele ficar vitória tão que os procedimentos certo esse aqui é o nosso loop principal do game dentro do verificar da rotina de verificar vitória eu vou colocar o frei porque eu vou verificar se ou vitória ou se o número máximo de jogadas já aconteceu eu quero um desses casos é eu vou dar o breira para ele poder sair para poder sair deste loop e finalizar o nosso me
perguntar se eu quero jogar novamente tá bom então esse aqui é o nosso look e principal se a gente deixar assim ó e rodar o nosso programa isso aqui vira um loop infinito a neta dele tá piscando aqui ele tá pensando que ele tá chamando isso aqui toda hora rodando isso aqui toda hora de uma forma muito rápido isso aqui entrou em loop infinito beleza da nossa ter esse controle aqui dobrei que vai ser implementado aqui na rotina de verificar vitória certo mas essas rotinas eu vou mostrar na próxima aula que a gente já começa
na sequência aqui do nosso game beleza então não inscrito se inscreva no nosso canal não não não ainda não clicou no joinha liga no joinha e também segue a gente nas nossas redes sociais clica no sininho também vou ficando por aqui até próximo a um abraço e e aí