2048

Рекомендованный уровеньУровень
5+
Жил некогда молодой итальянец по имени Габриэле Чирулли. Он изучал программирование и однажды, делая упражнение по кодингу, совершенно случайно совершил прорыв в игровой индустрии. Как ему это удалось? Вышло так, что в качестве упражнения он решил написать игру, чем-то похожую на уже существующую головоломку Trees. На реализацию игры, которую он назвал 2048, у Габриэле ушло два дня. Игра была бесплатной и имела ошеломительный успех! Даже если вы сами не играли в 2048, то, скорее всего, в неё играли ваши друзья и знакомые. Или вы видели её у людей в общественном транспорте. Помните такие цветастые плитки с числами, заполонившие несколько лет назад экраны смартфонов? Это и есть 2048. Игра получила своё имя не просто так. 2048 — это 2 в 11 степени. И в этой игре всё построено на степенях двойки. Краткие правила таковы: у вас есть поле 4х4, разбитое на квадратные плитки. В каждом раунде появляется плитка с номиналом «2» (с вероятностью 90%) или «4» (с вероятностью 10%). Все плитки можно перемещать в одну из четырёх сторон, при этом если две плитки одного номинала «налетают» друг на друга, они слипаются и их номинал удваивается. Цель — получить плитку номиналом 2048. Игрок проигрывает, если после очередного хода невозможно совершить действие. Что же в ней такого особенного? В первую очередь, в неё очень удобно играть в браузере или на смартфоне. Давайте создадим собственный вариант игры прямо на JavaRush. Кто знает, может, после этого вы тоже случайно придумаете и разработаете собственную головоломку, которая станет не менее успешной? Вперёд!
Комментарии (37)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Александра6 уровень, Санкт-Петербург
15 часов назад
Ребят, подскажите, плиз, почему он не видит engine?
Дарина1 уровень, Киев
26 марта, 15:12
@darinaplenus public void initialize () { }
Кирилл Крыжановский29 уровень, Санкт-Петербург
10 марта, 00:34
Ребят, а как запустить игру без
public static void main(String[] args);
?...
Матвей13 уровень, Санкт-Петербург
14 марта, 10:50
Ты должен переопределить метод initialize() , вот так
@Override
    public void initialize() {
    }
Azamat Mirrahimov28 уровень, Ташкент
3 марта, 15:03
Исправлю все не как руки не доходили до делать ее
Maxim Bogdanov25 уровень, омск
15 февраля, 13:11
а-я-я-й хардкодите, господа тестировщики... изменил значение SIDE что б побаловаться, а потом забыл убрать и тест не прошел... где getMaxTileValue() проверяется... (выход за пределы массива получился)
Artem Okunkov18 уровень, Москва
27 января, 15:01
Как-то не аккуратненько:-) В методе initialize() должен быть вызван методе createGame().
26 января, 14:15
как написать 2048
Dabangg2 уровень
10 ноября 2019, 15:34
На первом этапе сздал класс 2048
package com.javarush.games.game2048;
import com.javarush.engine.cell.*;
public class Game2048 extends Game{
}
При запуске получаю всплывающее окно с надписью: Чтобы разделить экран на клеточки воспользуйтесь методом setScreenSize(columnCount, rowCount)
Гудини23 уровень, Санкт-Петербург
31 октября 2019, 16:08
Проверь, что значения плиток на игровом поле соответствуют значениям в матрице. А как проверить. вывода никакого нет, только картинка в виде квадрата.
Elizabeth Malfoy20 уровень
2 ноября 2019, 13:31
В начале при создании массива прописываешь
private int[][] gameField = {{  2,    4,    8,  16},{ 32,   64,  128, 256},{512, 1024, 2048,   0},{  2,    4,    8,  16}};
Потом в методе initialize() убираешь вызов метода createGame
@Override
public void initialize(){
    setScreenSize(SIDE, SIDE);
    //createGame();
    drawScene();
}
IvanMakish10 уровень, Москва
22 октября 2019, 20:26
com/javarush/games/game2048/part04/Game2048.java:14: error: '.class' expected setCellColor(int,int,Color); Помогите, что от меня требуется