Debugger » 24.01.2010 (Вс) 20:54
Если простые крестики-нолики (поле 3 на 3), то всё элементарно, If'ом решается просто (хотя и муторно).
Если поле большое, и надо поставить 5 значков в ряд/по диагонали, то придётся помучаться. Я распределил приоритеты ИИ таким образом:
Сделать ход, чтобы
1. Поставить 5 значков в ряд (выиграть)
2. "Заблокировать" 4 значка противника
3. Поставить 4й значок в ряд так, чтобы они с двух сторон были незакрытыми.
4. Помешать сопернику сделать это
5. Поставить 2 значка в ряд
6. Рандомный ход
Вот и всё. Обрати внимание, что иногда один ход может удовлетворять нескольким пунктам.