🤔 Para Refletir :
"Fazer um jogo é sempre muito mais difícil do que jogar um jogo..."
- Rafael_Sol_MAKER

Truco (jogo de cartas) em C# com IA - Completo

Mayleone Feminino

Conde
Membro
Membro
Console.Write("Hello World!");
Juntou-se
25 de Outubro de 2016
Postagens
267
Bravecoins
3.009
partida-truco-ingles-frances-espanhol.jpg


Introdução:
Olá pessoas, como vão? Hoje estou aqui para mostrar a vocês uma aplicação que estou desenvolvendo no Visual Studio, utilizando como linguagem o C#.
Esta aplicação está sendo criada para um tutorial futuro sobre POO e lógica de programação, mas por enquanto que o tutorial não está sendo escrito, gostaria de mostrar uma prévia do que já tenho feito.



Multimídia:
E como imagens valem mais que palavras, e vídeos mais que imagens:

Ogvkzgt.png


[youtube]http://youtu.be/uo9stTDwAik[/youtube]


O que tem na aplicação:
Por enquanto a ideia é o jogo ser apenas entre dois jogadores (sem as duplas) e como é offline, o outro jogador é uma inteligência artificial.
A aplicação segue as regras do truco paulista (clique aqui se não sabe como jogar truco!), mas ainda pretendo adicionar a possibilidade de aumentar a aposta da mão para 6, 9 ou 12, porque ainda estou estudando como a I.A está realizando as jogadas e apostas.
O jogo já possui: Possibilidade de jogar as cartas da mão à mesa, distribuição aleatória das cartas do baralho para os jogadores, definição aleatória da manilha através da vira, contagem de pontos, verificação de vitórias e empates, possibilidades de pedir/aceitar ou negar truco, I.A com escolhas lógicas que dependem da situação corrente e possibilidade de cobrir a carta caso deseje.
Toda vez que é feito um pedido de truco (tanto por nós, quanto pela IA) uma mensagem diferente e "provocante" aparece. Aliás, estou aceitando sugestões de mais frases que podem aparecer nessas circunstâncias.  :XP:



Como a I.A funciona:
A inteligência artificial tem a capacidade de jogar as cartas conforme a situação atual: Se está perdendo vai tentar vencer e se está ganhando vai empatar ou matar a rodada.
Ela também pode analisar a possibilidade de pedir truco dependendo de como está a rodada e também das cartas que tem nas mãos. Também possui uma pequena chance de blefar, para deixar o jogo mais interessante e também porque nós, seres humanos, também blefamos neste jogo.
Com relação a aceitar os nossos pedidos de truco, ela pode aceitar caso tenha certeza que possa vencer, mas existe 30% de chance dela aceitar apenas pra tirar a prova se você está blefando (Ainda preciso estudar se esta porcentagem está muito alta). Com exceção dessas duas possibilidades, ela vai negar o pedido se não tiver cartas ao seu favor.
Quando a mão é da I.A ela pode optar por jogar sua carta mais fraca ou sua carta mais forte, por isso nós nunca saberemos quais cartas ela pode ter na mão.



Atualizações finais:
Enfim creio ter terminado o desenvolvimento desta aplicação (assim espero, caso não encontrem nenhum bug).
As atualizações finais foram estas: (06/01/18):

> Melhorias nas jogadas da I.A, agora tendo mais caminhos lógicos a percorrer, conforme a rodada atual e chances de ganhar/perder;
> Maior equilíbrio nos pedidos (ou aceitações) de truco por parte da I.A, que antes estava aceitando/pedindo arbitrariamente. Agora ela tem uma certa possibilidade de aceitar ou pedir truco;
> Possibilidade da I.A jogar a carta virada para baixo, caso julgue que a mesma não irá diferenciar em nada na jogada;
> Sistema de aumento de apostas (agora dá para pedir 6, 9 ou 12!) -> A I.A também tem a capacidade de dobrar a aposta, se desejar;
> Por conta da adição anterior, agora temos um contador de apostas que mostra qual o valor da aposta atual;
> Para o jogo não ficar tão silencioso, agora áudios são reproduzidos quando algum pedido de aposta for solicitado;
> Novas frases quando se pede TRUCO;
> O jogo se inicia em fullscreen, mas pode ser minimizado ou se ajustar a um tamanho menor na tela;
> Correções de vários bugs na aplicação (principalmente um que fazia a I.A 'travar' se tivesse recebido 3 cartas repetidas na mão);

Baixe em anexo:
Caso queria ver como a aplicação está funcionando (e reportar algum tipo de bug) eu deixei o executável em anexo, você só precisa ter a versão 4.0 ou superior do .Net Framework instalada em sua máquina para poder rodá-la.
Eu também estou disposta a mostrar a codificação desta aplicação antes da postagem do tutorial, basta me pedir por MP (só não garanto que você entenda o que tem lá, apesar de alguns comentários).

 

Anexos

Aplicação sensacional.

Aprender a programar com esses tipos de jogos (jo ken po, truco, dama) é muito gostoso. Na hora que a IA começa a andar e funcionar bem traz muita alegria.

Parabéns por mais uma produção bacana, professora! Só faltou narrar e berra truco no vídeo kkkkkkkk
 
Não entendi muito bem, como que vai fazer para bater na mesa e gritar bêbado?

Ok, brincadeiras a parte, gostei muito da ideia.
Acho que deve ser muito complicado programar uma AI, tendo em vista o número de possibilidades que as jogadas oferecem.
 
Caio Varalta comentou:
Aplicação sensacional.

Aprender a programar com esses tipos de jogos (jo ken po, truco, dama) é muito gostoso. Na hora que a IA começa a andar e funcionar bem traz muita alegria.

Parabéns por mais uma produção bacana, professora! Só faltou narrar e berra truco no vídeo kkkkkkkk

Realmente aprender a programar com esses jogos deixa tudo mais interessante e intuitivo! Eu pelo menos gosto bastante.
No momento estou melhorando a I.A porque ela está muito afobada pedindo truco em vários momentos, vou dar uma arrumada nisso tudo ainda hoje!
Sobre o pedido de truco... É mesmo estranho esse jogo silencioso, vou ver o que posso fazer quanto a isso, obrigada pelo comentário. XD

Niara comentou:
Não entendi muito bem, como que vai fazer para bater na mesa e gritar bêbado?

Ok, brincadeiras a parte, gostei muito da ideia.
Acho que deve ser muito complicado programar uma AI, tendo em vista o número de possibilidades que as jogadas oferecem.

Sim, esse jogo é algo tão barulhento e agitado, chega a ser estranho tudo tão silencioso, vou ver o que posso fazer a respeito.
Apesar de várias jogadas que a I.A pode realizar, não foi tão complexo assim como eu imaginava, mas dá um certo trampo sim.
Obrigada pelo feedback, pessoal! É muito importante para o desenvolvimento da aplicação.
 
Atualizações finais:
Enfim creio ter terminado o desenvolvimento desta aplicação (assim espero, caso não encontrem nenhum bug).
As atualizações finais foram estas: (06/01/18):

> Melhorias nas jogadas da I.A, agora tendo mais caminhos lógicos a percorrer, conforme a rodada atual e chances de ganhar/perder;
> Maior equilíbrio nos pedidos (ou aceitações) de truco por parte da I.A, que antes estava aceitando/pedindo arbitrariamente. Agora ela tem uma certa possibilidade de aceitar ou pedir truco;
> Possibilidade da I.A jogar a carta virada para baixo, caso julgue que a mesma não irá diferenciar em nada na jogada;
> Sistema de aumento de apostas (agora dá para pedir 6, 9 ou 12!) -> A I.A também tem a capacidade de dobrar a aposta, se desejar;
> Por conta da adição anterior, agora temos um contador de apostas que mostra qual o valor da aposta atual;
> Para o jogo não ficar tão silencioso, agora áudios são reproduzidos quando algum pedido de aposta for solicitado;
> Novas frases quando se pede TRUCO;
> O jogo se inicia em fullscreen, mas pode ser minimizado ou se ajustar a um tamanho menor na tela;
> Correções de vários bugs na aplicação (principalmente um que fazia a I.A 'travar' se tivesse recebido 3 cartas repetidas na mão);
 
Eeeeeeeeita! Eu já vim seco achando que era o tutorial, já ia colocar ele na minha listinha de aulas suas pra fazer. Estou pelejando com aqueles vídeos do Jogo da Velha(como você disse, eles estão explicando em detalhes e dá pra acompanhar melhor). Tomara que esse aí saia logo, pois estou quase terminando o jogo da velha!

Obrigado por compartilhar mais esse com a gente, May! o/
 
É um sistema bem complexo, sem dúvidas tem muita coisa pra estudar, parabéns pelo sistema e obrigado por compartilhar, May.
- Matt53
 
Bruce Azkan comentou:
Eeeeeeeeita! Eu já vim seco achando que era o tutorial, já ia colocar ele na minha listinha de aulas suas pra fazer. Estou pelejando com aqueles vídeos do Jogo da Velha(como você disse, eles estão explicando em detalhes e dá pra acompanhar melhor). Tomara que esse aí saia logo, pois estou quase terminando o jogo da velha!

Obrigado por compartilhar mais esse com a gente, May! o/

Oi, Bruce! Primeiramente obrigada pelo comentário!
Agora que terminei de desenvolver a aplicação já irei começar a escrever o tutorial sobre ela, mas como é um sistema bem complexo (principalmente por causa da I.A) ele vai estar sendo escrito em partes separadas porém, estou escrevendo a primeira parte nesse momento e já irei postar por aqui!
Ah, qualquer dúvida com relação ao tutorial do jogo da velha (ou qualquer outro) estou aí.

Syncher comentou:
É um sistema bem complexo, sem dúvidas tem muita coisa pra estudar, parabéns pelo sistema e obrigado por compartilhar, May.
- Matt53
É complexo na parte da I.A mesmo, mas farei de tudo para que no tutorial fique bem explicado, porque apesar de complexo não é difícil.  :^^':
Novamente agradeço pelos comentários, pessoal!

Até mais.
 
Voltar
Topo Inferior