2048

Рекомендованный уровеньуровень
5+
Жил некогда молодой итальянец по имени Габриэле Чирулли. Он изучал программирование и однажды, делая упражнение по кодингу, совершенно случайно совершил прорыв в игровой индустрии. Как ему это удалось? Вышло так, что в качестве упражнения он решил написать игру, чем-то похожую на уже существующую головоломку Trees. На реализацию игры, которую он назвал 2048, у Габриэле ушло два дня. Игра была бесплатной и имела ошеломительный успех! Даже если вы сами не играли в 2048, то, скорее всего, в неё играли ваши друзья и знакомые. Или вы видели её у людей в общественном транспорте. Помните такие цветастые плитки с числами, заполонившие несколько лет назад экраны смартфонов? Это и есть 2048. Игра получила своё имя не просто так. 2048 — это 2 в 11 степени. И в этой игре всё построено на степенях двойки. Краткие правила таковы: у вас есть поле 4х4, разбитое на квадратные плитки. В каждом раунде появляется плитка с номиналом «2» (с вероятностью 90%) или «4» (с вероятностью 10%). Все плитки можно перемещать в одну из четырёх сторон, при этом если две плитки одного номинала «налетают» друг на друга, они слипаются и их номинал удваивается. Цель — получить плитку номиналом 2048. Игрок проигрывает, если после очередного хода невозможно совершить действие. Что же в ней такого особенного? В первую очередь, в неё очень удобно играть в браузере или на смартфоне. Давайте создадим собственный вариант игры прямо на JavaRush. Кто знает, может, после этого вы тоже случайно придумаете и разработаете собственную головоломку, которая станет не менее успешной? Вперёд!
Комментарии (82)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
dinamadani6
Уровень 1, Kazakhstan
12 августа, 11:05
я написать код не могу
fs fasadasa
Уровень 1, Витебск
8 августа, 07:24
класс рослобляет
BorysV
Уровень 35
30 мая, 11:17
Подскажите пожалуйста, для выбора цвета использовал конструкцию if'ов, так и не приняло задание, пока не изменил на switch'и, она же делает то же или я что-то упускаю?
if (value == 0) {
            return Color.WHITE;
        } else if (value == 2) {
            return Color.LIGHTGREEN;
        } else if (value == 4) {
            return Color.GREEN;
        } else if (value == 8) {
            return Color.DARKGREEN;
        } else if (value == 16) {
            return Color.YELLOWGREEN;
        } else if (value == 32) {
            return Color.LIGHTGREEN;
        } else if (value == 64) {
            return Color.GREEN;
        } else if (value == 128) {
            return Color.DARKGREEN;
        } else if (value == 256) {
            return Color.ORANGE;
        } else if (value == 512) {
            return Color.DARKORANGE;
        } else if (value == 1024) {
            return Color.ORANGERED;
        } else if (value == 2048) {
            return Color.RED;
        } else {
            return Color.NONE;
        }
Hardy
Уровень 25, Белгородская обл., Россия
1 июня, 07:09
Делал сразу через SWITCH . Валидатор принял .
Nick
Уровень 20
25 июня, 17:31
Вот такая фигня прошла, так что думаю совершенно пофиг как делать.
Color[] colors = {Color.ORANGE, Color.OLIVE, Color.HONEYDEW,
    Color.HOTPINK, Color.INDIANRED, Color.KHAKI,
    Color.LAVENDER, Color.LAVENDERBLUSH, Color.LEMONCHIFFON,
    Color.LIGHTCORAL, Color.LIGHTGREEN, Color.ORCHID};
value = value == 0 ? 0 : (int)(Math.log(value) / Math.log(2));
return colors[value];
Правда почему то не пропускает Color colors = new Color(int); вот это странно.
Flexo Bending Unit #3370318
1 июля, 18:39
Потому что это класс движка, и у его конструктора приватный доступ. Собственно, это же enum, почему у него не должно быть приватного конструктора
HORIZONTAL STUDIO
Уровень 0
22 мая, 12:45
как начать писать код?
Вячеслав
Уровень 41, Ивано Франковск, Украина
29 мая, 14:56
Тебе надо создать класс в котором будешь писать... К тому же в задание пишет как и что делать
Вера
Уровень 20, Москва
22 мая, 05:38
Кто стартует, список цветов и их представление реккомендую смотреть здесь: цвета
Anonymous #2561788
Уровень 1
23 марта, 07:24
😀😬😋😙😐😛😐🤡😒🤓🤠😚☺️😎😛😙😜😇🤑😅😅😪😱🤕💤🥴👿👿👹💀💀👻👻💩💩🤙👍👊🤙😺🤖😾
Ирина
Уровень 18, Москва, Россия
22 марта, 16:49
не получается опубликовать игру. ловлю ошибку пишет ошибку APP_PUBLISH_ERROR: Task wasn't published. Publish result is unknown. кто сталкивался с таким? читала ниже, что нужно обратить внимание на импорты. у меня всего их два. не сказала бы, что левые какие-то: import com.javarush.engine.cell.*; import java.util.Arrays;
Ирина
Уровень 18, Москва, Россия
22 марта, 16:54
переделала mergeRow() и убрала последний импорт. взлетело. странная фича. ну да ладно)
Flexo Bending Unit #3370318
28 апреля, 22:50
публикация игр чувствительна к импортам, есть такое
К М
Уровень 32, Новосибирск, Россия
17 марта, 12:35
В методе initialize() должен быть вызван методе createGame(). Поправьте пожалуйста
Олександр
Уровень 0
4 марта, 09:20
public class Game 2048{ import com.javarush.engine.cell.*;
Олександр
Уровень 0
4 марта, 09:20
как блин етот импорт прописать и в чём тут ошибка