Files
snake/src/window.cpp
T

34 lines
967 B
C++

#include "window.hpp"
#include "element.hpp"
#include <iostream>
#include <chrono>
#include <ranges>
#include <thread>
void Window::clear_display() {
for(int i : std::ranges::views::iota(0, ROW)) {
for(int j : std::ranges::views::iota(0, COL)) {
board[i][j].id = '.';
}
}
}
void Window::draw_display(int milliseconds) {
std::cout << "\033[H" << std::flush; // Clear screen
for(int i : std::ranges::views::iota(0, ROW)) {
for(int j : std::ranges::views::iota(0, COL)) {
if(board[i][j].id != '.') { std::cout << board[i][j].id << " "; }
else { std::cout << ". "; }
}
std::cout << "\r\n";
}
std::this_thread::sleep_for(std::chrono::milliseconds((int) (milliseconds))); // 1000 / fps; 200ms = 5fps
}
void Window::update_display(Vector2i** buf) {
for(int i : std::ranges::views::iota(0, ROW * COL)) {
if(buf[i] == nullptr || i == 1 || buf[i]->y > ROW - 1 || buf[i]->x > COL - 1) continue;
board[buf[i]->y][buf[i]->x].id = buf[i]->id;
}
}