Estou fazendo uma IA para o meu jogo de damas e estou tentando dificultar o máximo possível. Aqui estão os critérios atuais para uma mudança na dificuldade mais difícil:
1: Procure um bloco: é quando uma peça está sendo ameaçada e outra peça pode ser movida por trás dela para protegê-la. Aqui está um exemplo:
Black Moves
|W| |W| |W| |W| |
| |W| |W| |W| |W|
|W| | | |W| |W| |
| | | |W| | | | |
| | | | |B| | | |
| |B| | | |B| |B|
|B| |B| |B| |B| |
| |B| |B| |B| |B|
Blocos Brancos
|W| |W| |W| |W| |
| |W| | | |W| |W|
|W| |W| |W| |W| |
| | | |W| | | | |
| | | | |B| | | |
| |B| | | |B| |B|
|B| |B| |B| |B| |
| |B| |B| |B| |B|
2: Mover peças para fora de perigo: se alguma peça estiver sendo ameaçada e uma peça não puder ser bloqueada para ela, ela tentará se afastar. Se a peça não puder sair do caminho sem ainda estar em perigo, o computador a ignora.
3: Se o jogador do computador possuir quaisquer reis, ele tentará 'caçar' as peças inimigas no tabuleiro, se nenhum movimento puder ser feito que não ponha em perigo o rei ou outras peças, o computador ignora esta regra.
4: Qualquer peça pertencente ao computador que está na coluna 1 ou 6 tentará ir para o lado. Quando uma peça está na coluna 0 ou 7, está em uma posição muito estratégica porque não pode ser capturada enquanto estiver em uma dessas colunas
5: Faz um movimento aleatório educado, o movimento não comprometerá a peça que está se movendo ou qualquer peça que esteja no quadro.
6: Se nenhuma das opções acima for possível, ela fará um movimento aleatório.
Esta pergunta não é realmente específica para nenhuma linguagem, mas se todos os exemplos pudessem estar em Java, seria ótimo, considerando que este aplicativo está escrito no Android. Alguém vê algum espaço para melhorias neste algoritmo? Algo que tornaria melhor jogar damas?