#ifndef SNAKE_HPP #define SNAKE_HPP #include #include "point.hpp" struct Head { Head(); Head(int default_direction, int row, int col); Point m_head; Point m_previous_head; void get_new_point(int direction); void get_previous_point(); }; struct Tail { Tail(int follow_direction, int row, int col); Point m_tail_pos; Point m_previous_tail_pos; std::vector m_move_history; void get_previous_point(); }; struct Body { std::vector m_body; void clear(std::array, ROW> &arr); void draw(std::array, ROW> &arr); void move(Head &head); void get_new_points(Head &head); void collision(Head &head, bool &running); }; #endif