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

2048

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



На каждом раунде в игре появляется две плитки с цифрой «2». Нажимая стрелки, нужно сбросить их в сторону, при этом плитки одного «номинала» складываются. Выигрыш засчитывается при достижении результата 2048.
Читать дальше →
Всего голосов 189: ↑170 и ↓19 +151
Просмотры 402K
Комментарии 138

Простая стратегия игры 2048

Open source *Разработка игр *
Недавно на Хабре появилась статья, в которой опубликована ссылка на игру 2048. Там же можно подробнее прочитать правила и попробовать сесть за эту увлекательную штуку (достаточное количество хабраюзеров уже этим побаловались).

Студентам физфака тоже было весело, поэтому мы придумали простую эвристическую выигрышную (по крайней мере, нам удалось набрать 2048 в 9 из 10 раз) стратегию этой игры.

Занумеруем идущие подряд столбцы (можно и строки, но в дальнейшем я буду говорить о столбцах) от 1 до 4 (последовательно слева направо или справа налево). Основополагающим принципом стратегии является расположение чисел, при котором мы полностью заполняем 1ый столбец наибольшими доступными числами. При этом, во 2ом столбце числа в среднем меньше, чем в 1ом, а в 3ем меньше, чем во 2ом. Причем, только на последних этапах игры в 3ем столбце возможно появление чисел среднего номинала (где-то до 32).

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

Например, используя в качестве 1ого столбца левый, мы никогда не будем использовать клавишу →, чтобы не отклоняться от принципа.

Существенный тонкий нюанс: при заполнении выбранных столбцов нужно избегать ситуации, когда новое появившееся число может полностью заполнить столбец так, что нам придется сделать ход →, что полностью сведет на нет возможность продолжать играть по нашей стратегии.

Для наглядности прилагается картинка и видео:

image
Всего голосов 83: ↑63 и ↓20 +43
Просмотры 931K
Комментарии 43

Еще один 2048, теперь треугольный

Блог компании Papa Buba Diop Разработка под iOS *Разработка мобильных приложений *
image

В нашем клубе уже было описание игры 2048. Признаюсь, с первого раза игра мне не понравилась. Однако после прочтения следующей статьи, с подсказкой игровой стратегии, все изменилось. Я уверенно установил приложение 2048 на телефон и несколько раз сыграл. Родив через пару-тройку часов блок 8192, я затосковал и снес игру, решив сделать свой вариант. Вариант 1) нескучный и 2) для тупых.

Судя по отзывам приятелей и личному опыту, цель была достигнута. Приятелям мой вариант показался 1) нескучным, а для меня — 2) самый раз.

Срочно в номер. Только что review team одобрила игру. Как обещал, объявляю ее бесплатной с этой минуты на три дня, а там как кривая американской мечты вывезет.
.
Читать дальше →
Всего голосов 64: ↑40 и ↓24 +16
Просмотры 37K
Комментарии 40

Как создавать патчи, основанные на доверчивой политике безопасности Android

Информационная безопасность *Отладка *

Приветствую тебя, уважаемый читатель!


Offtop

В этом топике я хотел бы рассказать о том, как можно получать доступ к тому, что принадлежит нам, но косвенно.
Любой софт — это чья-то собственность: кто-то сидел и шевелил своими мозгами, чтобы произвести на свет очередное «чудо».
Но вне наших девайсов речи о софте не может и быть. Понятие «софт», в таком случае, будет означать не более чем «мягкость».
Это очевидно.
Именно поэтому мы имеем право вытворять с любым программным кодом, выполняющимся на нашем устройстве, все, что пожелает душа…

Intro

Думаю, начать стоит с самого начала. Все началось с моего обнаружения пользовательской зависимости окружающих к небезызвестной игре 2048. Мне, конечно же, стало интересно, чем эта игра так захватывает людей, поэтому я решил сам ее попробовать. Через несколько минут я понял ее суть и мне эта игра тоже стала интересна.
Должен признаться, более 5000 очков мне набирать не удавалось никак, а до 2048 было еще слишком долго…
Тем временем окружающие «игроки» с легкостью набивали по 10-16тыс очков, а некоторым удавалось даже достигать 2048 в клетке.
Что ж, спустя некоторое время у меня возникла идея тупо взломать эту игру, чтобы не «убивать» время на ее прохождение( она слишком долгая в прохождении, но от этого не менее затягивающая ). А еще спустя пару дней, об этом же меня попросили и мои знакомые.
Это означало одно: пора браться за дело…



Читать дальше →
Всего голосов 27: ↑17 и ↓10 +7
Просмотры 20K
Комментарии 27

Идеальная стратегия игры «2048»

Разработка игр *
Из песочницы
Всем привет!

Как известно, математическую игру «2048», создал итальянский разработчик Gabriele Cirulli.

Игровое поле состоит из сетки 4х4.
Игра начинается. На сцене две плитки с номиналом 2.
Передвигая, нужно сложить плитки одного «номинала».
Движение возможно в 4 стороны.

image

Цель игры — собрать плитку с «номиналом» 2048.
Читать дальше →
Всего голосов 81: ↑33 и ↓48 -15
Просмотры 425K
Комментарии 23

Новая идея. Бешеная смесь Паука и 2048

Блог компании Papa Buba Diop Разработка под iOS *Разработка мобильных приложений *
Не торопись. Подумай.

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

Для тех кому лень читать — есть ссылка на 30-секундное видео игры.

Читать дальше →
Всего голосов 63: ↑43 и ↓20 +23
Просмотры 29K
Комментарии 41

Делаем игру 2048 на AngularJS

JavaScript *Angular *
Перевод
Tutorial
Наверное, вам, как и многим коллегам, пришлась по вкусу игра «2048», в которой необходимо достичь плитки с числом 2048, собирая вместе плитки с одинаковыми числами.

В этой статье мы вместе построим клон этой игры при помощи фреймворка AngularJS. По ссылке можно посмотреть демонстрацию конечного результата.
Читать дальше →
Всего голосов 71: ↑58 и ↓13 +45
Просмотры 48K
Комментарии 15

«Код MOEX». Хакатон

Блог компании MOEX Хакатоны

Как выбрать лучших студентов для работы в ИТ-компании?


Берем 300 претендентов из лучших ВУЗов столицы, добавляем несколько этапов отбора, 1 предварительное техническое задание и украшаем «вишенкой» в виде финала-«Хакатона»!

В своем блоге на Хабре мы уже писали о старте новой программы стажировки для студентов ИТ-специальностей на Бирже. В феврале проект успешно стартовал, и мы получили более 300 заявок от студентов «ВШЭ», «Бауманки», «МГУ», «МФТИ» и других столичных ВУЗов. Из них только 31 претендент оказался в финале и участвовал в борьбе за право на год стать «биржевым айтишником».
Как это было...
Всего голосов 16: ↑12 и ↓4 +8
Просмотры 9.8K
Комментарии 8

Знакомство с Nim: пишем консольную 2048

Программирование *Разработка игр *

Хочется чего-то нового, быстрого, компилируемого, но при этом приятного на ощупь? Добро пожаловать под кат, где мы опробуем язык программирования Nim на реализации очередного клона игры 2048. Никаких браузеров, только хардкор, только командная строка!

В программе:

Читать дальше →
Всего голосов 27: ↑24 и ↓3 +21
Просмотры 21K
Комментарии 41

Мобильная VR-игра на Unreal Engine: подводные камни

Блог компании ВШБИ — Менеджмент игровых интернет-проектов Разработка мобильных приложений *Разработка игр *Разработка под Android *Unreal Engine *
В последнее время технология виртуальной реальности становится все более популярной. А вместе с популяризацией VR, больше разработчиков начинают делать VR-игры. При этом те грабли, на которые можно наступить при разработке своей VR-игры, часто отличаются от граблей в обычной мобильной разработке. Под катом вы найдете подробный рассказ о тех подводных камнях, с которыми может столкнуться разработчик мобильной VR-игры на Unreal Engine 4. Статья написана на примере мобильной игры 2048 VR, которую мы сделали и запустили для тестирования VR-разработки со слушателем программы “Менеджмент игровых интернет-проектов” и вместе с компанией FurecoVR.


Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 20K
Комментарии 13

Сравнение стратегий игры 2048

Python *C++ *Алгоритмы *
Из песочницы

2048 — игра появившаяся в 2014ом году и быстро ставшая популярной убивалкой времени. Простые правила игры только подталкивают игроков к созданию клонов, ботов и выигрышных стратегий. В том числе и на Хабре. (Клон, бот, стратегия) В этой статье рассказывается про удобный инструмент оценки стратегий игры и примеры его работы на нескольких ботах.


Скриншот игры


Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 15K
Комментарии 7

Математика игры 2048

Разработка игр *Математика *
Перевод

Часть 1. Расчёт минимального количества ходов для победы с помощью цепей Маркова


Screenshot of 2048

После недавнего обновления экран «You win!» игры 2048 начал показывать количество ходов, потребовавшихся для победы, и я задался вопросом: сколько же нужно ходов, чтобы выиграть?

В первой части статьи мы ответим на этот вопрос, смоделировав игру 2048 в виде цепи Маркова и проанализировав её, чтобы показать, что вне зависимости от мастерства игрока для победы в среднем нужно не менее 938,8 ходов. Это даёт нам неплохое мерило отсчёта — если вы можете выигрывать примерно за такое количество ходов, то неплохо играете.

Количество ходов, необходимых для победы, зависит от случайности, потому что игра добавляет тайлы 2 и 4 случайным образом. Анализ также покажет, что распределение минимального количества ходов до победы имеет стандартное отклонение в 8,3 хода, и что его общая форма хорошо аппроксимируется смесью биномиальных распределений.
Читать дальше →
Всего голосов 49: ↑48 и ↓1 +47
Просмотры 32K
Комментарии 23

Оптимальная игра в 2048 с помощью марковского процесса принятия решений

Математика *
Перевод

В предыдущей статье про 2048 мы использовали цепи Маркова, чтобы выяснить, что в среднем для победы нужно не менее 938,8 ходов, а также исследовали с помощью комбинаторики и полного перебора количество возможных конфигураций поля игры.

В этом посте мы используем математический аппарат под названием «марковский процесс принятия решений» для нахождения доказуемо оптимальных стратегий игры 2048 для полей размером 2x2 и 3x3, а также на доске 4x4 вплоть до тайла 64. Например, вот оптимальный игрок в игру 2x2 до тайла 32:

GIF

Случайное начальное число (random seed) определяет случайную последовательность тайлов, добавляемых игрой на поле. «Стратегия» игрока задаётся таблицей, называемой алгоритмом (policy). Она сообщает нам, в каком направлении нужно сдвигать тайлы в любой возможной конфигурации поля. В этом посте мы рассмотрим способ создания алгоритма, оптимального в том смысле, что он максимизирует шансы игрока на получение тайла 32.

Оказывается, что в игре 2x2 до тайла 32 очень сложно выиграть — даже если играть оптимально, игрок выигрывает только примерно в 8% случаев, то есть игра оказывается не особо интересной. Качественно игры 2x2 сильно отличаются от игр 4x4, но они всё равно полезны для знакомства с основными принципами.

В идеале мы хотим найти оптимальный алгоритм для полной игры на поле 4x4 до тайла 2048, но как мы убедились из предыдущего поста, количество возможных конфигураций поля очень велико. Поэтому невозможно создать оптимальный алгоритм для полной игры, по крайней мере, с помощью используемых здесь методов.

Однако мы можем найти оптимальный алгоритм для укороченной игры 4x4 до тайла 64, и, к счастью, мы увидим, что оптимальная игра на полях 3x3 качественно выглядит похожей на некоторые успешные стратегии полной игры.

Код (исследовательского качества), на котором основана эта статья, выложен в открытый доступ.
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 17K
Комментарии 9

Открытый вебинар «Игра «2048»

Блог компании OTUS Программирование *Разработка игр *C# *
Всем привет!

Мы открыли новый курс — «Разработчик игр на C#» (который, в целом, больше, чем только разработка игр), а создатель и преподаватель курс Евгений Волосатов уже провёл первый открытый урок. На нём он показал на примере создания игры «2048» весь жизненный цикл создания программы: планирование, создание модуля логики игры, интерфейса пользователя, подбор музыкальных эффектов, перенос игры на Android или iPhone.



Как всегда ждём вопросы и комментарии тут или их можно задать Евгению, зайдя на день открытых дверей.
Всего голосов 11: ↑7 и ↓4 +3
Просмотры 3.3K
Комментарии 1

ИИ и 2048. Часть 1: Метод Монте-Карло

Блог компании Edison Совершенный код *Алгоритмы *Тестирование игр *Логические игры
Перевод


«2048» через несколько недель исполняется 5 лет, а значит, пора написать что-нибудь, посвящённое этой замечательной игре.

Особенно познавательна тема самостоятельной игры искусственного интеллекта в головоломку. Способы реализации есть самые разные и сегодня разберём относительно лёгкий из них. А именно — научим компьютерный разум собирать степени двойки с помощью метода Монте-Карло.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 17K
Комментарии 21

ИИ и 2048. Часть 2: Минимакс + альфа-бета отсечение

Блог компании Edison Алгоритмы *Тестирование игр *Искусственный интеллект Логические игры


Метод Монте-Карло мы разобрали, сегодня посмотрим, как компьютерный разум играет в 2048, используя старый добрый минимакс с альфа-бета отсечением.
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 11K
Комментарии 11

2048 WASM или игра на Rust за 2 дня

Разработка игр *Rust *

Данная статья представляет из-себя эксперимент с Rust'ом с последующей его компиляцией в WASM. Было интересно пощупать данные технологии на чем-то сложнее, чем вычисление факториала, поэтому выбор пал на всем известную игру 2048.



Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 6.8K
Комментарии 10

HexThrees — моя первая законченная игра

Разработка под iOS *Разработка игр *

Привет, Хабр! Одно время здесь весьма популярны статьи "вот моя первая игра". В последнее время я что-то их не наблюдаю, так что решил восполнить этот пробел самостоятельно.

Как я клон Threes делал
Всего голосов 36: ↑35 и ↓1 +34
Просмотры 7.1K
Комментарии 5