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