s21_tetris/src/gui/cli/display.c
Rorikstr | Rust Dev 5ed3450d6f removed unnecessary
2025-09-29 23:19:46 +03:00

41 lines
No EOL
1.3 KiB
C

// src/gui/cli/display.c
#include <ncurses.h>
#include "../../brick_game/tetris/00_tetris.h"
void display_game(GameInfo_t game_state) {
clear();
for (int i = 0; i < FIELD_HEIGHT; ++i) {
for (int j = 0; j < FIELD_WIDTH; ++j) {
if (game_state.field[i][j] == 2) {
mvaddch(i + 1, j * 2 + 1, '#');
} else if (game_state.field[i][j] == 1) {
mvaddch(i + 1, j * 2 + 1, '$');
} else {
mvaddch(i + 1, j * 2 + 1, '.');
}
}
}
mvaddstr(1, FIELD_WIDTH * 2 + 5, "Next figure:");
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < 4; ++j) {
if (game_state.next[i][j]) {
mvaddch(i + 3, (FIELD_WIDTH * 2 + 5) + j * 2, '@');
} else {
mvaddch(i + 3, (FIELD_WIDTH * 2 + 5) + j * 2, ' ');
}
}
}
mvprintw(FIELD_HEIGHT + 2, 1, "Score: %d", game_state.score);
mvprintw(FIELD_HEIGHT + 3, 1, "High Score: %d", game_state.high_score);
mvprintw(FIELD_HEIGHT + 4, 1, "Level: %d", game_state.level);
mvprintw(FIELD_HEIGHT + 5, 1, "Speed: %d", game_state.speed);
if (game_state.pause) {
mvprintw(FIELD_HEIGHT / 2, FIELD_WIDTH * 2 + 1, "PAUSED");
}
refresh();
}