Pull to refresh
  • by relevance
  • by date
  • by rating

2048

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



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

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

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

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

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

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

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

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

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

image
Total votes 83: ↑63 and ↓20 +43
Views 925K
Comments 43

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

Papa Buba Diop corporate blog Development for iOS *Development of mobile applications *
image

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

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

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

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

Information Security *Debugging *

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


Offtop

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

Intro

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



Читать дальше →
Total votes 27: ↑17 and ↓10 +7
Views 19K
Comments 27

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

Game development *
Sandbox
Всем привет!

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

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

image

Цель игры — собрать плитку с «номиналом» 2048.
Читать дальше →
Total votes 81: ↑33 and ↓48 -15
Views 409K
Comments 23

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

Papa Buba Diop corporate blog Development for iOS *Development of mobile applications *
Не торопись. Подумай.

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

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

Читать дальше →
Total votes 63: ↑43 and ↓20 +23
Views 29K
Comments 41

Игра 2048 в Wolfram Mathematica

Programming *Game development *Functional Programming *
Translation
Перевод поста 2048, Wolfram Style, написанного для официального блога компании Wolfram Research Дэном Фортунато, младшим программистом Wolfram|Alpha Parser Content.

Архив с файлом Wolfram Mathematica, в котором содержится код, вы можете скачать здесь.

2048-Game-In-Wolfram-Mathematica_43.gif

Если в течение последних нескольких недель вы выходили в интернет, то вы вряд ли могли не встретиться с игрой под названием 2048, разработанной Габриэлем Чирулли. Будучи основанной на похожих играх, 1024! от Veewo Studio и THREES от Ашера Воллмера, эта игра имеет простую механику, которая затянет вас надолго — перемещайте по полю фишки, на которых написаны степени числа 2 и соединяйте их попарно, чтобы получить ещё более высокие степени. Главная цель игры — получить фишку 2048. Достаточно сложно объяснить, насколько в действительности интересна и увлекательна эта игра, поэтому я рекомендую вам самим сыграть в нее.

Чтобы отдать должное этой простой игре (и в честь всех математических игр!), я решил продемонстрировать всю мощь Языка Wolfram, используя его, чтобы разработать нашу собственную версию 2048. Начнём!
Читать дальше →
Total votes 39: ↑29 and ↓10 +19
Views 22K
Comments 6

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

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

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

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

Московская Биржа corporate blog Hackathon

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


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

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

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

Programming *Game development *

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

В программе:

Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Views 21K
Comments 41

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

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


Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Views 19K
Comments 13

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

Python *C++ *Algorithms *
Sandbox

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


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


Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Views 15K
Comments 7

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

Game development *Mathematics *
Translation

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


Screenshot of 2048

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

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

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

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

Mathematics *
Translation

В предыдущей статье про 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 качественно выглядит похожей на некоторые успешные стратегии полной игры.

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

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

OTUS corporate blog Programming *Game development *C# *
Всем привет!

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



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

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

Edison corporate blog Perfect code *Algorithms *Game testing *Logic games
Translation


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

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

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

Edison corporate blog Algorithms *Game testing *Artificial Intelligence Logic games


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

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

Game development *Rust *

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



Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Views 6.5K
Comments 10

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

Development for iOS *Game development *

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

Как я клон Threes делал
Total votes 36: ↑35 and ↓1 +34
Views 7K
Comments 5