Бот просчитывает ветвь в 4 полухода: свой ход-ответ-ход-ответ. Дополнительной эвристики практически нет. Программа написана самостоятельно. Есть офлайн-версия, исходный код открыт. На 12 тысяч сыгранных партий его Эло колеблется в пределах начального рейтинга: 1200.
Намного дольше. Программа написана оптимально, под текущие ресурсы. Добавление одного полухода приведёт к умножению вычислений на все возможные ходы в одной позиции - скорость упадёт в десятки раз. Также алгоритм строит полное дерево всех ходов (недавно узнал, что так обычно не делают), поэтому занимает много памяти и ещё на одну степень вычисления её не хватит.
Сейчас бот обрабатывает позицию в течение примерно одной секунды, причём основное время - эта самая секунда уходит на паузу в его работе - чтобы дать серверу возможность выполнять другие запросы. Также, если играется одновременно несколько партий, программа перебирает их последовательно с данным интервалом, из-за чего скорость ответа падает.
Да, без генетических алгоритмов не обойтись: все дерево возможных ходов перебирать не разумно.
А еще и о распараллеливании по разным серверам нужно подумать. Если сайт станет сколь-нибудь популярен, даже легковесного бота завалят. И подумать об этом лучше пораньше, нежели попозже, т.к. нагрузка будет расти не линейно, один сервер завалят стремительно. От "почти нет никого" до "ой, капец какой" - пара недель или месяц, за это время балансировщика не успеете написать.
И немного жаль, что столько трудов вбухано при околонулевых коммерческих перспективах. Возможности монетизации у этого хобби так себе.
Сервер сейчас на самом начальном тарифе: маломощный и дешёвый. Если нагрузка возрастёт, то скорее перейду на более мощный VPS. В распараллеливании разбираюсь не очень.
Бот нужен именно на незанятом сайте, чтобы занимать посетителей, когда других игроков нет. При большей посещаемости, думаю, будет интереснее сыграть с человеком.
Повесить бота большой нагрузкой сложно: он обрабатывает партии последовательно, поэтому просто будет медленнее отвечать.