Initialize files from GitLab repository
This commit is contained in:
57
include/ship/Map.h
Normal file
57
include/ship/Map.h
Normal file
@@ -0,0 +1,57 @@
|
||||
|
||||
#ifndef MAP_H
|
||||
#define MAP_H
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Map
|
||||
{
|
||||
private:
|
||||
char SHIP = '-';
|
||||
char BED = 'B'; // marker for room locations
|
||||
char FIGHTER = 'o'; // marker for party position
|
||||
char EXIT = 'H'; // marker for ship exit
|
||||
|
||||
static const int num_rows_ = 12; // number of rows in map
|
||||
static const int num_cols_ = 12; // number of columns in map
|
||||
static const int max_npcs_ = 5; // max non-player characters
|
||||
static const int max_rooms_ = 5; // max number of rooms
|
||||
|
||||
int player_position_[2]; // player position (row,col)
|
||||
int ship_exit_[2];
|
||||
int ship_bed_[2]; // exit location of the ship
|
||||
int npc_positions_[max_npcs_][3]; // stores the (row,col) positions of NPCs present on map and if they have been found
|
||||
int room_positions_[max_rooms_][2]; // stores the (row,col) positions of rooms present on map
|
||||
char map_data_[num_rows_][num_cols_]; // stores the character that will be shown at a given (row,col)
|
||||
|
||||
int npc_count_; // stores number of misfortunes currently on map
|
||||
int room_count_; // stores number of sites currently on map
|
||||
public:
|
||||
Map();
|
||||
|
||||
void resetMap();
|
||||
|
||||
// getters
|
||||
int getPlayerRow();
|
||||
int getPlayerCol();
|
||||
int getShipExitRow();
|
||||
int getShipExitCol();
|
||||
int getNumRows();
|
||||
int getNumCols();
|
||||
bool isOnMap(int row, int col);
|
||||
bool isShipExit(int row, int col);
|
||||
bool isShipBed(int row, int col);
|
||||
|
||||
// setters
|
||||
void setPlayerPosition(int row, int col);
|
||||
void setShipExit(int row, int col);
|
||||
void setShipBed(int row, int col);
|
||||
|
||||
// other
|
||||
void displayMap();
|
||||
bool move(char);
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user