wtf obdélník v zadíní
This commit is contained in:
parent
2956f61c69
commit
57e15bbaf7
17
2048.c
17
2048.c
|
@ -6,20 +6,21 @@ void game_add_block(Game game) {
|
||||||
size_t x, y;
|
size_t x, y;
|
||||||
int value;
|
int value;
|
||||||
do {
|
do {
|
||||||
x = rand() % game.field_size;
|
x = rand() % game.field_size_x;
|
||||||
y = rand() % game.field_size;
|
y = rand() % game.field_size_y;
|
||||||
value = (rand() % 2) + 1;
|
value = (rand() % 2) + 1;
|
||||||
} while (game.field[x][y] != 0);
|
} while (game.field[x][y] != 0);
|
||||||
game.field[x][y] = value * 2;
|
game.field[x][y] = value * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
Game game_init(size_t field_size) {
|
Game game_init(size_t field_size_x, size_t field_size_y) {
|
||||||
Game game;
|
Game game;
|
||||||
game.field_size = field_size;
|
game.field_size_x = field_size_x;
|
||||||
|
game.field_size_y = field_size_y;
|
||||||
game.score = 0;
|
game.score = 0;
|
||||||
game.field = malloc(sizeof(uint16_t *) * field_size);
|
game.field = malloc(sizeof(uint16_t *) * field_size_y);
|
||||||
for (size_t i = 0; i < field_size; i++) {
|
for (size_t i = 0; i < field_size_y; i++) {
|
||||||
game.field[i] = calloc(field_size, sizeof(uint16_t) * field_size);
|
game.field[i] = calloc(field_size_x, sizeof(uint16_t) * field_size_x);
|
||||||
}
|
}
|
||||||
|
|
||||||
time_t t;
|
time_t t;
|
||||||
|
@ -30,7 +31,7 @@ Game game_init(size_t field_size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void game_destroy(Game game) {
|
void game_destroy(Game game) {
|
||||||
for (size_t i = 0; i < game.field_size; i++) {
|
for (size_t i = 0; i < game.field_size_y; i++) {
|
||||||
free(game.field[i]);
|
free(game.field[i]);
|
||||||
}
|
}
|
||||||
free(game.field);
|
free(game.field);
|
||||||
|
|
4
2048.h
4
2048.h
|
@ -15,11 +15,11 @@ typedef enum Direction {
|
||||||
typedef struct Game
|
typedef struct Game
|
||||||
{
|
{
|
||||||
uint32_t score;
|
uint32_t score;
|
||||||
size_t field_size;
|
size_t field_size_x, field_size_y;
|
||||||
uint16_t **field;
|
uint16_t **field;
|
||||||
} Game;
|
} Game;
|
||||||
|
|
||||||
Game game_init(size_t field_size);
|
Game game_init(size_t field_size_x, size_t field_size_y);
|
||||||
uint8_t game_move(Game *game, Direction direction);
|
uint8_t game_move(Game *game, Direction direction);
|
||||||
void game_destroy(Game game);
|
void game_destroy(Game game);
|
||||||
|
|
||||||
|
|
2
main.c
2
main.c
|
@ -5,7 +5,7 @@
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
Game game;
|
Game game;
|
||||||
game = game_init(4);
|
game = game_init(4, 4);
|
||||||
tui_init();
|
tui_init();
|
||||||
|
|
||||||
tui_loop(&game);
|
tui_loop(&game);
|
||||||
|
|
4
tui.c
4
tui.c
|
@ -20,8 +20,8 @@ void tui_loop(Game *game) {
|
||||||
while(true){
|
while(true){
|
||||||
// printing the game state is fun
|
// printing the game state is fun
|
||||||
clear();
|
clear();
|
||||||
for (size_t i = 0; i < game->field_size; i++) {
|
for (size_t i = 0; i < game->field_size_y; i++) {
|
||||||
for (size_t j = 0; j < game->field_size; j++) {
|
for (size_t j = 0; j < game->field_size_x; j++) {
|
||||||
mvprintw(i * space_between_cells_y, j * space_between_cells_x, "%d", game->field[i][j]);
|
mvprintw(i * space_between_cells_y, j * space_between_cells_x, "%d", game->field[i][j]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue