To write Android games, Java is too difficult to try the app Inventor, although some people think he is a middle school toy, but also can write 2048 such a hot game, do not need too complex algorithm.
The entire game has several modules:
First, game initialization
The sequence is transformed into a graph, using the canvas and the sprite, relative to the list, here Note that the elf position is fixed, just change the picture, how many points, for n.jpg,0 points is the background image. move around, using the flung judgment, absolute judgment, horizontal speed and vertical speed which is large, used to determine whether to move or move up or down.
Second, scoring module
The general score is increased at the merging point, with the highest score of tiny db, which is judged at the end of the game. The game starts with a 0-meter distinction.
Three, mobile module (CORE)
Mobile module is the movement of the 4*4 matrix, first simplifying the left and right movement, further simplifying the matrix of 4*1, here to use the list.
First judge 0000, do not move, true, false to judge.
Second, the right to move, by observing the law, 2000 changed to 0002,2480 to 0248,2040 into 0024, the 4th bit is 0, removed and placed to the 1th place. Cycle up to 3 times. If the 4th bit is not 0, the 3rd bit is 0, the maximum loop is 2 times, and the 2nd digit is 0, 1 times. The same can be resolved to move to the left. then extend to 4*4. With a foreach loop.
Fixed move left and right, start to resolve move up and down. The left-right movement is essentially the rotation of the matrix. such as 1234
1234 1234 1234 Into 4444 3333 2222 1111 Therefore, the new list can be obtained by the conversion of rows and columns, moving up and down into the left and right movement. Note that each direction move affects both the column array and the row array, so you convert to each other. |
Iv. merge Modules
Merge module Note the following rules, merging only once at a time, such as 2222, merging right to 0044, not merging to 8. 0222 merge right to 0024. Merging is primarily to determine whether the list of 12,23,34 bits is the same.
such as 34-bit the same right merge, 4-bit double, 3-bit removed, and then 1-bit plus 0. This needs to be associated with the integration module, plus the combined score.
V. Randomly add 2 or 4 modules
The selection of 2 and 4 can be set by probability, relatively simple
The selection of the insertion position is actually randomly selected at all 0 locations, where the zerolist is set to save all 0 positions, save according to the 1-16 number set, and the module to LIST0. If 5th indicates the 2nd row 1th column 0, uses the quotient and the remainder judgment, the module is Add.
Six, the game end judgment
There is no game set to win, that is, up to 2048 games are still going on, and the game ends with 3 conditions.
1 is no space, that is, zerolist is empty
2 Horizontal cannot be merged
3 cannot be merged vertically
pop-up selection box when both are true.
modules for Nomerge and Gameover
AIA file and apk download http://bbs.appinventor.com.cn/thread-3604-1-1.html