Сделать игру на языке программирования Python + Алгоритм просчета победной стратегии
Суть игры
1. количество игроков 1,2,32. при количестве игроков 1 игра идет с компьютером как соперник
3. Игра делится на три фазы фаза постройки поля, фаза размещения первого кружочка и фаза деления
4. на бесконечном поле игроки размещают по очереди шестиугольники, в свой ход игрок(или компьютер) обязан размещать 4 таких шестиугольника на поле(связанных как показано на картинке 1), притом каждый следующий шестиугольник должен сопрекасатся хотябы одной гранью к предыдущему (примеры ходов в картинках 2 и 3)5. у каждого игрока есть 8 ходов (8 положенных груп шестиугольников) после этого игра переходит в след фазу
6. Первый игрок который начал постройку поля размещает круг с значением 16 на любой из шестиугольников на внешних шестиугольниках поля (
пример доступных шестиугольников в картинке 4,5(зеленые доступные желтые недоступны для первого размещения).
пример размещения первых кружков в картинке 6,7
). Все игроки обязаны разместить свои круги на уже не занятых шестиугольниках
7. Первый игрок который разместил свои круг на поле начинает дробить свои круг (на первом шаге он один, на последующих шагах любой) на целочисленные части (1-15, 2-14,3-13,4-12,....8-8,...15-1) по доступным направлениям. Притом если на пути деления стоит или чужой круг то перепрыгнуть его нельзя (примеры ходов картина 8,9,10 *линии нарисованы для понимания направления и деления)8. После того как последний игрок разделил свои последнии круг на части (1-1) игра заканчивается и начинается подсчет очков
9. побеждает игрок который смог размножить свои круги максимально (16 штук кругов номиналом 1)10. если все игроки смогли разделить свои круги до последнего тоесть каждый получил на поле 16 штук кружков с числом один то объявляется ничья Цель игры стараться разместить такое поле который будет хорошим для себя и плохим для противников и постараться заблокировать хотябы один круг противника (пример картинка 11 *синий игрок заблокирован и через два хода проиграет потому что несможет больше делиться)
Если выбирается игра против компьютера компьютер должен просчитать 1. Оптимальные для себя размещения полей 2. Оптимальные для себя деления чтобы победить (Можно просчитать полным перебором все возможные деление свои и противника и после каждого хода коректировать алгоритм и выдать победные деления)
P.S. хочу акцентировать внимание на то что 95% задачи это игрок компьютер и его стратегия. Как критерий приема игрок компьютер должен обыграть меня (например 7 игр из 10)