diff --git a/main.cpp b/main.cpp index ca3fd38..2f9d140 100644 --- a/main.cpp +++ b/main.cpp @@ -17,6 +17,9 @@ using namespace std; +//Mappa del gioco +unsigned char map[X_MAX][Y_MAX]; + //Classe dei nemici class Enemy { @@ -25,11 +28,12 @@ class Enemy int y; void move() { - //Qui dopo devo metterci il movimento... + //Se non hai il giocatore accanto, muoviti in una direzione casuale. } }; -void move(unsigned char map[X_MAX][Y_MAX], int player[2]) +//Fai muovere il giocatore +void move(int player[2]) { int player_x = player[0]; int player_y = player[1]; @@ -84,7 +88,7 @@ void move(unsigned char map[X_MAX][Y_MAX], int player[2]) player[1] = player_y; } //Aggiorna la console con la situazione corrente del gioco. -void draw(unsigned char map[X_MAX][Y_MAX]) +void draw() { //Svuota lo schermo della console. Sono sicuro che ci sia un modo molto migliore per farlo, ma non mi viene in mente... system("cls"); @@ -99,7 +103,7 @@ void draw(unsigned char map[X_MAX][Y_MAX]) //Funzioni per la generazione della mappa //Inizializza la mappa con spazi vuoti -void init(unsigned char map[X_MAX][Y_MAX]) +void init() { for(int y=0; y 0) { int link_x = rand() % size_x + 1 + start_x; int link_y = rand() % size_y + 1 + start_y; - corridor(map, link_x, link_y, corridor_x, corridor_y, rand() % 2); + corridor(link_x, link_y, corridor_x, corridor_y, rand() % 2); } corridor_x = rand() % size_x + start_x; corridor_y = rand() % size_y + start_y; @@ -237,20 +241,29 @@ void generate(unsigned char map[X_MAX][Y_MAX], int player[2], Enemy* list[ENEMIE } } +//Processa il resto di un turno, dopo il movimento del giocatore. +void tick(Enemy* list[ENEMIES_IN_LEVEL]) +{ + for(int e=0; emove(); + } +} + int main() { - unsigned char map[X_MAX][Y_MAX]; //Mappa del gioco, da usare SOLO per la rappresentazione grafica e per il movimento, non anche per la logica... int player[2]; Enemy* list[ENEMIES_IN_LEVEL]; srand(0); //TODO: Rendere il seed modificabile...? - init(map); - generate(map, player, list); - draw(map); + init(); + generate(player, list); + draw(); //Ciclo principale del gioco while(true) { - move(map, player); - draw(map); + move(player); + tick(list); + draw(); } return 0; }