#ifndef ELEMENT_HPP #define ELEMENT_HPP #include #include "globals.hpp" struct Point { int m_row; int m_col; int m_direction; Point() {} Point(int x, int y) : m_row(x), m_col(y) {} Point(int x, int y, int dir) : m_row(x), m_col(y), m_direction(dir) {} void set_new_point(int row, int col, int dir); }; struct Head { Head(); Point m_head; Point m_previous_head; void get_new_pos(); }; struct Tail { Point m_tail_pos; Point m_previous_tail_pos; }; struct Body { Body(); std::vector m_body; int m_score; bool m_collision; void check_new_tail(); void check_collision(Head &head); void get_new_pos(Head &head); }; struct Fruit { Fruit(); Point m_point; void get_new_pos(char (&board)[ROW][COL], Head &head, int &score); }; #endif // ELEMENT_HPP