Files
snake/include/element.hpp
T

52 lines
954 B
C++

#ifndef ELEMENT_HPP
#define ELEMENT_HPP
#include <vector>
#include "globals.hpp"
struct Point;
struct Head;
struct Tail;
struct Body;
struct Fruit;
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() : m_head(5, 5, 2) {};
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() : m_score(0), m_collision(false) {};
std::vector<Tail> 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(char (&board)[ROW][COL]);
Point m_point;
void get_new_pos(char (&board)[ROW][COL], Head &head, int &score);
};
#endif // ELEMENT_HPP