Connect Four
Esta é uma aplicação web para jogar o conhecido jogo deConnect Four. Dois jogadores (A é vermelho, B é amarelo) estão a revezar-se para encher o tabuleiro com moedas, tentando ligar quatro das suas próprias moedas, seja horizontalmente, verticalmente ou diagonalmente.
Este projecto foi desenvolvido por Christian Kollmann como um projecto no curso “Software TechnologyProject”, supervisionado por Oswin Aichholzer, na Graz University of Technology.
O servidor é escrito em Java 7, utilizando a estrutura da Primavera. O cliente é escrito emHTML e JavaScript, utilizando jQuery. A compatibilidade foi testada em Chromium e MozillaFirefox a correr em Linux e Android. No entanto, a aplicação deve ser compatível com qualquer navegador como o Microsoft Internet Explorer.
Faatures
- O jogador (A e B) pode ser controlado por um humano ou pelo computador (AI)
- Escolha o nível da AI: “Perfeito” fará sempre uma jogada óptima (que pode não ser única), “Apenas ganhar” escolherá aleatoriamente uma jogada vencedora (se disponível, e não necessária óptima), “Aleatório” escolherá aleatoriamente uma coluna
- Move info: Opcionalmente exibirá o número de meias jogadas até ao final do jogo para as possíveis jogadas
- Recomendar jogada: Mostra a(s) jogada(s) perfeita(s) para o jogador actual (pode ser mais do que uma jogada)
li>Undo/Redo: Reverter a(s) última(s) jogada(s) efectuada(s) por qualquer dos jogadoresli>Save/Load: Guarda o jogo (em armazenamento local, fornecido por HTML5) para retomar o jogo mais tarde
Basics
A IA deste jogo é baseada numa avaliação exaustiva de todas as posições de jogo possíveis de até 23 moedas,armazenadas numa grande base de dados. As placas com 24 ou mais moedas são directamente avaliadas no servidor. Para cada placa possível o seu estado (vitória do jogador actual, vitória do jogador adversário, empate) é conhecido, bem como o número mínimo de meias-movidas necessárias para forçar uma vitória a partir desta placa. Um número par mostra em quantas mais meias-moves o jogo pode ser ganho colocando a moeda nessa coluna (assumindo o jogo ideal do adversário, caso contrário pode ganhar mais rapidamente). Um número ímpar mostra o número máximo de meias manobras que pode atrasar a vitória do adversário (mais uma vez assumindo o jogo de defesa óptimo do adversário). Um ‘D’ indica uma posição em que o jogador actual pode forçar um empate. Assim, um número par mostra uma jogada vencedora, o que garante uma vitória para o jogador actual (se continuar a jogar o melhor possível) na maior parte deste número de meias jogadas. Uma jogada vencedora óptima é uma jogada que garante a sequência mais curta disponível de meias jogadas até o jogador ganhar. No total, a base de dados exaustiva subjacente não só confirma que Connect Four isa primeira jogada vencedora do jogador. Mostra para qualquer situação possível no tabuleiro a informação completa para todos os movimentos possíveis, fornecendo assim informação perfeita para analisar o jogo inteiro.