
Como a IA de Othello é composta
O Othello foi feito tomando como modelo o cliente de go. São três partes: um app em Qt, um servidor de VLM e partidas na web (othello.mariago.kr). Na web, a pessoa joga com as pretas e escolhe como adversário a IA local ou o VLM.
Registros contra pessoas
31 partidas foram concluídas na web. As pessoas venceram 23, a IA venceu 7 e 1 terminou empatada.
Das 23 partidas vencidas por pessoas, 12 terminaram em 9 jogadas. Todas acabaram em 13–0, sem nenhuma peça branca restante no tabuleiro. Houve apenas duas sequências.
- C4 C3 C2 C5 C6 D6 E6 F4 G4: 8 partidas
- D3 C3 B3 E3 F3 F4 F5 D6 D7: 4 partidas
A segunda é a primeira espelhada na diagonal. Todas as 12 partidas vieram do mesmo navegador. Alguém encontrou um caminho uma vez e continuou repetindo.

Quem era o adversário
Os registros das partidas não indicam se o adversário era a IA local ou o VLM. Mesmo assim, dá para atribuir as 12 partidas à IA local, porque as mesmas sequências se repetiram exatamente oito e quatro vezes. Como vou contar no post 3, nesse período o servidor de VLM escolhia jogadas ao acaso, e jogando ao acaso a mesma sequência não se repete.
Só havia duas sequências de aniquilação
Com a IA local de brancas, expandimos todas as jogadas que as pretas podiam fazer até a 11ª jogada. Havia exatamente duas sequências que aniquilam as brancas, e eram as mesmas duas dos registros. Esses eram os únicos buracos da IA, e alguém os encontrou e continuou vencendo.
O código real desta etapa
Esta é a tabela de registros de partidas. Ela tem a sequência de jogadas (moves) e o resultado (end_text), mas não o tipo de adversário.
othello-web/lib/db.ts
CREATE TABLE IF NOT EXISTS games (
code TEXT PRIMARY KEY,
guest_id TEXT NOT NULL,
access_key TEXT,
size INTEGER NOT NULL DEFAULT 8,
board TEXT NOT NULL,
to_play INTEGER NOT NULL,
last_r INTEGER,
last_c INTEGER,
move_no INTEGER NOT NULL DEFAULT 0,
epoch INTEGER NOT NULL,
started INTEGER NOT NULL DEFAULT 0,
status TEXT NOT NULL DEFAULT 'playing',
end_text TEXT,
moves TEXT NOT NULL DEFAULT '[]',
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);O próximo post é "2. Uma IA que só enxerga uma jogada à frente: a IA implantada era diferente do código-fonte".
COMMENTS · CHAPTER 01
Uma IA de Othello que perde por 13–0 em 9 jogadas 0 comentários
Ainda não há comentários. Deixe uma pergunta ou algo que queira acrescentar.
Para publicar um comentário, comece com o Google e registre um apelido e um e-mail.
Começar com o Google