2048
Рекомендованный уровеньУровень
5+
Жил некогда молодой итальянец по имени Габриэле Чирулли. Он изучал программирование и однажды, делая упражнение по кодингу, совершенно случайно совершил прорыв в игровой индустрии. Как ему это удалось? Вышло так, что в качестве упражнения он решил написать игру, чем-то похожую на уже существующую головоломку Trees. На реализацию игры, которую он назвал 2048, у Габриэле ушло два дня. Игра была бесплатной и имела ошеломительный успех! Даже если вы сами не играли в 2048, то, скорее всего, в неё играли ваши друзья и знакомые. Или вы видели её у людей в общественном транспорте. Помните такие цветастые плитки с числами, заполонившие несколько лет назад экраны смартфонов? Это и есть 2048. Игра получила своё имя не просто так. 2048 — это 2 в 11 степени. И в этой игре всё построено на степенях двойки. Краткие правила таковы: у вас есть поле 4х4, разбитое на квадратные плитки. В каждом раунде появляется плитка с номиналом «2» (с вероятностью 90%) или «4» (с вероятностью 10%). Все плитки можно перемещать в одну из четырёх сторон, при этом если две плитки одного номинала «налетают» друг на друга, они слипаются и их номинал удваивается. Цель — получить плитку номиналом 2048. Игрок проигрывает, если после очередного хода невозможно совершить действие. Что же в ней такого особенного? В первую очередь, в неё очень удобно играть в браузере или на смартфоне. Давайте создадим собственный вариант игры прямо на JavaRush. Кто знает, может, после этого вы тоже случайно придумаете и разработаете собственную головоломку, которая станет не менее успешной? Вперёд!
Комментарии (12)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Damian0 уровень
вторник, 08:35
я когда-то набрал 4096
Pavlo Plynko40 уровень, Киев
6 декабря, 11:12
kozlotron23 уровень, Москва
8 декабря, 09:35
Блин, опередили ) Подобная идея была, теперь придется что-то другое выдумывать.
Роман Сушков8 уровень
4 декабря, 04:17
Уже можно пользовать или еще допиливается? У меня пример не здесь не в идее не идет, хотя уже есть опубликованные игры. Кстати в разделе помощь "Quest" Games отсутствует.
Антон Кашников40 уровень, Киев
5 декабря, 16:28
уже всё готово.
Slavik20 уровень, Санкт-Петербург
3 декабря, 20:34
валидатор ругается 4 часть задачи по 2, 3 пунктам: 2. Метод createNewNumber() должен два раза вызывать getRandomNumber(SIDE) и один раз getRandomNumber(10). 3. В методе createNewNumber() должно быть присвоено новое значение 2 или 4 (с вероятностью 90% и 10% соответственно) для случайной свободной ячейки матрицы gameField. Жажду помощи, возможно я чего-то не понимаю?
private void createNewNumber() {
        int x, y;
        do {
            x = getRandomNumber(SIDE);
            y = getRandomNumber(SIDE);
        } while (gameField[y][x] != 0);

        if (getRandomNumber(10) == 9) {
            setCellNumber(x, y, 4);
            gameField[y][x] = 4;
        }
        else {
            setCellNumber(x, y, 2);
            gameField[y][x] = 2;
        }
    }
Pavlo Plynko40 уровень, Киев
4 декабря, 03:30
setCellNumber() пока не вызывай, отрисовка будет в отдельном методе. Вопросы лучше задаватьв разделе "Помощь".
Роман Сушков8 уровень
4 декабря, 10:58
В разделе помощь нет Игр
Pavlo Plynko40 уровень, Киев
4 декабря, 11:29
Жми помощь в WebIDE или плагине, а потом кнопка "Задать вопрос", и все подтянется.
Rusty Raccoon24 уровень, Минск
6 декабря, 10:08
Можно проще
private void createNewNumber(){
    int nCX = getRandomNumber(SIDE);
    int nCY = getRandomNumber(SIDE);
    int cNN = getRandomNumber(10);
    if (cNN == 9)
        gameField[nCX][nCY] = 4;
    else gameField[nCX][nCY] = 2;
}