Тетрис, который максимально бесит

    Сможет ли коллективный интеллект Хабра побить мировой рекорд?



    Тетрис. Ну, казалось бы, что можно тут сделать нового? Был уже и трёхмерный тетрис, и четырёхмерный тетрис.

    Сделали тетрис, который каждый раз подсовывает тебе самую ненужную фигуру. Сначала прикольно, а потом бесит. БЕСИТ!!!

    Осторожно, этот тетрис вызывает негативные чувства и может испортить вам день. А может, натолкнет на философские размышления, что такое удача в жизни и стоит ли ее ждать или надо постоянно бороться.

    Уже второй день я думаю, насколько такая простая механика заставила перепрошить привычные ментальные стратегии в игре и в более широком контексте принятия решений. Раньше, можно было «отложить» ситуацию на потом, когда выпадет более благоприятная фигура, а тут ты понимаешь, что за кулисами есть «некто», кто никогда не допустит, чтобы благоприятная фигура появилась. Единственный способ хоть как-то приуспеть — делать вилки, чтобы успех не мог не произойти.

    В этом тетрисе даже нет «гравитации», то есть нет давления времени, но это вам мало поможет.

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


    В этой игре Hatetris нет случайностей, алгоритм детерминирован, поэтому есть вызов придумать лучшую стартегию. Авторское решение — 5 строк. Моё, за 10 минут игры — 4 строки.

    Пишите в комментариях ваш результат. (не подглядывая в сохранялки)

    Задачка для программистов — придумать свой, более оптимальный алгоритм, который максимизирует «ненависть в тетрисе», то есть подсовывает вам самую неудобную фигуру, которая минимизирует шанс игрока заполнить строку.

    Поиграть тут.
    Исходники тут

    Противоядие: Tetreasy – тетрис, который дает вам самую лучшую фигуру.

    сохранение на 6 линий

    1)ಞজໃݎฆঘໃݞഢsງڣ௨uІݮతටଘݸభඨƙђࢲҨະࡉɷƥȣKϡuЅਘௐքධݹࠒѻІݚݸටไऄமҔ༨ຣҫටถݹଗقຣऄϥןUਘ௨ටॾ୶Ɛටไࡉɶٴलݹસඪܔঅࢳ൳Uॿԫƥϼঔଗ෮ຜࡀƶ

    2)హइໃџИටଛڭ௧پಭݪбඩಸݞహࡄȤເ௨ඤʈঅஜѸໃѣۑචʈஆಏ੬ܯཧ૭ටໞݹਓsະࠇஶƣฅяడقແߛ௨ೱٱݸಳ൞ະࢭ௨ඞНݷహइЖݪ௧چະঀ౻ටПݸԫ૫ଠݹ౻ಅໄ൰ళҸཟࢭলฃฅॾవඩಸܭСࡏVپƏοSྌਔ

    сохранение на 7 линий


    ฆࡄາໃݣඪජݹಏ૫ຊरಗق༨൪صඨʐএЩටลڝ௨෨ଈݚЩචƙɕࢳ৩ฅڥࢲටະࠇ௨ٴໃɛ௨ٴແߛ௨൞ໃק௧ڠງƷஶكɑݹத෮ແࢭ௧ຂຽஈਢචƚܥ௨ۼถݷಏقܧɒԩঘญகϡࡆϿߟƑؾϿॻ౦ʜວॿޠظܪܦ౻ॸࠋ

    сохранение на 8 линий


    Ɣঔໃݹஐټຯپ௧এІK௨ಗາɢƏࡈາɕƔןІJ௧ڠຽঅসඞݕݹமΒІυݸටຯວ௨ටȣƫ௨ඖІܥ௨ౚഫݹđҨSঅரեໃƫ௨൝ධݛࠑಧషҪࡐԊໂƷஓҸգǶߜඖڪڤ௨డลГଚ౾κʥࢳॴ༱uझٯฦܥƑȺیюಳϾຯஞ௧ڈ๓ଖಱலะCஐشڛઝѻਯϝລ

    Мировой рекорд на 31


    ௨ഖƌݯߜࠏІWƑsໃa௨೯ܘݷಳජଈیԪؼʥݺԥඞܘݲࠐڄໂঅமةໃݹ௧ړІٽ௨൞ໃZ௨ಘІܥࠐΣІZߜටȜখذජНݹߛeʛݹߤปເѧ௩ԚໂՉࢸටuа௨સȣݷłقෆঅਏeܘԔצقషݸɢڠຜঀಧҸມѧஐට༪൩ԊಅഫܡथsถԡԦԚໃɥஸقࡈɕɠɈไݸצقషݰਵϺФঅஓػݐɓԞуຯɕझࡈ๐ݞझࢶІݞमปദஈƉؿଭݪஸҩЂ൸ԛمϦGƁҨVھԥචЅշࡂ෮लݷƘණ໘ࠅƘಧНקࢻҨฆӘದԋϝପࠑ੧ͳݲடփරݞਵΚϼɢԒԺٳѦԤࠌξGಘسਯܥஶҋϮτथlϼʔ


    Исследования:




    Философские размышления с HackerNews, что жизнь — это тетрис:




    На Хабре про тетрис:






    Облачные серверы от Маклауд быстрые и безопасные.

    Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

    Маклауд
    Облачные серверы на базе AMD EPYC

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

      +24

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

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

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

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

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

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

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

                +1

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

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

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

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

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

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

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

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

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

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

                            +7

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

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

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

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

                            +4

                            В придачу: аналогичный вариант 2048. Есть опция снижения сложности, чтобы иногда использовался честный рандом.

                              +3
                              Мда, хотел было кинуть ссылку на старый добрый Hell Tetris, но понял, что после смерти флеша ничего кроме оригинальной картинки не осталось.
                              0

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

                                0
                                Кидает одну и ту же фигуру.
                                  0
                                  Сохраним понадёжнее: /ipfs/Qmeso9VYqHo4nUyKEfp8SrmfYjhjaP6xzgn1LJUyHXPvnn
                                    0
                                    Чем этот сайт надежнее других?
                                      +1
                                      Думаю дело не в сайте, а в сохранении в IPFS. Но та глобальная файловая система так же не является надёжной.
                                        +2
                                        Давай сравним доступность оригинальной и IPFS ссылок, лет через пять.
                                          +1
                                          В IPFS достаточно одного человека (любого из читателей), который озаботится сохранением. А с доступностью интернет-ссылки, кроме автора, никто не поможет, да и он сам, если домен отожмут.
                                          Хотя на практике да, полно неработающих IPFS-ссылок, но дело не в реализации сети, а в том, что у семерых нянек.
                                            +5
                                            Да, я знаю, как работает IPFS, поэтому и сомневаюсь в его доступности ))
                                            Впрочем, Hell Tetris прекрасно доступен, но просто не работает в современных браузерах. Так что нужно положить рядом дистрибутив браузера, ну и ОС на всякий случай. И эмулятор. Я бы ещё положил полные спеки х86, но боюсь, оно не помрёт никогда.
                                              +1
                                              Давайте SWF. Браузер вообще не нужен, есть полно плееров.
                                          0
                                          Информация в децентрализованной сети IPFS. Если приведенная ссылка и будет недоступна, то можно подставить другой шлюз или вообще поднять свой локальный и зайти так.
                                        +3
                                        Не, разные фигуры кидает, изначально да, только z, но когда ты его начинаешь загонять в ситуацию когда из них можно линию собирать он меняет тактику. Мне все фигуры из ассортимента приходили, финальный гвоздь в меня забили квадраты. Целых три линии смог собрать в первую попытку.
                                        Вообще забавная штука, на досуге надо будет еще поковыряться.
                                          +3
                                          Я после 15 минут возненавидел палку, хотя до этого она была моим самым любимым персонажем в компьютерных играх!
                                            0
                                            А из них можно собрать линию?

                                            Update: ясно, не самую нижнюю.
                                            0
                                            ИМХО, первую фигуру игры надо делать случайной. А то, из 5 попыток в 5 игра начала с z
                                              0

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

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

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

                                              +2

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

                                                0
                                                replay на 8
                                                Ɣقໂɜ௨ඝИݶƔقసݸౚඡݕݹƗsເɚ௨uІKƐಘOஈ௧ٮІݶƕقฆݹడզȣݹமϺไࡨ௨ฃຯঐௐƣෆऄ௨ಥಸڍஓҨ൨ஈ௦ڄໃƐԊؿʣऄௐڌາঐௐܭಈॷ௨ඦСݑИඝۮ๐௧θԮɒඒڄȣæߜౠෆࡨߝsහܥ౻෬ݩܡಭ
                                                +6
                                                Прямо как здесь:
                                                  0
                                                  LOVETRIS — тетрис, который дает самую полезную фигурку :)
                                                    0

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

                                                    0
                                                    Во всех версиях должно быть ограничение на выдачу одинаковых фигур более трех раз подряд.
                                                      0

                                                      почему?

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

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

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

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

                                                          0

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

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

                                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                              Самое читаемое