2048

level
5+
Once upon a time there lived a young Italian named Gabriele Cirulli. He was a student of programming. One day, while doing a coding exercise, he made a breakthrough in the gaming industry entirely by accident. How did he manage to do that? To complete the exercise, he chose to write a game with something similar to an existing puzzle game called "Threes". Gabriele, who named the game "2048", spent two days on its implementation. The game was free and staggeringly successful! Even if you haven't played 2048 yourself, your friends and acquaintances most likely have. Or you've seen people playing it on public transport. Remember those colorful numbered tiles that filled smartphone screens several years back? That's 2048! The game's name isn't random. 2048 is 2 raised to the 11th power. In the game, everything is based on powers of two. The rules are short and sweet: you have a 4x4 board divided into square tiles. A tile with a value of 2 (probability of 90%) or 4 (probability of 10%) appears in each round. All the tiles can be moved to one of the four sides. If two tiles with the same value "collide", they merge and the tile value doubles. The objective is to get a tile whose value is 2048. The player loses if another move is no longer possible. What's so special about the game? First of all, it's very easy to play in a browser or on a smartphone. Let's create our own version of the game right on CodeGym. Who knows? Maybe after doing this you will also accidentally invent your own wildly successful puzzle game? Carry on!
TaoLu
Level 20, 泾县, China
13 March, 15:24
I'm still unable to publish it...
TaoLu
Level 20, 泾县, China
13 March, 15:45
publish result is unknow!
Alex
Level 41, Solar System
14 March, 13:22
Please submit a question in the Help section and include your code. You can then send the link to your question to Support via support@codegym.cc
TaoLu
Level 20, 泾县, China
14 March, 15:00
Thank you i just comment this code on line 4 and it work
``//import javafx.application.*;``
Noah Brandin
Level 9, Bielefeld
28 January, 09:40
Ich bin Level 6 und weis immer noch nicht wo ich anfangen soll. In welchen Level lernt man sowas?
John Squirrels
Level 41, Richmond
28 January, 12:17
Normalerwiese startet man Java von Anfang (Level 0) an zu lernen. Welche genaue Frage haben Sie?
Dyrits
Level 22, Die, France
15 November 2020, 08:21
I'm still unable to publish it...
Alex
Level 41, Solar System
15 November 2020, 13:05
Please submit a question in the Help section, so everyone can see your code, then send the link to your question to support@codegym.cc
Ilia Kalugin
Level 25, Novara, Italy
11 November 2020, 14:05
It looks like there is some kind of error in the verification. My code has passed all the stages of verification, but from a certain stage when I press Play - it gives an error "An error occurred: APP_PUBLISH_ERROR"
Alex
Level 41, Solar System
15 November 2020, 13:12
Are you trying to run it on the website or in IntelliJ IDEA? Please submit a question in the Help section and include your code, then send the link to your question to support@codegym.cc
davin
Level 1, Panama City, United States
3 November 2020, 20:13
are you guys the only guys here?
Rich
Level 17, San Diego, United States
27 November 2020, 09:18
there aren't many people taking advantage of this feature of the course...
Agent Smith
Level 38
22 September 2020, 20:08
Nice and fun way to practice multidimensional arrays. 👨‍💻
Max
Level 16, Hamburg, Germany
13 September 2020, 14:34
I'm having problems with part 15 of this. I have implemented the gameOver() method and call it as described in the conditions, but the condition "The onKeyPress(Key) method must call the gameOver() method and do nothing else, if the canUserMove() method returns false" fails with the recommendation "Be sure that the onKeyPress(Key) method ends immediately after the call to the gameOver() method". The relevant code in the onKeyPress(Key) method:
``````if (getMaxTileValue() == 2048) {
win();
}
else if (!canUserMove()) {
gameOver();
return;
}``````
after the
``else if (!canUserMove())``
, I am calling one of the methods that moves the gameField, as described in an earlier lesson. Can someone help me solve it?
LeOof Designs
Level 1, Seattle, United States
undefined, 21:53
Here's what the override of the onKeyPress method should look like:
``````@Override
public void onKeyPress(Key key) {
if (isGameStopped) {
if (key == Key.SPACE) {
isGameStopped = false;
createGame();
drawScene();
score = 0;
} else {
return;
}
}

if (!canUserMove()) {
gameOver();
return;
}

if (key == Key.UP) {
moveUp();
} else if (key == Key.RIGHT) {
moveRight();
} else if (key == Key.DOWN) {
moveDown();
} else if (key == Key.LEFT) {
moveLeft();
} else {
return;
}
drawScene();
}``````
Hope this helps!
Dyrits
Level 22, Die, France
31 July 2020, 09:23
Why can't I publish it ?
Alex
Level 41, Solar System
3 August 2020, 13:35
Can you run the game without any issues? Do you get any errors when trying to publish the game? Please submit a question, with your code included, in the Help section.
Dyrits
Level 22, Die, France
4 August 2020, 08:29
I can run the game, but can't publish it. APP_PUBLISH_ERROR: Task wasn't published. Publish result is unknown. I've already created a post in the help section.
Alex
Level 41, Solar System
4 August 2020, 12:35
There's no code or any information in your question (Help section) which might help us figure out why this happens. Are you able to add your entire code to your question in the Help section? Or have you already fully verified all parts of the game and cannot attach it?
Dyrits
Level 22, Die, France
5 August 2020, 10:14
I've already verified every part of the game. But I will update my post with the code.
Rithik Bhat
Level 13, Hartford, United States
23 June 2020, 23:42
Hi, for the last task when I try to run and publish my code it gives an error saying app_publish_error. I don't know why it is doing this. Can someone please help? Thank you.
Rich
Level 17, San Diego, United States
16 October 2020, 02:41
yeah I'm working on learning AWT and Swing so I can make my games stand alone. it's a bumpy road :-\
davin
Level 1, Panama City, United States
24 April 2020, 15:57
hi