11 марта в 04:14

2048

19-летний итальянский разработчик Габриэле Чирулли (Gabriele Cirulli) создал чрезвычайно захватывающую игру 2048, скрестив тетрис и «пятнашки».



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

За удачное сложение начисляются очки, в соответствии с номиналом плитки. Несмотря на кажущуюся простоту, выиграть в 2048 очень непросто. Автор говорит, что у него самого наилучший результат — около 6000, несмотря на то, что он сам играет уже целый день без перерыва. Впрочем, нескольким всё-таки удалось выиграть.



Код программы открыт. Кстати, есть похожие игры Threes и 1024! для iOS.
+151
350929
374
alizar 1837,3 G+

Комментарии (137)

+72
AzatF, #
И почему мне кажется, что какая-то часть дня будет абсолютно потерянной для человечества? Презанятнейшая штука, скажу я вам.
+10
GreenDay, #
Вот так вот взять и выкрасть начало рабочего дня надо уметь. :)
+17
intermed, #
Предлагаю перепоручить скрипту это дело, а то я тоже уйму времени потерял.
Просто вставьте в консоль

var manager = new GameManager(4, KeyboardInputManager, HTMLActuator);
function move(){ var d = 0; return function(){ manager.move(d); d++; if (d === 4){d=0} } };
setInterval(move(), 500);

+4
Vokabre, #
Настоящий гик не играет, а выигрывает.
+1
MasMaX, #
Дальше 256 ни разу не было у меня этим скриптом.
+1
intermed, #
Подобрал более оптимальный алгоритм — этот у меня до 512 добирает.
Можно более умное что-нибудь сделать. В переменной manager.grid.cells находится текущее состояние поля со значениями ячеек — но что-то лень.

Там изменился маленько код для инициации поля (добавилась функция для вывода самых высоких оценок)
var manager = new GameManager(4, KeyboardInputManager, HTMLActuator, LocalScoreManager);
function move(){ var i = 0; return function(){ var d = [ 1, 0, 3, 0 ]; manager.move( d[i] ); i++; if (i===4){i=0} } };
setInterval(move(), 500);
0
Dinir102, #
Я с вашим «читом» набрал 1024 + рядом был 512 почти превратившийся в 1024 :D
0
webknjaz, #
Зависает когда все клетки первых двух строк заполенны разными числами :)
0
Dinir102, #
Это уже баг игры, вы сами попробуйте играть используя только 3 кнопки управления. Кстати, это хорошая тактика. Вчера так смог победить :)
0
webknjaz, #
не игры, а скрипта. именно из-за 3 кнопок.
0
Dinir102, #
Нет нет, баг игры. Потому что я уже не раз играя только с 3 кнопками сталкивался с этим багом. Без этого скрипта
0
webknjaz, #
А в чем же этот баг игры состоит? С багом скрипта мне очевидно, но вот как он, по-вашему, проявляется в игре? Я что-то недопонял? (Оригинально имел ввиду зацикливание скрипта више)
0
Bringoff, #
Игра предусматривает использование 4-х кнопок. То есть это не баг, а необходимость нажать 4-ую кнопу. Не раз из-за этого проигрывал.
+9
POPSuL, #
Да вы негодяй! Как такое можно было выкладывать в понедельникпервый рабочий день? Как теперь работать? :(
Задумка отличная, и очень затягивает!
0
DaleMartinWatson, #
Тут есть хорошие математики, которые рассчитают, как игру можно завершить, ну или докажут невозможность?
+7
Capatillo, #
Загонять все в один угол, чтобы там была самая большая цифра, так как появляются всегда самые маленькие и по мере увеличения чтобы они были ближе к этому углу.
Грубо говоря если выбрать правый верхний угол то нажимать в основном вправо и вверх.
0
bormotov, #
угу, причем если просто тупо чередовать вверх и вправо — неплохо получается. Иногда нужно сделать влево, потом опять вправо, и дальше тупо вверх-вправо.

На эту основу можно добавлять целевые функции, типа не просто чередовать, а исходя из конфигурации, но что бы получалось, что в самом верхнем угулу всегда самое большое, и вниз и влево — всегда уменьшаются.
0
MasMaX, #
Работает до 256, дальше думать надо, но все равно бОльшее число нельзя вытаскивать из угла.
0
bormotov, #
за какое-то количество убитого времени улучшил стратегию. Хотя, её уже описать сложнее, попробую рассказать идею. Возьмем за начало отсчета левый нижний угол, строки и столбцы пронумеруем. 1-4 Собирать максимальное значение в клеточке будет стараться на 2-3 строке, первого столбца. Движение «вправо» не используется вообще.

Первый столбец — результирующий
Второй столбец — «рабочая область»
Третий и четвертые — «зона вброса»

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

Есть ощущение, что максимальное значение которое можно набрать таким образом ограничено. Ощущение складывается на том, что с ростом значений в результирующих клетках зоны вброса и рабочей области будет недостаточно.

С другой стороны, решение задачи ханойский башен работает для любых n.

0
therussianphysicist, #
Стратегия «вверх, вправо, вниз, влево, повторить» позволяет закончить игру в среднем на 256, в то время как полностью случайные нажатия на клавиши приводят в среднем лишь к 64-128.
0
therussianphysicist, #
удалено
0
dimonier, #
Я когда в первый раз играл и еще не до конца понял логику перемещения блоков, дошел до 512.
В последующие несколько подходов, когда разобрался, как оно работает, и тщательнее продумывал ходы, дальше 256 не уходил.
Видимо, нужно прокачивать стратегические навыки ;-)
0
shubnil, #
Стратегия «вверх, вправо, вниз, влево, повторить»
= 512 :)
+9
lionsimba, #
аддиктивную -> захватывающую
+3
DonSinDRom, #
Ализар же.
+5
newdya, #
Это каламбур, намёк на слово «аддитивный».
+3
MiXaiL27, #
Одно понять не могу: при чем здесь тетрис?
+3
Alexey2005, #
Да, игра ближе к Triple Town, чем к тетрису.
+1
dimitrimus, #
Эх, стрелки… Вот так всегда, зайдешь с планшета и нужно стрелки нажимать
0
cypok, #
А вы попробуйте жестами в стороны по доске поводить, на iOS работает.
–5
mishasamin, #
Поставил «1024!» на iOS, не впечатлило, если честно
+5
Lerg, #
Кхм. Тогда, пользуясь случаем, представляю вам свою игру — Hex LED. Смысл тот же, но всё происходит на шестиугольном поле. Игра уже неделю в Google Play, и эту же неделю ждёт рассмотрения в App Store.
play.google.com/store/apps/details?id=com.spiralcodestudio.hexled



За счёт такого поля игра становится более вариативной и появляются даже различные тактики. Сначала я в ней набирал до 10000 очков, и думал, что до 20000 невозможно дойти, но недавно набрал более 40000, что меня крайне удивило. Максимальное число 4096 и присутствуют три набора фишек. Сделал платной без рекламы и внутриигровых покупок так как это дело мне порядком надоело.

Прототип был сделан за 4 часа для конкурса, финальная версия была сделана за неделю. Сделано на Corona SDK.

Буду признателен если поиграете и оставите отзыв!
+2
Ryav, #
Можно было бы хоть lite-версию выделить, за 15 минут не разберёшься, стоит ли внимания игра.
+3
Lerg, #
Хм. Сейчас сделаю.
+2
Lerg, #
Выкладываю APK Lite версии:
spiralcodestudio.com/tmp/Hex%20LED%20Lite.apk

Короткая ссылка: goo.gl/eYi9Ll
+2
Bringoff, #
Ух. Меня затянула ваша лайт-версия. Люблю игры, написанные с душой. Эта как раз из таких. Сам сейчас пишу свою первую игру под Android (пятнашки :)) и ваша игра, скажу я, круче некуда) Хороших продаж) Была бы у меня карточка — купил бы без промедления. А так — играю в лайт.
ЗЫ: на ходу, правда, играть немного неудобно одной рукой — иногда перекидывает не в ту сторону
+2
Lerg, #
Спасибо за лестный отзыв! Игру правда делал с душой.
Моя другая игра — Laser Puzzle, сейчас платная в App Store и бесплатная с видео рекламой в Google Play. Изначально она была платной и там, и там, и всё было неплохо, только на Android мало продаж. Решил сделать бесплатной с рекламой и тут посыпались гневные отзывы… терпеть этого не могу. Люди жалуются, что в бесплатной игре реклама… А обратно платной уже не сделать, Google запрещает.

А хотите, я вам сделаю полную версию с рекламой? Только на рекламу нажимайте пожалуйста, от неё неплохо идут деньги.
+2
Bringoff, #
А хочу) а то как-то напрягает, когда стоят 3 фишки по 512 в ряд и ничего с ними сделать нельзя)
+2
Lerg, #
Вот, пожалуйста. Полностью функциональная версия с рекламой.
spiralcodestudio.com/tmp/Hex%20LED.apk

Короткая goo.gl/t2Sii1
+1
Bringoff, #
Спасибо большое (самизнаете что уже когда-то плюсовал, так что обойдусь словами.
А вообще это довольно рискованно — выкладывать ссылку на всеобщий доступ. Кто-то менее сознательный возьмёт, вырежет рекламу лаки патчером и выложит на тот же 4pda)
+1
Lerg, #
Ну это не менее рискованно чем выкладывать в google play. От пиратства включать параноика бесполезно. В платной версии присутсвует защита, а ломать уже бесплатную версию малоизвестного разработчика занятие сомнительное.
Кстати только что версия для iOS перешла в статус In Review! Ура!
+8
maseal, #
Буду признателен если поиграете и оставите отзыв!
Какой-то не совсем уместный призыв, учитывая тот факт, что она платная.
+1
Lerg, #
Бесплатная версия с рекламой, специально для Хабра. habrahabr.ru/post/215291/#comment_7393571
0
Lerg, #
А игра тем временем вышла на iOS itunes.apple.com/app/id830218249
–6
Ryav, #
Выкладываем свои рекорды.
Мой рекорд на данный момент
0
l0rda, #
6272
+1
ruikarikun, #
7028 с первой попытки.
0
Dinir102, #
11888 (почти дошёл до 2048)
+23
AcidPrice, #
Я старался держать одну линию статичной, и делал ходы только так что бы линия могла накапливать большие стеки по нарастающей. И получилась довольно малозатратная по ходам победа :)
+3
Black_fm, #
Я бы хотел сказать, что мне сразу стало неитересно, но это было бы ложью.
0
Semisonic, #
Пожалуй, наиболее разумная стратегия. Единственное её слабое место — в моментах, когда в той линии, в которой копится результат — пусть это будет верхняя горизонтальная линия — оказывается пустое место, а сдвиги вверх и влево более недоступны.
В таком случае целесообразно выполнить пару сдвигов вниз и вверх. Если повезёт — новые элементы появятся именно в пустующем столбике. Если нет — то может потребоваться некоторое усилие для восстановки порядка следования элементов в верхней линии. Но это лучше, чем делать сдвиг вправо, ибо если новый элемент окажется в верхнем левом углу, то на этом игру можно заканчивать.
+3
Mrrl, #
Весь день коту под хвост…
image
+1
Myosotis, #
Но рекорд то побили, так что, день прошел не зря)
0
truegeek, #
А у нас тут рекордами меряются? Тогда вот:
0
Mrrl, #
Ну что же,
image
Примерно понятно, как ловить максимум — нужно в нижнем ряду собрать две 1024-ки по углам.
+2
Mrrl, #
Пожалуй, хватит…
image
+1
MiXaiL27, #
Надо отписаться в трекере от этого поста, каждый раз захожу и снова запускаю!
0
Mrrl, #
И антирекорд (до и после финальной цепочки ходов):
image
Хотя, в позиции, приведённой ниже, должно было бы получиться ещё очков на 50-60 меньше — совершенно непонятно, за счёт чего. Может быть, там выпадало настолько больше «четвёрок»?
+3
AcidPrice, #
Не хочу показаться завистником, но тут сложнее пройти в меньшее количество ходов(с меньшим количеством очков), чем наоборот :)
0
truegeek, #
Это да! Но и игру слишком долго тоже не затянешь, тк повышается вероятность геймовера.
0
Source, #
deleted
0
Lex85, #
Использовал аналогичную стратегию. 20888 очков
0
alexeibs, #
Я сделал это :) Стратегия — по возможности не трогал нижнюю линию, накапливал отсортированную последовательность — 128, 256, 512, 1024. Ну а затем собрать еще 128 и склеить все вместе
image
0
Nafanoid, #
Аналогично
720x1280 px
+1
KvanTTT, #
Какой однако молодой и талантливый разработчик, судя по профилям.
+14
truegeek, #
Ненавижу тебя, alizar! Верни мне утро!
+9
truegeek, #
Я меняю свое мнение, наконец-то сложив этот пазл с результатом 21284.
Ненавижу тебя, alizar! Верни рабочий день!
+3
DjPhoeniX, #
Именно поэтому я читаю хабр только по вечерам
0
alexeibs, #
Убитые вечера тоже считаются :) 2 вечера потратил на это
+1
truegeek, #
Кстати, по механике игры неплохо было бы, если и три одинаковых номинала складывались, давая бонусы.
0
nerudo, #
Результат не будет степень двойки и в механику, как раз-таки не вписывается.
0
truegeek, #
Почему же 2^3 = 8. Складывались, в смысле фишки складывались, а не операция сложения)
0
KvanTTT, #
Логичным обобщением для данной задачи будет использование не только бинарной, но и произвольной системы счисления. В частности, троичной :)
+1
zorgzerg, #
Огромное спасибо, еще один уничтоженный день моей жизни
+1
satellight, #
Стратегия максимального числа в углу действительно работает =)
0
mifki, #
На iOS есть Threes — там числа 1 2 3 6 и тд, причём соответственно 1 и 2 совокупляются только между собой. Очень интересная штука, да. Про вариант с одними двойками не знал.
0
vadcom, #
Более того: эта игра — клон saming.fr/p/2048/, который заимствовал идею у 1024, который копипастил уже у Threes — финалиста в Excellence in Design на IGF 2014.
–19
EvgeshaS, #
Какой-то бред.
–9
keslo, #
АААААААААААААААААА!!! вот это вещь! Больше 256 пока не набрал :-)
–5
Smrdis, #
Обычный клон троек. В чем прикол?
+9
Sersh666, #
А теперь можно просто сидеть и наблюдать за магией 2048-AI
+1
DjPhoeniX, #
Бот собрал ячейки 1024, 512, 256, и геймовернулся на попытке объединить две 128. Всё тлен.

Завербую его себе на скринсейвер…
+3
withkittens, #
А у меня этот гадёныш всё собрал с первой попытки!
+1
DjPhoeniX, #
А бота за день, видать, перепаяли — стал жрать в полтора раза больше ресурсов, зато за 3 запуска — 3 чистых победы.
+6
AgentSIB, #
Блин, хочу такую на android. Интересно, что быстрее будет: подождать или написать самому…
+2
Bringoff, #
Я тоже вот думаю, сесть написать, что ли… ) Пока играю в версию от Lerg
+2
withkittens, #
Астрологи объявили неделю клонов «2048».
Количество клонов «2048» увеличилось вдвое. ;)
0
withkittens, #
Кстати, даже под WP, где по традиции считается, что «игр нет», написали уже четыре клона.
Причём судя по тайлу одного из них, автор явно присутствует на хабре. Пользуясь случаем, передаю привет ;)
+2
resetnow, #
Она, кстати, прямо в браузере нормально работает, вместо стрелок свайп по области с числами.
0
AgentSIB, #
К сожалению, не все так гладко

0
resetnow, #
У вас, вероятно, не очень свежий андроид (это вообще андроид?). Я запускал на 4.4, там в стандартном браузере движок от хромиума 30, в более ранних версиях версия webkit примерно соответствует chromium 12. Можно попробовать поставить Chrome/Chrome Beta.
0
AgentSIB, #
Galaxy S4, прошивка стоковая последняя (4.4), браузер стандартный. В хроме не пробовал.
0
Pongo, #
В маркете уже появилось куча игр 2048. Но неясно, которая из них самая-самая.
0
xandr0s, #
Видимо официальное приложение — это. Но оно у меня, как и браузер (дельфин), последние 2 дня не отображает цифры. Пустые клетки и всё.
0
xandr0s, #
Нашел последний рабочий коммит 92399414eb8fa4907621a9de530169063fdfc619, следующий 74494bb5f512265f913272e7b0748bf1958c1cbf с комментарием «modify the game to allow using transforms» ломает игру на моем смартфоне. Откатился у себя назад, поигрываю по дороге на работу.
0
5ap, #
I scored 20344 points at 2048
0
cloudberry, #
После того, как мне приснилось, что я двигаю ящики с зерном по расчерченному полю, а при соприкосновении они «схлопываются», поняла, что нужно как можно скорее покончить с этой игрой.

Стратегия «Держать большие числа примерно в одном месте» очень помогла, но под конец удержать её было уже сложно, вот такая анархия получилась:
+1
Delphist2008, #
Гм, а можно и так.
+1
Delphist2008, #
+1
xandr0s, #
Спасибо, хотя бы так прошел…
0
uthunderbird, #
Написал консольную версию на питоне. Пока что код выглядит ужасно и почти не закомментирован, ибо писалось всё сегодня ночью.

bitbucket.org/dsupiev/cli-2048

Тестил под виндой и под маком, вроде норм. Если будут проблемы с клавишами под никсами — добавьте в словарь ARROWS какие хотите кнопки.

Если кому интересно, могу статейку накатать.
+1
winger, #
Если вдруг кому-то нечем занять выходные, в новой версии можно продолжать игру после получения 2048:

image
+1
Mrrl, #
Это нечестно с их стороны! 37560. Уже хватало материала, чтобы собрать 4096, но увы…
0
Haoose, #
Два дня играю
image
image

И все таки прошел =) Затягивающая штука!
Использовал стратегию трех кнопок. Выстраивал змейкой последовательность.
0
Mrrl, #
У меня 4096 тоже получилось, но счет меньше — 50224. На то, чтобы ловить 8192, очень жалко времени :(
+1
Mrrl, #
Ещё клон. Но вместо степеней двойки там числа Фибоначчи.
themoreyouknow.github.io/fib/
Игра нетривиальная, но чтобы добраться до действительно интересного уровня нужно больше часа. На поле 3*4 или 3*3 она была бы лучше.
+1
xandr0s, #
За что!? ))
Скрытый текст
0
quarantino, #
Если нажимать вверх и влево по очереди (а когда движение заканчивается — один раз вправо, и снова вверх-влево), то за пять минут можно дойти почти до тысячи.

Скрытый текст
image
+2
Mrrl, #
Это ужас…
image
+2
DjPhoeniX, #
phoenix.dj/65536
Русская локализация будет к вечеру, если не забуду.
Удачного понедельника ;)
0
DjPhoeniX, #
Штатный бот почему-то фейлится на сборе 32768 (уже не один раз проверил). Кто-нибудь может понять, почему? Подозреваю, что там что-то не так с приоритетами ходов…
habrastorage.org/files/01e/047/39d/01e04739d0134778a51bd046b18a8c19.png
0
MiXaiL27, #
Напрягает шрифт для цифр, хотелось бы полный клон с той же анимацией сдвига и шрифтом иначе крайне трудно отделаться от ощущения плохой подделки. К тому же лицензия позволяет, насколько я понимаю.
0
DjPhoeniX, #
Я при адаптации в свой движок вырезал некоторые моменты, чтоб не мешались при проверке, а потом забыл их вернуть… Виноват, исправлюсь. Только либо завтра, либо вечером — сегодня занят, справляю апгрейд до версии 2.0 :)
0
withkittens, #
Да вы не торопитесь, исправляйте потихоньку, главное-то чтобы пилилось в удовольствие :)
0
MiXaiL27, #
Извиняюсь за занудство, но если у вас будет время, то сделайте что-нибудь с плавающим кернингом в цифрах при сдвиге.
0
artishok, #
Сделайте возможность продолжить игру в удобное время)
0
DjPhoeniX, #
Да, в таких масштабах надо подумать над сохранениями :)
0
KvanTTT, #
Интересно, а есть ли клон с троичной системой счисления, где 3 квадратика схлопывались бы в 9 и т.д.? И назывался бы он 19683 (3^9 = 19683).
0
withkittens, #
Через некоторое время вирус «2048» мутирует, и среди прочего мы увидим и «19683» ;)
+1
DjPhoeniX, #
Заказ принял :)
0
KvanTTT, #
Оповестите тогда, когда закончите. Сам хотел сделать, да времени мало для этого :(
0
DjPhoeniX, #
Я вот думаю, какой размер поля делать. Если собирать в ряд 3 ячейки, то 4х4 явно мало. Выбираю между 6х6 и 9х9
0
KvanTTT, #
С точки зрения троичной системы счисления — лучше 9*9, и уж точно не 4*4, т.к. это будет идеологически неправильно. А само 19683 потом можно и изменить, в зависимости от того, насколько будет легко или сложно, т.е. взять 3^8 или 3^10 или другую степень.
0
xandr0s, #
Кстати о размерах полей и принятых заказах! Пожелание: несколько уровней сложности в том же 2048 не помешал бы. Easy выше выкладывали 8х8. Что-то подобное можно и для остальных вариаций
+1
Alex_MIPT, #
Коллекция клонов:
Усложнение
Мультиплеер
4096
8192
65536
9007199254740992
Трёхмерная
Четырёхмерная

Bыше уже упоминалось:
FIB
+1
Mrrl, #
Четырёхмерка хороша :) 3D тоже неплохая…
+2
Mrrl, #
Нет, у 3D слишком большой размер. Получить 16384 было несложно. Думаю, при неограниченном времени реалистично дойти до 2^20. А вот 4D действительно удачная.
0
Alex_MIPT, #
+1
Mrrl, #
image
+1
withkittens, #
Нет времени объяснять. Вы монстр!
0
Mrrl, #
На reddit обнаружилась картинка с плиткой 16384. Вот они действительно монстры :)
0
withkittens, #
Мне только интересно, сколько у вас ушло времени на эту игру? :)
0
Mrrl, #
Думаю, в сумме часа 2-2.5. Там было около 5000 ходов, на большинство ходов уходила секунда или две.
0
Fragster, #
del
+2
Fragster, #
0
mad_DOG, #
сегодня обнаружил в репозиториях maemo игрушку «2048», сразу же установил, пока максимальный рекорд 512
<оффтопик>в репозитории кроме «2048» появилось еще пара популярных игрушек с android под китайским авторством</оффтопик>
–1
beduin01, #
Вот еще один клон игры на D dlang.ru/forum/236-klon-2048-na-d

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