Пять в ряд.Гомоку.Крестики-нолики

Правка ru8, от rus100, 2015-06-20 10:57:09
 Не сочтите это сообщение за наглость.Пришла мне весной в голову идея написать логическую игру.Я рассудил так: шашки-это больно сложно для меня, шахматы-тем более, решил написать для начала крестики-нолики с полем 3*3.Погуглив информацию в интернете, решил, что использую алгоритм оценочных функций.Вроде бы написал, но играла она слабо.Я нашел следующий выход:прописать первый ход за компьютер прямо в программе в зависимости от того кто первым ходит.Получилось более менее, теперь с компьютером можно сыграть в основном в ничью.
 Я решил не останавливаться на этом и написать что-либо сложнее.Не долго думал я, выбор пал на гомоку, во-первых потому что похожа на крестики-нолики, во-вторых из-за сравнительной легкости в написании программы.Передо мною не стояла задача создать супер-сложный AI, я решил просто попробывать написать что-то такое интересное, а не, например, калькулятор.Снова погуглив, я решил опять писать алгоритм оценочной функции, но тут было все интереснее и сложнее.Основная идея оценочной функции состоит в том, что для любой пустой клетки в 8 направлениях(вверх,вниз,вправо,влево,по диагонали вправо-вверх,вправо-вниз, влево-вверх, влево-вниз) на расстояние 4 клетки от нее считается количество крестиков и ноликов, назначается балл и суммируется баллы.Уделяется внимание группам из 3, 4 подряд идущих крестиков и ноликов, для них назначается повышенный балл, особенно для открытых троек и четверок с обеих сторон.Учитываются и другие ситуации приводящие к построению открытых четверок.
На этапе написания кода периодически отправлял своему брату exe-шники для тестирования и, попутно послушав о недостатках, усложнял оценочную функцию.Сначала у меня ничего не получалось, AI допускал глупые ошибки, но потом начало что-то выходить.В итоге получил следующее: [Гомоку](https://yadi.sk/d/afUmdq1tgTteC)А вот и крестики-нолики:[Крестики-нолики](https://yadi.sk/d/CzM3TRFHg59kK).Прошу не судить меня строго, по специальности являюсь инженером-электриком(проектирую электрические сети).Программирование-просто хобби.Да и особо звезд с неба не хватаю в области спортивного программирования.Кроме того написал пятнашки.

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru11 Русский rus100 2015-06-20 11:02:58 302
ru10 Русский rus100 2015-06-20 11:01:13 37
ru9 Русский rus100 2015-06-20 10:59:46 3
ru8 Русский rus100 2015-06-20 10:57:09 47
ru7 Русский rus100 2015-06-20 10:55:37 8 Возвращено к ru5
ru6 Русский rus100 2015-06-20 10:51:23 8
ru5 Русский rus100 2015-06-20 10:47:44 17
ru4 Русский rus100 2015-06-19 20:25:52 2 Мелкая правка: 'я баллы.Удиляется вни' -> 'я баллы.Уделяется вни'
ru3 Русский rus100 2015-06-19 20:22:48 21
ru2 Русский rus100 2015-06-19 20:18:26 71
ru1 Русский rus100 2015-06-19 20:17:07 2204 Первая редакция (опубликовано)