A proposta do projeto é a implementação de um mecanismo para controlar um jogo, utilizando diversos recursos da plataforma para exemplificar a evolução humana com os diversos módulos da arquitetura.
Como base de estudo, utilizaremos o jogo de blackjack (21). O objetivo é ter mais pontos do que o adversário, mas sem ultrapassar os 21 (caso em que se perde). A mão mais elevada no blackjack é um Ás e uma carta de 10 pontos e é chamada justamente de blackjack. O jogador ganha se a sua mão tiver mais pontos que a do dealer, sem ir acima de 21. Assim uma mão de 21 pontos é a mais elevada e é por isso que o jogo é chamado às vezes de 21. Se o jogador ou o dealer forem acima de 21 perde automaticamente. Depois que todos os jogadores jogaram suas mãos, da esquerda do dealer à direita, o dealer jogará sua mão. O dealer não tem nenhuma vontade livre mas deve sempre jogar por determinadas regras da casa.
A forma prática de jogar é a seguinte:
A arquitetura escolhida para a implementação é CLARION, pois se aplica diretamente a evolução proposta nesse projeto.
Podemos dividir as habilidades em 3 tipos:
O jogador iniciante, joga as cartas ao acaso, como se fosse um "chute". Nesse caso, podemos utilizar o módulo de ACS do Clarion, sem regras definidas, sem conhecimentos pré adquiridos, metacognição ou motivação.
A arquitetura é bem simples e pode ser resumida com a figura abaixo.
PlayerBeginner.ReceiveFeedback(si, 1.0); //para vitória
PlayerBeginner.ReceiveFeedback(si, 0.0); //para estouro
PlayerBeginner.ReceiveFeedback(si, 0.5); //para empate
Para o jogador intermediário, ele é tendencioso. Após algumas poucas jogadas, pode-se notar que com experiência prática, chega a um valor X, podemos dizer aqui 16 ou 17 que, quando a somatória das cartas atuais atingir esse patamar, podemos parar a jogada, pois as chances são altíssimas de estourar.
A arquitetura do agente intermediário pode ser resumida na figura abaixo.
O jogador avançado pode ter diversas formas de implementação e utilizar diversos recursos da plataforma Clarion, como NACS, metacognição, motivação. Uma maneira mais simples e funcional de se implementar essa estratégia é pela contagem de cartas. Alguns métodos podem ser escolhidos e de tal forma podemos codificar nosso Agente.
Hoje temos bem difundidos alguns métodos de contagem, porém em nosso projeto vamos abordar o sistema HiLo pois ele é uma evolução das regras definidas no Jogador Intermediário desse projeto. Nesse método as cartas possuem pontuação. Cartas 2 a 6 valem 1, 7 a 9 valem 0, 10 a A valem -1. Dessa forma, acompanhando a contagem, após aproximadamente metade das cartas corridas, podemos ter uma noção grande de quais cartas são as predominantes no final do deck (cartas altas ou baixas) e considerar isso na sua meta. Caso tenhamos cartas mais baixas no deck, podemos aumentar nosso limiar . Caso tenhamos cartas mais altas no deck, podemos diminuir nosso limiar.
Tomando por exemplo o Jogador intermediário, que possui um valor fixo de 16 ou 17, o jogador avançado aumenta ou diminui esse valor ao passar do tempo, baseado no peso das cartas restantes no deck.
A arquitetura do agente avançado pode ser resumida na figura abaixo.
Devido a alguns problemas técnicos, não foi possível a conclusão da implementação do jogador avançado.
Como resultado, pudemos acompanhar melhora significativa na eficiencia do Basico para o Intermediário, de 30% de casos de vitória em 1000 rodadas para o básico, para 60% no intermediário. A queda de estouros foi muito significativa tambem.
O código pode ser encontrado aqui.
Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer