Как стать автором
Обновить

Комментарии 56

Позже будем использовать результаты реальных игр для обучения AI.

Не боитесь Скайнета? Когда AI способен проиграть лишь мистеру Андерсену Коннору, обычный игрок будет обречен на проигрыш. Так что придется задумываться об упрощении AI (хотя это проще — достаточно уменьшить глубину просмотра).

В целом — задумка очень занятная. Интересно было бы увидеть игру, где AI обучается у игрока, а затем командируется на онлайн инет-турниры. Если Шакал действительно сильно вариативен, и абсолютная функция сильно сложна, серебряной пули не будет, и как и абсолютных лидеров.
На текущий момент есть две причины не увеличивать сложность AI: во-первых, вычислительные ресурсы устройства пользователя (долгое время ожидания хода), во-вторых, AI обычно заведомо упрощаются, чтобы игроки не бились об стену каждый раз, пытаясь превзойти железный мозг. Есть ещё третья часть — действия AI должны быть предсказуемы.
Вы можете обучать AI в плане корректировки коэффициентов. На время хода это не повлияет.
Если же AI откорректировался слишком сильно, вы можете уменьшить глубину обхода, что сбалансирует сложность и уменьшит время хода.

Можно поподробнее насчет предсказуемости, зачем она? Разработчику понятно, для отладки, как гарантия отсутствия глупых ходов (которые искореняются в процессе отладки), но зачем она игроку?

P.S. совершенно забыл написать в первом комментарии, спасибо за отличные статьи.
На здоровье :)

Предсказуемость — это чтобы AI думал как человек. Математически оптимальные ходы иногда выглядят как последовательность крайне глупых действий, а затем неожиданная победа нечеловеческим усилием. Вот мой любимый пример. Просто представьте, что это сделал бы AI — и как расстроился бы второй игрок.

А что это за игра? Го? Или какая-то другая? Что мешало 1му игроку срубать подряд по несколько раз и закончить игру раньше?
Нет, это не Го, но разновидность шашек, да.
Помешало, очевидно, отсутствие дамки.
на 0:11, на 0:36 у черных появляются дамки, разве нет?
да, но инициатива была в руках былых, т.к. они всё время «поддавались», у черных не было шанса реализовать преимущество своей дамки.
На 0:48 можно было взять один камень, после чего белым пришлось бы в ответку взять черный камень — в итоге у белых 2 сдвоенных камня, который подставить не получится…
В "Турецких шашках", помимо обязательного взятия, действует «правило большинства»:
Из нескольких вариантов взятия игрок обязан выбрать тот, при котором берётся наибольшее количество шашек противника
По большей части, именно оно делает игру комбинационной. Помимо этого, это практически единственный вариант шашек, в котором возможен «Турецкий удар», поскольку взятые шашки снимаются с доски сразу, а не по завершении хода. Есть, правда, ещё «Греческие шашки», но они отличаются от турецких лишь тем, что, выполняя взятие, дамка обязана остановиться на следующей, после взятой фигуры, клетке. Ортогональная система + летающие не ограниченные дамки + правило большинства + турецкий удар. Только при сочетании всех этих ингридиентов, возможная та адская смесь, что изображена на видео.
Ну, я тогда не понимаю — неужели игрок слева мог на столько ходов спрогнозировать игру? Причем без альтернативных вариантов. Тогда это либо постановка либо в самой концепции этих шахмат есть слабина
Вообще-то это задачка. Довольно известная. Заметили начальную расстановку шашек?
Так вот, партия в турецких шашках начинается не так. Что касается «спрогнозировать», то почему нет?
Лет двадцать назад ходил такой анекдот.
Гениальные учёные разработали программу для игры в шахматы. Играя за чёрных, программа, проработав 12 часов, признала своё поражение, так и не сделав ни одного хода.
«слабина», кстати, действительно есть. Этот самый «Турецкий удар». В большинстве разновидностей шашек он запрещён, либо невозможен. Дамка получается слишком сильной.
по вашей ссылке обнаружил интересный нюанс:
ДАМА (ТУРЕЦКИЕ ШАШКИ)

Если на доске остались две дамки разного цвета – тоже объявляется ничья.

UPD: Хотя, в «нашем» случае, дамку противника тоже срубили…
Ох, я вас уверяю, в шашках столько нюансов!
Уж вы мне поверьте. Я вяло исправляю всё новые и новые обнаруженные баги, начиная с апреля!
И это только по самому игровому процессу! Что касается условий завершения, то тут вообще конь не валялся.
Даже если рассматривать только всем известные "Международные" стоклетки:

Ничья объявляется:
* Если игроки в течение 25 ходов делали ходы только дамками, не передвигая простых шашек и не производя взятия, объявляется ничья.

* Если у игрока в окончании партии остались:

а). 3 дамки, 3 дамки и 1 простая, 1 дамка и 2 простые, 3 простые шашки, 2 дамки, а также 1 дамка и 1 простая против одинокой дамки;

б). 1 дамка против одинокой дамки или одинокой простой;

Игрок во всех этих случаях обязан 5-м ходом выиграть, иначе объявляется ничья.

* Если три (или более) раза повторяется одна и та же позиция (т.е. одно и то же расположение шашек), причём, очередь хода каждый раз за одной и той же стороной – также объявляется ничья.

* Если на доске остаются 5 дамок (или 4 дамки и 1 простая шашка) против 2 дамок, сильнейшая сторона обязана победить в 50 ходов, иначе объявляется ничья.


Что касается именно двух дамок разного цвета — правило вполне резонно. Поймать дамку противника одной своей дамкой (при отсутствии других фигур), возможно только если она подставится. И это справедливо для всех вариантов шашек.
А если одна дамка уже стоит в углу главной диагонали, а другой игрок следующим ходом ставит свою (пока еще) шашку в противоложный угол?
Если речь про «Турецкие шашки», то там нет диагоналей.
Да, забыл :)
Дамки появляются, но так как белый все время подставлял свои шашки — черный обязан был их рубить и не мог сдвинуть с места свои дамки, которым рубить было нечего.
Турецкие шашки.
Вся мощь «Турецкого удара».
Скорее запрета «турецкого удара» в них, как я понимаю. Ведь он снимает после каждого взятия.
Здесь есть небольшая терминологическая путаница. Изначально, «Турецкий удар» — это именно то, что происходит в «Турецких шашках», при бое дамкой (шашки снимаются по ходу взятия, расчищая пространство для дальнейшего боя). В большинстве других вариантов, действует правило, запрещающее такой маневр, называющееся правилом «Турецкого удара», но поскольку каждый раз произносить слово «правило» люди ленятся (и с лёгкой руки Википедии) оно внезапно превратилось в «Турецкий удар», по словам Википедии, являющийся «самым сложным ходом русских, международных и бразильских шашек».
Разновидность шашек, видимо. А мешало закончить раньше расположение. Белый не подставлялся, но жертвовал свои камни, чтобы расставить черные нужным образом. Обратите внимание, даже два последних хода черных необходимы: первый разбивает группу из трех, которую никак не возьмешь по другому, а второй забирает разбитую группу. При этом «дамка» белого уже в безопасном углу.
Пересмотрел видео, там даже хуже — три последних хода: разбил, взял один, взял второй.
В 85-м эта игра у нас называлась «Корсар». Интересно, это мутация, или «Шакалом» она стала уже позже?
Полагаю, учитывая происхождение оригинального «Шакала» в 70-х в МГУ, вариаций могло быть довольно много с кучей названий.
А это не развитие вот такой игры? Нам когда-то в универе на 2-м курсе преподаватель (назвал ее «Сталкер») предлагал сделать ее комьютерную версию.
Нет.
Тема с сыроваром не раскрыта. Специалисты пытались воспроизвести процесс и ничего не выходило. Пока не выяснилось, что этот гад макает в сыр немытый палец. И оттуда в сыр лезет множество чудных микроорганизмов, которые и придают ему незабываемый вкус.
Пара вопросов:
1) На Android будет версия?
2) Можно ли будет играть сдрузьями по сети/интернету?
3) Если на Android всё-же будет версия, то можно ли будет играть в одну партию между Android + iPhone?

Спасибо
1. В дальних планах, быстро — вряд ли. Зоопарк устройств очень осложнит тесты.
2. Да.
3. Да.
А можно поподробней про русских коров и чужую траву?)
Вот эта полубайка
"… В ходе игры российские «коровы» победили всех конкурентов — за счет уникальной стадности и редкостного умения пакостить травоядным представителям других наций. По сути, российские разработчики были единственными, кто додумался, как сделать травоядных по-настоящему стадными. По правилам игры, животным не разрешалось напрямую обмениваться информацией. Поэтому, пасущаяся с краю стада «корова» не могла сообщить коллегам об увиденной «траве» или приближающихся хищниках. Россияне придумали следующий алгоритм стадности. Если одна корова видела бегущую корову своего вида — она начинала бежать в том же направлении. Любопытно, что никто, кроме россиян, не додумался до такой идеи. По словам организаторов игры, именно эта не рассуждающая массовость принесла россиянам победу. Второе изобретение российских программистов было поизощреннее. Если в поле зрения их коровы не было травоядных своего вида — а сплошь чужаки, российская корова с максимальной скоростью съедала всю доступную траву, ничего не оставляя «на развод». И погибала от голода вместе с чужаками."
> Та же партия в Го в определённый момент превращается в поединок интуитивных догадок, то есть сваливается в неалгоритмизируемую по сложности и по неопределённости задачу.

Боты на КГС, играющие в силу 5-6 любительского дана (то есть способные обыграть в Го 99.9% населения Земли), решительно не согласны с неалгоритмизируемостью задачи.
Я боюсь просто примерно 99,5% населения Земли вообще не знает правил. Когда эти боты обыграют оставшихся, мы это с ними обсудим, хорошо?
Во-первых, хочу поблагодарить создателей за замечательную игру. Во-вторых, спасибо за статью. Играем с ребятишками 10 и 6 лет, (когда начинали им было 8 и 4). В убийственный АИ для данной игры я не верю, по той простой причине, что очень много зависит от конкретного расклада. (вы же, надеюсь, не будете «душить» генератор случайных чисел в угоду начальному балансу?) Я это к тому, что назвать себя абсолютным семейным чемпионом я не могу, несмотря на то, что просчитываю ходы в силу возраста и профессии я гораздо лучше своего младшего сына :).

Пожелания к разработчикам:
1. побыстрее выпустить версию под Android
2. Реализовать возможность двух возможных правил окончания игры: по монетам и по открытым клеткам. Я не очень хорошо помню классические правила, но, по-моему, в них игра заканчивается в тот момент, когда последняя монета оказывается на корабле. Мы же с детьми завершаем игру, когда открыты все клетки. Не успел перетаскать все монеты — твои проблемы (это к примеру из последнего абзаца статьи). Тут два момента: детям интересно именно исследовать остров, тупо таскать монеты на полностью открытой карте — для взрослых игроков. Второй момент — дополнительная стратегия (видели бы вы какие битвы бывает возникают за последний скрытый квадрат!).
Спасибо. Генератор случайных чисел случаен, про режим подумаем.
Уважаемый разработчик, подскажите, пойдет ли игра без тормозов на стареньком ipad2 ios8?
все отлично работает, ничего не тормозит, спасибо большое за промокод!
завис вчера до 2 ночи:)

правильно ли я понимаю, в режиме 2*2 можно, в принципе, играть вдвоем кооперативно против AI?
Реализация всего этого вот тут в Аппсторе, только для iPad пока

Я буду жаловаться в Google!
Доступен только для России?
Пока в РФ, РБ и Канаде (на английском). Постепенно будет во всех сторах.
Сделать свой отладочный генератор случайных чисел довольно просто: создаёте очередь фиксированной длины, откуда читаете случайные числа. В процессе расходования очереди пополняете её новыми числами. Для отладки AI нужно использовать детерминированный источник пополнения очереди (либо алгоритм псевдослучайных чисел с seed, либо тупо читать последовательность из файла), для игры же — использовать встроенный Random.

Вообще, у игры хороший потенциал для различных программерских конкурсов по созданию AI — игровой мир, правила. Описание мира в виде составления графа уже есть :)
И коннекторы полуготовые для сторонних AI есть, по сути. Будем думать, спасибо.
было бы клёво, да
Я так понимаю здесь отзывы приветствуются? Или здесь только про ИИ, а предложения-пожелания лучше в апстор? Напишу пока, потом уберу, если оффтоп.

1. Все же игра «не для всех» (в основном для тех, кто знает и любит настолку), нужна или пробная версия с урезанным функционалом, или ценник резать раза в четыре.
2. Игра ведь абсолютно пошаговая, так почему не реализован вариант игры с товарищем на одном планшете? Т.е. он вроде как есть, когда 2х2, но там все равно против ИИ, и монетки считаются в сумме… Т.е. по факту это просто против ИИ, только двумя кораблями. Было бы здорово, если бы можно было помимо игры 2х2 (которую безусловно нужно оставить!) добавить возможность отметить какой карабль управляется игроком, какой — ИИ. Позволило бы играть на одном айпаде от 1 до 4 человек… Понимаю, что это как бы создает конкуренцию настолке, но… Можно было бы этот режим сделать только в платной игре, при наличии бесплатной без него.
3. Где же игра по сети!? )) Я так на нее рассчитывал! Возможность использовать один раз купленное приложение на двух айпадах в составе «семейного» доступа почти примирило меня с высокой ценой, и такой облом! )

Ну и так по мелочи: подсказка, у которой галка «больше не показывать» на месте ожидаемой кнопки «ок», а закрыть только крестиком сверху… Все же лучше большую кнопку «ок» снизу, а над ним галку «больше не показывать» мелким кеглем.
Ага, спасибо, учтём.
Про сеть — будет в следующем релизе, не волнуйтесь.
А можно промокод? Я из Крыма, деньги могу прислать через яндекс кошелек, потому что в аппсторе валютная карточка не работает — санкции все блокировано. А поиграть хочется — ОЧЕНЬ!
K79AEAHNH9KW
Спасибо большое! И спасибо всем ребята что никто не взял вместо меня.
Да, мне тоже было интересно. Просто халява без приключения — не очень весело.
Чего-то сайт какой-то грустно-заглушковый у этой redplanetsoft.com
Зарегистрируйтесь на Хабре, чтобы оставить комментарий