all directions :frog_party:
This commit is contained in:
parent
5f50f58ce9
commit
38e0fce5ec
80
2048.c
80
2048.c
|
@ -55,14 +55,29 @@ uint8_t game_move(Game *game, Direction direction) {
|
|||
|
||||
// make it so it can work with different directions
|
||||
int directionality = b; // TODO: rename ugly name
|
||||
if (direction == Down) {
|
||||
directionality = a;
|
||||
}
|
||||
int movement = 1;
|
||||
if (direction == Left || direction == Up) {
|
||||
directionality = game->field_size_x - b - 1;
|
||||
if(direction == Left) {
|
||||
directionality = game->field_size_x - b - 1;
|
||||
} else {
|
||||
directionality = game->field_size_y - a - 1;
|
||||
}
|
||||
movement = -1;
|
||||
}
|
||||
if(field[a][directionality + movement] == 0) {
|
||||
field[a][directionality+movement] = field[a][directionality];
|
||||
field[a][directionality] = 0;
|
||||
|
||||
if(direction == Left || direction == Right) {
|
||||
if(field[a][directionality + movement] == 0) {
|
||||
field[a][directionality+movement] = field[a][directionality];
|
||||
field[a][directionality] = 0;
|
||||
}
|
||||
} else {
|
||||
if(field[directionality + movement][b] == 0) {
|
||||
field[directionality + movement][b] = field[directionality][b];
|
||||
field[directionality][b] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -74,16 +89,33 @@ uint8_t game_move(Game *game, Direction direction) {
|
|||
a = j;
|
||||
b = i;
|
||||
}
|
||||
int directionality = b;
|
||||
int directionality = b; // TODO: rename ugly name
|
||||
if (direction == Down) {
|
||||
directionality = a;
|
||||
|
||||
}
|
||||
int movement = 1;
|
||||
if (direction == Left) {
|
||||
directionality = game->field_size_x - b - 1;
|
||||
if (direction == Left || direction == Up) {
|
||||
if(direction == Left) {
|
||||
directionality = game->field_size_x - b - 1;
|
||||
} else {
|
||||
directionality = game->field_size_y - a - 1;
|
||||
}
|
||||
movement = -1;
|
||||
}
|
||||
if(field[a][directionality + movement] == field[a][directionality]) {
|
||||
field[a][directionality+movement] = field[a][directionality]*2;
|
||||
field[a][directionality] = 0;
|
||||
j++;
|
||||
// TODO: fix 444 <- 48, should be 84
|
||||
if (direction == Left || direction == Right) {
|
||||
if(field[a][directionality + movement] == field[a][directionality]) {
|
||||
field[a][directionality+movement] = field[a][directionality]*2;
|
||||
field[a][directionality] = 0;
|
||||
j++;
|
||||
}
|
||||
} else {
|
||||
if(field[directionality + movement][b] == field[directionality][b]) {
|
||||
field[directionality + movement][b] = field[directionality][b]*2;
|
||||
field[directionality][b] = 0;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,15 +127,29 @@ uint8_t game_move(Game *game, Direction direction) {
|
|||
a = j;
|
||||
b = i;
|
||||
}
|
||||
int directionality = b;
|
||||
int directionality = b; // TODO: rename ugly name
|
||||
if (direction == Down) {
|
||||
directionality = a;
|
||||
}
|
||||
int movement = 1;
|
||||
if (direction == Left) {
|
||||
directionality = game->field_size_x - b - 1;
|
||||
if (direction == Left || direction == Up) {
|
||||
if(direction == Left) {
|
||||
directionality = game->field_size_x - b - 1;
|
||||
} else {
|
||||
directionality = game->field_size_y - a - 1;
|
||||
}
|
||||
movement = -1;
|
||||
}
|
||||
if(field[a][directionality + movement] == 0) {
|
||||
field[a][directionality+movement] = field[a][directionality];
|
||||
field[a][directionality] = 0;
|
||||
if(direction == Left || direction == Right) {
|
||||
if(field[a][directionality + movement] == 0) {
|
||||
field[a][directionality+movement] = field[a][directionality];
|
||||
field[a][directionality] = 0;
|
||||
}
|
||||
} else {
|
||||
if(field[directionality + movement][b] == 0) {
|
||||
field[directionality + movement][b] = field[directionality][b];
|
||||
field[directionality][b] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue