forked from giovifazi/knossos-bloodbath
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Node.hpp
55 lines (41 loc) · 1.36 KB
/
Node.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Definizione interfaccia
#ifndef NODE_HPP
#define NODE_HPP
#include "Map.hpp"
#include <cstddef>
#include <iostream>
class Node
{
protected:
// puntatori per collegarsi alle altre stanze
Node* nord;
Node* sud;
Node* est;
Node* ovest;
// Coordinate
int x;
int y;
public:
// Costruttore
Node(int xx, int yy);
// Ricerca ricorsiva di un nodo sulla mappa
Node* search_node(int x, int y, Node& current, Map& search_map);
// Accetta solamente i caratteri 'n' 's' 'e' 'o', ritorna il puntatore del
// nodo in base al carattere passato
Node* get_cardinal(char cardinal_dir);
// Ritornano semplicamente i valori y e x
int get_y();
int get_x();
// impostano i valori x e y
void set_x(int xx);
void set_y(int yy);
// Imposta il puntatore della direzione chiesta, verso il nodo passato, n
void set_cardinal(char cardinal_dir, Node& n);
// Metodo chiamato da add node per collegare nodi adiacenti al nodo current
void link_adjacent(char exclude, Node* current, Node& origin);
// Metodo per aggiungere nodi. In base al nodo start e la direzione crea un nuovo nodo
// usando la search e link_adjacent collega eventuali nodi vicini (come da specifica)
// inoltre chiama le funzioni grafiche della mappa per aggiornare la draw_map
void add_node(Node& start, char direction, Map& draw_map, Node& origin);
};
#endif