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

Комментарии 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-ки соединить, просто прилипает сразу к «полу»

Зато пока жив тетрис от первого лица. Интересно, есть ли для него мировой рекорд и не тошнило ли рекордсмена к концу игры

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

Чем этот сайт надежнее других?
Думаю дело не в сайте, а в сохранении в IPFS. Но та глобальная файловая система так же не является надёжной.
В IPFS достаточно одного человека (любого из читателей), который озаботится сохранением. А с доступностью интернет-ссылки, кроме автора, никто не поможет, да и он сам, если домен отожмут.
Хотя на практике да, полно неработающих IPFS-ссылок, но дело не в реализации сети, а в том, что у семерых нянек.
Да, я знаю, как работает IPFS, поэтому и сомневаюсь в его доступности ))
Впрочем, Hell Tetris прекрасно доступен, но просто не работает в современных браузерах. Так что нужно положить рядом дистрибутив браузера, ну и ОС на всякий случай. И эмулятор. Я бы ещё положил полные спеки х86, но боюсь, оно не помрёт никогда.
Информация в децентрализованной сети IPFS. Если приведенная ссылка и будет недоступна, то можно подставить другой шлюз или вообще поднять свой локальный и зайти так.
Не, разные фигуры кидает, изначально да, только z, но когда ты его начинаешь загонять в ситуацию когда из них можно линию собирать он меняет тактику. Мне все фигуры из ассортимента приходили, финальный гвоздь в меня забили квадраты. Целых три линии смог собрать в первую попытку.
Вообще забавная штука, на досуге надо будет еще поковыряться.
Я после 15 минут возненавидел палку, хотя до этого она была моим самым любимым персонажем в компьютерных играх!
ИМХО, первую фигуру игры надо делать случайной. А то, из 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ໃɥ௨ڏІݟ௨ගɱݸతටࢩݹࢴටแɕ௧ڄໃףۑඤÐݸలقลڝ௨ටໃݹ௨ටࠋ

так у авторов выложены реплеи и подлиннее:
https://qntm.org/hatetris

Локально оптимальная стратегия — это очевидный 2-wide/4-wide. Глобально оптимальной стратегии не существует, потому что чистить мусор все равно надо, а нормального даунстэка нет и не планируется.
Подозреваю, что есть математический предел для этого алгоритма, основанный на отношении количества мусорных линий к общему количеству линий в стандартном 2-wide.
А вообще, без 7-bag-рандомизации Hatetris может спамить один и тот же тетрамино, что сильно снижает интересность борьбы с алгоритмом.
Прикрутите bag-рандомизацию, и более-менее нормальный минимакс движок с горизонтом событий побольше, и будет намного интереснее. Если еще hold и SRS, так вообще замечательно.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.