O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Truco (jogo de cartas) em C# com IA

Iniciado por MayLeone, 04/01/2018 às 18:17

04/01/2018 às 18:17 Última edição: 07/01/2018 às 15:21 por MayLeone



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:







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).





[Anexo excluído pelo administrador]

Não consegui encontrar uma gif adequada, imagine alguém batendo a mão na mesa.
[close]

"Vem se for bife" \o/
Haha, muito interessante. Nem consigo vencer. Excelente, e já podemos esperar um senhor tutorial vindo por aí?

Obs: Por aqui a frase mais citada é: "Truco você e sua família inteira." Não me pergunte o porquê.

Citação de: Corvo online 04/01/2018 às 18:41
Não consegui encontrar uma gif adequada, imagine alguém batendo a mão na mesa.
[close]

"Vem se for bife" \o/
Haha, muito interessante. Nem consigo vencer. Excelente, e já podemos esperar um senhor tutorial vindo por aí?

Obs: Por aqui a frase mais citada é: "Truco você e sua família inteira." Não me pergunte o porquê.

Obrigada pela sugestão, Corvo, será adicionada! Haha
Sim, em breve irei fazer um tutorial sobre esta aplicação, só aguardar que sai.
Obrigada pela resposta, é muito importante.

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);

07/01/2018 às 11:15 #4 Última edição: 07/01/2018 às 11:29 por Corvo
Agora não consigo ganhar mais.  :facepalm:


Excelente, só ficou um bug ao aumentar as apostas. Quando passa de doze, a IA continua aumentando e, se o jogador aceitar e aumentar, fica um ciclo eterno:


07/01/2018 às 13:52 #5 Última edição: 07/01/2018 às 15:20 por MayLeone
Obrigada pelo report, Corvo! Eu vou corrigir isso agora mesmo.  :XD:




EDIT: Corrigido! =)