Pull to refresh

Comments 60

Как-то неспортивно работает алгоритм. Мне 25 раз подряд выпала одна и та же S-образная фигура. С таким же успехом можно было вообще не заморачиваться и всегда кидать только S или только Z-образные блоки, или квадраты при нечетной ширине поля, и все.

А зачем спортивность? Задача алгоритма — максимально вам помешать и выбесить. Он отлично справился.

Если были бы только S и Z, то можно было бы легко хакнуть алгоритм и собирать линии бесконечно.

Хорошо, я вам пример приведу. Нужно сгенерировать бесячий непроходимый лабиринт. Какой из них вам кажется более удачным, первый или второй? Почему?

Тут вопрос такой, как можно при данных правилах максимизировать свой результат?
Для этого надо в корне поменять стратегию игры с ожидания благоприятного момента, на создание вилок и гамбитов.

Кому т осложно даже одну линию сжечь, я уже систематически могу делать результат 6 линий. Мне интересно, сможет ли Хабр побить мировой рекорд (31 линия)?

Это значит, что алгоритм не справляется со своей задачей. Фактически надо закидывать человека палками пока не останется 1 или 3 незакрытых столбца. Затем кубами. Повторить при необходимости.

Это так не работает. Палки кладутся плашмя, и вот у вас 8 заполненных столбцов высотой во весь стакан, и кубы больше давать нельзя вообще (каждый куб будет полностью убирать 2 ряда). А если давать не кубы, то всё равно задача заполнения строк в 10 блоков свелась к задаче заполнения строк в 2 блока, и, думаю, там гораздо больше 31 строки можно убрать.

Собственно "мировой рекорд" тоже по такому принципу действий делался, только игра даёт такие фигуры, с которыми заполнить 8 столбцов из 10 без дыр нельзя.

Второй. Цифра 2 больше бесит.
Очевидно что нельзя. Кидаем S и Z так, чтобы отношение стремилось к любому иррациональному числу. Скажем √2.

Всё, игрок проигрывает, гарантия 100%.

Обсуждалось ещё в маткружке в школе у нас бог знает сколько тет назад.
Да, мне тоже кидал одну фигуру S почти всё время. Один раз была палка и один раз Z. Не интересно так играть всё-же.
То, что он кидает, зависит от ваших действий. Меняйте стратегию, и фигуры буду другие.
это означает, что z — не самая отстойная фигура в тетрисе, если множество из таких фигур приводит к не самой отстойной конфигурации. Мир померк, былая слава ушла

алгоритм кидал мне только Z пока не забил ими весь экран

Если бы мне кто-то кидал ТОЛЬКО Z, я бы набрал бесконечное количество очков
Так в этом и прикол. Он подсовывает самые неудачные, а игроку надо быть хитрее этого алгоритма и придумать стратегию исходя их этого.
Моя гипотеза, что можно сделать вот такую заготовку, а потом зациклить сжигание линий
image
Тогда оно как раз начнёт кидать другие фигуры, да.
благодаря вашей подсказке собрал 3 линии

Как же это божественно! Интересно, а этот алгоритм детерминирован относительно действий игрока? Если так, то можно попробовать написать анти-алгоритм который находит решение или самую длинную последовательность

+1
Исходники открыты, можно посмотреть.
+ можно натравить нейросетку (alpha-tetris?) или перебрать все варианты, на предмет поиска алгоритма против Алгоритма.
можно натравить нейросетку

а потом удивляются чего это Судный День внезапно наступил...

Высоко над ними, тихо, без шума, одна за другой гасли звезды

Как известно игрок в тетрисе всегда проиглывает, для этого даже не нужно смотреть в стакан, можно заранее выдать ему все фигуры — и он всё равно проиграет.

Так что да, в этий игре всё детерменированно и если играть можно вечно, значит плохо выбирается «самая плохая» фигура.

на телефоне не получилось горизонтальные s-ки соединить, просто прилипает сразу к «полу»

UFO just landed and posted this here
UFO just landed and posted this here

Пользователям Linux могу кроме этого предложить попробовать bastet (пакет доступен в репозиториях Ubuntu).

Чем этот сайт надежнее других?
UFO just landed and posted this here
В IPFS достаточно одного человека (любого из читателей), который озаботится сохранением. А с доступностью интернет-ссылки, кроме автора, никто не поможет, да и он сам, если домен отожмут.
Хотя на практике да, полно неработающих IPFS-ссылок, но дело не в реализации сети, а в том, что у семерых нянек.
UFO just landed and posted this here
Информация в децентрализованной сети IPFS. Если приведенная ссылка и будет недоступна, то можно подставить другой шлюз или вообще поднять свой локальный и зайти так.
Не, разные фигуры кидает, изначально да, только z, но когда ты его начинаешь загонять в ситуацию когда из них можно линию собирать он меняет тактику. Мне все фигуры из ассортимента приходили, финальный гвоздь в меня забили квадраты. Целых три линии смог собрать в первую попытку.
Вообще забавная штука, на досуге надо будет еще поковыряться.
UFO just landed and posted this here
ИМХО, первую фигуру игры надо делать случайной. А то, из 5 попыток в 5 игра начала с z

ну логично же, в начале это самая неудобная фигурка

а за ней следующая самая неудобная фигурка — z
потом снова самая неудобная фигурка — z
дальше что будет? дальше тоже самая неудобная фигурка — z
Т.е., прога сразу сваливается в локальный минимум какой-то

ну так вы попробуйте, увидите другие фигуры.

Вот replay на 6: Ɩ௩ໃܥಒටࠄເ௨ఠТຍலڏІʞಏඞQকݣƥଈݷҬɦໃݎణƣຢɝϢഗƙɕࠌסWټҴɦІݎడఢӿپƐඡДݹߝsฮߢஐٯฮࠅԘΔІݲడइເߣ௨రЫݢడටຯঐ௨ഗςݲ౫ටƷঅ୦sॺڥ௦ؿНݷශΟثஇƔচЂљԥuಽܡబΞܮܥષءȻܮஐ෦స๐౻ࠏʛʦਔ

replay на 8
Ɣقໂɜ௨ඝИݶƔقసݸౚඡݕݹƗsເɚ௨uІKƐಘOஈ௧ٮІݶƕقฆݹడզȣݹமϺไࡨ௨ฃຯঐௐƣෆऄ௨ಥಸڍஓҨ൨ஈ௦ڄໃƐԊؿʣऄௐڌາঐௐܭಈॷ௨ඦСݑИඝۮ๐௧θԮɒඒڄȣæߜౠෆࡨߝsහܥ౻෬ݩܡಭ

Как же я кайфанул с него, прям круто, настроил какую-то лажу на старте и прям прёт, постепенно всё съел. Прям классная медитативная, успокаивающая штука, никуда не торопит.

Во всех версиях должно быть ограничение на выдачу одинаковых фигур более трех раз подряд.
Часто в Тетрисах показывается подсказка — следующая фигура после текущей.
По идее, такой вариант существенно интереснее для «максимального взбешивания», так как алгоритм при генерации фигуры должен руководствоваться не текущим состоянием а тем, что будет через фигуру.

Можно ещё развить это, заставляя «взбешивать» на основании данных ещё большей давности, а также выдавать определённые гарантированные фигуры вне алгоритма каждый N-тый ход.

Такая игра будет гораздо больше на логику, а не про скоростные нажатия клавиш.
Вы пробовали тетрис из статьи? Там нет гравитации (скорость не нужна, от слова совсем)

Проще всего было сделать поле нечетной ширины и всегда выдавать квадратик 2х2

Больше всего бесит, что в мобильном браузере при нажатии кнопки запуска новой игры ничего не происходит. И только при нажатии стрелочки вниз происходит движение вниз на одну клетку. Бесит для каждого движения нажимать)

Отличная задача на поиск оптимальной стратегии! Основная сложность — для каждой позиции определение следующей фигурки требует перебора всех фигурок по всем смещениям и вращениям, а количество позиций растет экспоненциально с увеличением глубины колодца. Используя очень эффеткивный алгоритм (перебирающий около двухсот тысяч позиций в секунду), мне удалось решить задачу для глубины 5 (score=4, всего пришлось перебрать около четырёхсот миллионов позиций за 30 минут):
ޛටדݹ௨ඞТஈ௧ƣເঅ௩ɦܘݶహइໂђ௨ටໞݹஜɦܘݚذචʅݹਐටࢺݹસقໃݹ௨ටໃݹਆ
И я в процессе решения задачи для глубины 6. Пока что он нашел score=6 (поле перебора трех миллиардов позиций) ܮටลຍ௨ಀඍݸహටາɝɷචŒݹமϺາŦ௨ಀІݟௐقГঅஶѼໃӌ௨ගɱݸƓΟເח௧ڈໃӻ௨ගȣݸಏටງђஶɈժށѻටໃݹ௨ටເ0
но алгоритм еще не закончил работу, пока перебрав восемь миллиардов позиций за 11 часов.
примерно после девяти миллиардов итераций и двенадцати часов работы алгоритм нашел score=8
ݻටຈݹ௫ටຯѧ௨پଈݶಏقງݹலටະऄ௨پໃݢ௨ගɑݸҰقະࡨ௨sໃɥ௨ڏІݟ௨ගɱݸతටࢩݹࢴටแɕ௧ڄໃףۑඤÐݸలقลڝ௨ටໃݹ௨ටࠋ
Локально оптимальная стратегия — это очевидный 2-wide/4-wide. Глобально оптимальной стратегии не существует, потому что чистить мусор все равно надо, а нормального даунстэка нет и не планируется.
Подозреваю, что есть математический предел для этого алгоритма, основанный на отношении количества мусорных линий к общему количеству линий в стандартном 2-wide.
А вообще, без 7-bag-рандомизации Hatetris может спамить один и тот же тетрамино, что сильно снижает интересность борьбы с алгоритмом.
Прикрутите bag-рандомизацию, и более-менее нормальный минимакс движок с горизонтом событий побольше, и будет намного интереснее. Если еще hold и SRS, так вообще замечательно.
3 =)( హॴໃџѻචƖݹরࡄฐঅ௧ٴໃם௨൜ܘѧ௨ปໃɥஶقॿݹஜϺແࢭ௧ϽVݞవඖЛݲƔكÐܥభಳІףԥගȣݚસ੬ฆݷಳලโࡨએɨลɒՎലພƩ௧ࠍТஈԤ৩ÐđୱرරϷԪמŒҵ
Sign up to leave a comment.