2048
2048 — сыскавшая большую популярность в Интернете бесплатная браузерная игра, разработанная в марте 2014 года девятнадцатилетним итальянским программистом Габриэле Чирулли (итал. Gabriele Cirulli). Игра написана на языке JavaScript, её исходный код можно посмотреть на GitHub.[1] По словам Габриэле, он написал игру менее, чем за два дня, вдохновившись схожими играми 1024! (в свою очередь основанной на игре Threes, релиз которой состоялся 6 февраля 2014 года), и 2048 (отличается от версии Чирулли правилами перемещения плиток по полю).[2]
Помимо браузерного варианта, игра представлена и в виде мобильных приложений для смартфонов и планшетных компьютеров, которые могут работать без подключения к Интернету.
Содержание |
[править] Правила игры
Игровое поле имеет форму квадрата 4x4, в каждой клетке которого может содержаться плитка (тайл) с некоторой степенью двойки. После каждого хода в пустой клетке появляется новая плитка номинала «2» (с вероятностью 90 %) или «4» (с вероятностью 10 %). В начале партии (перед первым ходом) появляются два тайла. Ход заключается в том, что с помощью стрелок клавиатуры игрок скидывает все плитки в одну из сторон, при этом налетающие друг на друга плитки одного номинала объединяются в одну, номинал которой равен сумме объединившихся тайлов, то есть следующей степени двойки. Ход считается сделанным только в том случае, когда хотя бы одна плитка изменила своё положение. За каждую сложенную плитку игрок получает столько очков, каков номинал полученной плитки. Цель игры — получить тайл с номиналом 2048, игра заканчивается поражением, если после очередного раунда невозможно совершить ход. Исходно после получения победной плитки игра завершалась, позднее была добавлена возможность продолжения игры. Также существуют множество вариаций с различными правилами.
[править] Исследования на Хабрахабре
Игре посвящено несколько постов на Хабрахабре. В одной из тем обсуждалась стратегия игры в 2048. В частности рекомендуется заполнять первый ряд по убыванию значения плиток слева направо, затем второй ряд — тайлами по убыванию справа налево. При этом рекомендуется использовать преимущественно ходы «влево» и «вверх», двигаясь вправо только при необходимости и избегая хода «вниз». Подобная стратегия приводит к получению максимальных тайлов в левом верхнем углу, существуют аналогичные стратегии для остальных трёх углов игрового поля.[3]
В другом посте было получено, что максимально возможной плиткой в этой игре является 2^17=131072, а максимально возможное число очков, которые можно набрать, — 3 932 100. Игра может продолжаться не более, чем 131 052 ходов.[4]
[править] Вариации
Популярность и простота реализации игры привела к появлению многочисленных разновидностей и вариаций игры, от шуточных до серьёзных самостоятельных игр. Ниже приведены некоторые из них.[5]
[править] Различные конфигурации
Размеры поля | Выигрышная плитка | Ссылка |
---|---|---|
2×2 | 4 | http://ehzhang.github.io/4/ |
3×3 | 256 | http://aarextiaokhiao.github.io/Aarex2048/256.html |
4×4 | 1024 | http://aarextiaokhiao.github.io/Aarex2048/classic.html |
4×4 | 4096 | http://martijnkorteweg.github.io/4096/ |
4×4 | 8192 | http://www.csie.ntu.edu.tw/~b01902112/8192/ |
4×4 | На выбор, от 8 до 32768 | http://poweroftwo.nemoidstudio.com/2048 |
5×5 | 65536 | http://www.csie.ntu.edu.tw/~b01902112/65536/ |
6×6 | 4194304 | http://aarextiaokhiao.github.io/Aarex2048/4194304.html |
8×8 | 9007199254740992 | http://www.csie.ntu.edu.tw/~b01902112/9007199254740992/ |
[править] Различные размерности
Размерность пространства | Размеры поля | Ссылка |
---|---|---|
1D | 1×21 | http://tiansh.github.io/2048/ |
3D | 3×3×3 | http://joppi.github.io/2048-3D/ |
4D | 2×2×2×2 | http://maigoakisame.github.io/2048-4D/ |
5D | 2×2×2×2×2 | http://cesarkawakami.github.io/2048-5D/ |
[править] Различные формы поля
Форма поля | Выигрышная плитка | Комментарии | Ссылка |
---|---|---|---|
Шестиугольник (19 клеток). | 16384 | Управление с помощью клавиш W, E, A, D, Z, X для перемещения всех плиток в одном из шести направлений (влево-вверх, вправо-вверх, влево, вправо, влево-вниз, вправо-вниз). | http://rudradevbasak.github.io/16384_hex/ |
Шестиугольник без центральной клетки (18 клеток). | 2048 |
|
|
Треугольник (16 клеток) | 2048 | Управление по сторонам треугольника: A, Q, W, E, D, S. | http://creativesparkstudios.com/triangular-2048/ |
|
2048 | В одной из общих клеток квадратов необходимо сложить 2048. Плитка, попавшая в эти клетки, двигается только по ним. Игра считается проигранной, если хотя бы на одном из двух квадратов нет возможности сделать ход. | |
Квадрат (16 клеток) | 2048 | На доске для стандартной игры 2048, однако плитки двигаются по диагоналям. Сложить 2048 невозможно теоретически. | http://vladimirmandaric.github.io/DIAGONAL2048/2048-master/index.html |
[править] Различные правила объединения
Большое количество разновидностей игры отличаются от оригинальной правилами, по которым несколько плиток объединяются в одну.
- 0 — шуточная версия игры, две плитки с «2» объединяются в одну плитку «2». Проиграть в эту игру невозможно. Аналогичная версия есть и с нулями.
- Fe[26] — в качестве тайлов используются химические вещества, список «реакций», по которым две плитки объединяются в одну, прилагается. Кроме того, некоторые элементы имеют свойство «распадаться» — превращаться в другие после того как не вступили в «реакцию» некоторое определённое число ходов.
- 2048 — Zen — несложная версия игры, любые две плитки объединяются в одну. Имеется аналогичная версия, но позволяющая продолжить игру после 2048.
- FIB — игра на числах Фибоначчи. Пара соседних чисел Фибоначчи объединяется в одно следующее. Версия до 1597, до 987.
- 2187 — игра на доске 6×6, три подряд идущие плитки одинаковых номиналов схлопываются в одну, номинал которой в три раза больше. Имеется более простая версия, на доске 5×5 до 243.
- 144 — игра на доске 5×5, несколько подряд идущих плиток одинаковых номиналов схлопываются в одну, номинал которой равен сумме номиналов объединившихся плиток.
- Finals 2048 — ещё одна шуточная версия игры, любые две одинаковые плитки складываются в одну номиналом 2048. Аналогичная для доски 6×6, две одинаковые плитки объединяются в одну номиналом 4194304.
- 20 Euros — на плитках изображены монеты и банкноты Евро. Объединение плиток происходит только в том случае, если изображённые на них монеты (деньги) можно разменять на одну большего номинала (например, 2 цента + 2 цента + 1 цент дадут 5 центов).
- 2047 — два тайла объединяются, если число на одном из них больше другого менее, чем в два раза. Победный тайл определяется случайным образом.
- Stochastic — два тайла с равными степенями двойки объединяется в один, номинал которого равен номиналу объединившихся плиток, их сумме либо удвоенной сумме.
- DIVE — две плитки объединяются в одну, если одно из записанных на них чисел делится на второе. Перечень возможных новый тайлов зависит от режима игры.
- Divide it! — объединение происходит только в том случае, когда номиналы плиток не являются взаимно простыми числами, результатом объединения становится тайл с номиналом, равным наибольшему общему делителю объединившихся плиток. Цель игры — продержаться как можно дольше.
- 2048 русский — Клон 2048 игры в логарифмическом представлении с русского алфавита, идеально подходит для людей, которые не любят цифры.
- 1024 игра — Клон 2048 игры в логарифмическом представлении с русского алфавита, идеально подходит для людей, которые не любят цифры.
[править] Галерея побед
[править] Версии с особыми тайлами
- 2048 с нулём — после каждого хода может появиться плитка номинала «0». Подобные тайлы объединяются только друг с другом.
- 2048 с четырьмя тысячами девяносто шестью — после каждого хода появляется плитка с номиналом «2», «4» или «4096».
- 204÷ — добавлен особый тайл «÷», который, объединяясь с любой плиткой, уменьшает её номинал в два раза (в том числе могут быть получены дробные номиналы).
- Advanced 2048 — добавлены тайлы «×2» и «×4», которые объединяются с любой плиткой, удваивая (учетверяя) её номинал. Цель игры — собрать 32768.
- Quantum 2048 — некоторые тайлы находятся в состоянии «квантовой неопределённости» и одновременно являются плитками нескольких различных номиналов.
- 2048 ±*/ — добавлены особые тайлы «+», «-», «*», «/». В одну плитку объединяются три плитки, первая и третья из которых содержит числа, а центральная — знак арифметического действия. Номинал исходной плитки равен значению полученного выражения (например, при нажатии клавиши влево ← комбинация «5», «-», «3» объединится в 3-5=-2, а при нажатии вправо → — в 5-3=2). Одинаковые тайлы объединяются в один того же номинала.
- Study with 2048 — особая игра, где в качестве дополнительного тайла выступает плитка «?». Она объединяется с любой другой плиткой, однако после этого игроку задаётся вопрос на эрудицию, продолжить игру можно только после дачи правильного ответа. Тематика и сложность вопрос настраивается.
[править] 2048 с отрицательными числами
В нескольких вариантах игры новые плитки появляются не только с положительными, но и с отрицательными числами.
- -512 — на доске 6×6 необходимо сложить тайл −512. Положительные и отрицательные числа между собой никак не взаимодействуют.
- ±64 — на доске 4×4 необходимо сложить тайл 64 и −64. Две плитки с одинаковыми по модулю, но различными по знаку значениями (например, 2 и −2) объединяются в одну плитку с номиналом «0».
- zero — две плитки с одинаковыми по модулю, но различными по знаку значениями схлопываясь исчезают. Задача — избавиться от всех тайлов на доске.
[править] Обратные 2048
В эту категорию попали те вариации 2048, в которых суть игры поставлена с ног на голову.
В частности, это игры, в которых для победы необходимо проиграть как можно скорее:
- anti-2048 — игрок сразу имеет 512 очков, однако с каждой сложенной плиткой их число уменьшается на номинал полученного тайла. Если число очков достигает нуля, игра заканчивается поражением. Победа фиксируется, если число очков осталось положительным, но сделать ход уже невозможно.
- -2048 — на плитках — степени двойки со знаком минус. Для победы необходимо получить позицию, из которой невозможно сделать ход, ранее, чем сложится тайл −2048. Игра усложняется тем, что на тайле, появляющемся после каждого хода, могут быть большие степени двойки (до −128 включительно).
В некоторых разновидностях игры человек и рандом меняются местами: игрок выбирает клетку (а иногда и номинал) для нового тайла, после чего все плитки сдвигаются в случайном направлении.
- 8402 — по клику левой клавишей мыши появляется двойка, по клику правой — четвёрка.
Есть разновидности, где эти два правила соединены:
- 2047 — по клику мыши в указанной клетке появляется 16 или 32, необходимо занять всю доску до того, как сложится плитка 2048.
Ещё одна версия игры, в которой задача игрока не собирать плитки, а разбирать:
- 2(048) — игра начинается с собранного тайла «2048». Задача игрока состоит в том, чтобы получить плитку номинала 2. На каждом ходу необъединявшиеся тайлы распадаются на два (если имеется свободное место).
[править] Мультиплеер
Для игры 2048 разработано два вида мультиплеера: кооперативная игра (при которой каждый из находящихся на сайте игроков может сдвинуть тайлы) и соревнование, когда два игрока каждый на своей доске стремятся за отведённое время набрать как можно большее число очков, не проиграв при этом:
- HN Plays 2048 — кооперативная игра.
- Big Hack Plays 2048! — ещё одна кооперативная игра, имеется счёт побед и поражений.
- 2048-SendGrid — кооперативная игра, ходы делаются путём отправления указанный e-mail направления следующего хода.
- 2048+2048 — игра на двух досках, управление на одной с помощью стрелочек, на другой — с помощью WASD.
[править] Прочие
- TwoX — смесь 2048 и жанра «3 в ряд», пока доступна только для Android, надеемся, в скором времени выпустят на другие платформы.
- Deterministic 2048 — лишённые случайности 2048, новая плитка появляется в первой свободной клеточке.
- 2048 Masochism Edition! — по умолчанию ни одна плитка не видна, во время хода несколько тайлов могут отобразиться и тут же исчезнуть.
- Devil’s 2048, Evil 2048 и 2048 — Hard — несколько вариаций игры, проходящей по стандартным правилам, однако новые тайлы выпадают не случайно, а с целью максимально испортить положение игроку.
- Easy 2048 — противоположная предыдущим версия, новые тайлы стараются помогать игроку (в том числе иногда может выпасть плитка с числом больше 4).
- Для тех, кто никак не может победить в 2048 — шуточный вариант, всё поле кроме одной клетки занято плитками «1024». Любой ход приводит к победе.
- 2048 hack — 2048 по стандартным правилам, однако имеется возможность настроить номинал самой маленькой плитки, допустимы положительные, отрицательные, дробные числа, а также Infinity и -Infinity. Остальные выражения будут интерпретированы как единица.
- 0xff — на плитках записаны шестнадцатиричные числа, при этом на каждом ходу появляется либо 0x00, либо 0x01; две плитки 0x0 дают тайл 0x4b, который в свою очередь является половиной тайла 0x69. Из двух плиток 0x1 сразу получается тайл 0x69, однако 0x1 и 0x4b никак между собой не взаимодействуют.
- Speed 2048 — новый тайл появляется каждую секунду.
- Isotopic 256 — игра на доске 3×3. Необходимо сложить атом химического элемента нобелия, объединяя в пары атомы других веществ. Основная особенность игры — атомы бериллия, фосфора и олова неустойчивы и пропадают через определённое число ходов.
- Double 2048 — ходы делаются одновременно на двух досках. Отсутствие ходов хотя бы на одной из досок влечёт поражение.
- Obstacle 2048 — 2048 на доске 4×4 либо 5×5; на выбора игрока от 0 до 4 клеток доски может быть заблокировано.
- SH0TS! — вместо тайлов — стопки с коктейлями, большему номиналу соответствует больший объём напитка. Задача игрока — сложить как можно больше полных шотов.
- 2048 Hell — 2048 с гравитацией, плитки произвольно перемещаются по полю.
- Ch2048s — гибрид шахмат и 2048 (на ранней стадии тестирования и разработки)
[править] Галерея побед
[править] Принципиально иные игры
- Аналог Flappy Bird: в соответствии с правилами игры Flappy Bird, при нажатии на Space bar плитка с числом поднимается вверх. Цель: не задевать движущиеся препятствия. С каждым успешно пройдённым препятствием значение двигающейся плитки увеличивается.
- Версия 1. Значение тайла увеличивается арифметически (0, 1, 2, 3…).
- Версия 2. Значение тайла увеличивается геометрически (1, 2, 4, 8…).
- Наиболее красочная версия.
- Тетрис: новые плитки падают сверху, при падении на плитку того же номинала происходит объединение, причём полученный тайл возможно перемещать.
- Гоночки: двигая тайл, игрок должен избегать столкновений с движущимися препятствиями.
- Головоломки: на доске 4×4 задаётся исходная позиция тайлов, причём некоторые клеточки доски заняты недвижимыми препятствиями. Необходимо за минимальное количество шагов получить один тайл (новых плиток после каждого хода не появляется).
[править] Гаджеты
В исходной версии игры не допускалась отмена ходов и сохранение позиции, что несколько усложняло прохождение. Поэтому был создан ряд форков игры, в которые были добавлены некоторые дополнительные технические возможности.
- http://jerryjiahaha.github.io/2048/ — добавлена возможность сохранить текущую позицию и позднее загрузить её.
- http://quaxio.com/2048/ — добавлена возможность отменять ходы.
- http://storborg.github.io/2048/ — с каждым ходом изменяется якорь в URL, что позволяет сохранить ссылку на определённую позицию.
- https://dropbox2048.site44.com/ — версия 2048, позволяющая сохранять позицию на Dropbox.
- http://ted-996.github.io/2048/ — вариант игры, содержащий защиту от случайных неверных ходов. Предполагается, что игрок придерживается стратегии построения плитки с наивысшим номиналом в одном из углов поля. Перед началом игры требуется указать, в каком углу будет самый большой тайл. Далее во время складывания каждый ход, при котором плитка, находящаяся в выбранном углу, должна переместиться, расценивается как потенциально случайный — для его подтверждения требуется нажать клавишу Y.
- http://meep.cubing.net/2048/ — 2048 с таймером.
[править] Искусственные интеллекты
Кроме вышеперечисленного, ряд сайтов предлагает возможность запустить бота, который будет складывать плитки.
- http://random-strangers.com/2048analyze — кроме бота добавлен анализатор текущей позиции.
- http://sleepycoder.github.io/2048/
- http://maartenbaert.github.io/2048/
Для создания собственного бота можно воспользоваться следующей болванкой:[6]
function Ai() { this.init = function() { } this.restart = function() { } this.step = function(grid) { } }
Комментарии. Методы init и restart вызываются, когда искусственный интеллект соответственно запускается впервые или игра начата заново. Их можно не трогать.
Метод step — основная составляющая искусственного интеллекта. Этот метод вызывается после каждого обновления позиции. Он возвращает одно из следующих целых чисел, означающих направление перемещения плиток на доске:
- 0: вверх
- 1: вправо
- 2: вниз
- 3: влево
Параметр grid содержит текущее состояние игры в виде объектов класса Tile, расположенных в ячейках grid.cells. Верхний левый угол обозначен grid.cells[0][0], верхний правый — grid.cells[3][0], нижний левый — grid.cells[0][3], нижний правый — grid.cells[3][3]. Объекты класса Tile имеют поле .value, содержащее значение плитки. Если в верхнем левом углу стоит плитка 2, то grid.cells[0][0].value == 2. Массив будет содержать null, если в данная клетка не содержит тайла (например grid.cells[0][3] == null означает, что левый нижний угол пуст). Для grid реализованы два полезных вспомогательных метода:
- .copy() — создаёт копию текущей позиции и возвращает её.
- .move(dir) — может быть использован для изучения позиции, которая получится в случае хода в указанном направлении. Метод изменяет состояние поля, поэтому для корректной работы следует пользоваться методом только после вызова .copy(). Изменённая позиция не содержит информации о новом тайле, возникшем после совершённого хода. Метод возвращает true, если ход в указанном направлении допустим и false в противном случае.
Пример простейшей реализации искусственного интеллекта:
function Ai() { this.init = function() { } this.restart = function() { } this.step = function(grid) { if (this.foo == null) this.foo = 0; return this.foo++ % 4; }
Несколько образцов ИИ для 2048, выполненных на основании приведённой выше болванки:
- https://googledrive.com/host/0B0PfMdYiR0zuWUtwSktpX0ZxTms/ai/monoAI.js
- https://gist.github.com/bbarry/9789049
- http://murgo.underkround.net/2048/ai.js
- http://villesalonen.fi/2048/ai.js
Опробовать собственного бота (либо одного из приведённых выше) можно с помощью следующего инструмента:
[править] Оформление
Официальная версия игры оформлена в серых тонах, а тайлы с возрастанием номинала изменяют цвет от серых к золотым через красные (плитки с номиналом, превосходящим 2048, окрашены в чёрный цвет).
Однако практически сразу стали появляться разнообразные версии игры, отличающиеся от версии Габриэля Чирулли только оформлением: изменились цвета плиток, надписи на них перестали быть степенями двойки, в некоторых версиях на каждом тайле была изображена картинка, появились версии со звуком. Примеры подобных игр:
- 2048 Numberwang — на плитках записаны произвольные числа, изменяющиеся с каждым ходом. Ориентируйтесь на цвет тайлов.
- 1 — версия, в которой необходимо из тайлов 1/1024 и 1/512 получить 1.
- Prism — призмы различных оттенков.
- 2048 on fire — тематика огня.
- 2048 — Animated edition — анимированная версия.
- 2048 Game of Thrones Editon — на тайлах изображены смерти ключевых персонажей «Игры престолов» в хронологическом порядке, игра сопровождается саундтреком из фильма.
- Godly 2048 — греческая мифилогия.
- 2048: Doctor Who Edition — докторы Кто.
- DOGE2048 — вырвиглазная версия с собачками.
- PAW 2048 — любимые в Интернете котики.
- YHDET VIELÄ! — финский алкоголь.
- lulz2048 — версия с нелепыми звуками.
- 2048: meta Edition — складывать разные версии игры 2048, чтобы в конце концов получить 2048: meta Edition.
- 2048: LoremPixel Edition — невероятно сложная версия игры, тайлы всех номиналов отображаются одинаково (случайная картинка).
2 сентября 2015 года сайт meduza.io в свете экономических проблем и повышенного интереса общества к данной теме представил свою версию игры 2048, в которой предлагалось из одного рубля получить баррель нефти.[7]
В Интернете появились также генераторы игр 2048, где каждый может подобрать оформление по вкусу:
- 2048 — имеется возможность изменить текст на тайлах.
- 2048 — возможность загрузить картинку для каждой плитки.
- Make Your Own 2048 — наиболее полная версия, имеется возможность установить текст/картинку для каждого тайла, оформление доски и фона. В играх, созданных на этом генераторе, имеется возможность увидеть все тайлы без прохождения игры — достаточно нажать клавишу +.
[править] Читерство
Существует несколько различных способов, с помощью которых можно значительно увеличить число очков, отображаемых в графе «Best»,
[править] Инструкция для Google Chrome
С помощью Google Chrome можно не только изменить значение отображаемого лучшего достижения, но и установить себе позицию, определить победный тайл и т. д.[8]
- После того, как игра загрузится, откройте Developer Tools (нажмите клавишу F12).
- В открывшейся панели следует выбрать вкладку Elements.
- Найдите строку <script src="js/game_manager.js"></script> и кликните по гиперссылке js/game_manager.js. Должна открыться вкладка Sources.
- Для того, чтобы изменить счёт, найдите строку this.score = 0 и измените 0 на любое число.
- Чтобы изменить номинал победной плитки, найдите строку if (merged.value === 2048) self.won = true; и поменяйте 2048 на желаемое значение.
- Чтобы задать позицию плиток, найдите строку this.addStartTiles(); и закомментируйте её с помощью двух слэшей (она должна стать такой: // this.addStartTiles();). После этого вы можете дописать строки следующего вида: this.grid.insertTile(new Tile({x:<номер столбца, от 0 до 3>,y:<номер строки, от 0 до 3>}, <номинал плитки, любое положительное или отрицательное число>));. Например:
this.grid.insertTile(new Tile({x:0,y:0}, 1024)); this.grid.insertTile(new Tile({x:0,y:1}, 512)); this.grid.insertTile(new Tile({x:0,y:2}, 256)); this.grid.insertTile(new Tile({x:0,y:3}, 128)); this.grid.insertTile(new Tile({x:1,y:3}, 64)); this.grid.insertTile(new Tile({x:1,y:2}, 32)); this.grid.insertTile(new Tile({x:1,y:1}, 16)); this.grid.insertTile(new Tile({x:1,y:0}, 8)); this.grid.insertTile(new Tile({x:2,y:0}, 4)); this.grid.insertTile(new Tile({x:2,y:1}, 2)); this.grid.insertTile(new Tile({x:2,y:2}, 2));
- Для того, чтобы увидеть результаты читерства, сохраните изменения, нажав ctrl+s, а затем запустите новую игру. Все внесённые таким образом изменения действуют до первого закрытия вкладки с игрой, однако достигнутый с их помощью рекорд сохраняется.
[править] Прочее
В официальной версии игры отсутствует возможность отмены неудачного хода. Тем не менее, благодаря тому, что текущая позиция сохраняется, существует специальная хитрость. В удачной позиции игра открывается в нескольких вкладках, тогда в случае поражения можно закрыть вкладку с неуспешной позиции и начать с точки «сохранения» в соседней вкладке.[4]
Существуют специальные приложения, позволяющие изменять лучший результат в версии 2048 для iOS и Android.[9]
[править] Факты
- Согласно блогу автора игры, за два месяца в неё сыграло более 23 миллионов человек.[10]
- В мае 2014 года была выпущена версия игры для iPhone и Android.[10][11]
- Артемий Лебедев одобряет эту игру.[12]
[править] Галерея
[править] Ссылки
[править] Примечания
- ↑ 2048
- ↑ Авторский пост на Hacker News
- ↑ Простая стратегия игры 2048
- ↑ 4,0 4,1 Математика и игра 2048
- ↑ На основе 2048 Variants и ALL THE 2048
- ↑ Переведено с ai_example.js
- ↑ От рубля! «Медуза» представляет актуальную версию игры 2048
- ↑ Use Chrome to make this hack, and then you can go to bed
- ↑ Например.
- ↑ 10,0 10,1 Блог автора
- ↑ 2048. Официально на смартфоны
- ↑ Две проги: 2048 и Мекстуры
2048 относится к теме «Онлайн-игры» |