Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Room.h"
- Room::Room()
- {
- gm = new GraphicsManager(room, robot);
- this->room = room;
- this->robot = robot;
- //Sets size of the squares to 25 by 25
- white.setSize(sf::Vector2f(25.f, 25.f));
- black.setSize(sf::Vector2f(25.f, 25.f));
- blue.setSize(sf::Vector2f(25.f, 25.f));
- yellow.setSize(sf::Vector2f(25.f, 25.f));
- green.setSize(sf::Vector2f(25.f, 25.f));
- //Assigns colours incase of error with texture loading
- white.setFillColor(sf::Color::White);
- black.setFillColor(sf::Color::Black);
- blue.setFillColor(sf::Color::Blue);
- yellow.setFillColor(sf::Color::Yellow);
- green.setFillColor(sf::Color::Green);
- //Assigns Textures Commented out for Now
- white.setTexture(&(gm->imageFloorCell[0]));
- black.setTexture(&(gm->imageFloorCell[1]));
- blue.setTexture(&(gm->imageFloorCell[2]));
- yellow.setTexture(&(gm->imageFloorCell[3]));
- green.setTexture(&(gm->imageFloorCell[4]));
- }
- Room::~Room()
- {
- }
- void Room::setBlank(int x, int y)
- {
- grid[x][y] = WHITE;
- }
- void Room::setWall(int x, int y)
- {
- grid[x][y] = BLACK;
- }
- void Room::setObstacle(int x, int y)
- {
- grid[x][y] = BLUE;
- }
- void Room::setPath(int x, int y)
- {
- grid[x][y] = YELLOW;
- }
- void Room::setTarget(int x,int y)
- {
- grid[x][y] = GREEN;
- }
- void Room::setSquare(int x, int y, sf::String color)
- {
- if (color == "white") { grid[x][y] = WHITE; }
- else if (color == "black") { grid[x][y] = BLACK; }
- else if (color == "blue") { grid[x][y] = BLUE; }
- else if (color == "yellow") { grid[x][y] = YELLOW; }
- else if (color == "green") { grid[x][y] = GREEN; }
- }
- void Room::setSquare(int x, int y, int color)
- {
- switch (color) {
- case 0: grid[x][y] = WHITE;
- break;
- case 1: grid[x][y] = BLACK;
- break;
- case 2: grid[x][y] = BLUE;
- break;
- case 3: grid[x][y] = YELLOW;
- break;
- case 4: grid[x][y] = GREEN;
- break;
- default: break;
- }
- }
- //std::string Room::toString()
- //{
- // StringBuffer state = new StringBuffer(1024);
- // for (int x = 0; x < size; x++) {
- // for (int y = 0; y < size; y++) {
- // state.append(grid[x][y]).append(' ');
- // }
- // state.append("\n");
- // }
- // return state.toString();
- //}
- int Room::room_size()
- {
- return size;
- }
- int Room::getGrid(int grid)
- {
- return grid;
- }
- void Room::setGrid(int grid[20][20])
- {
- //assign individual elements
- for (int i = 0; i < 20; i++) {
- for (int j = 0; j < 20; j++) {
- this->grid[i][j] = grid[i][j];
- }
- }
- size = sizeof(grid) / sizeof(int);
- }
- int Room::cell_state(int x, int y)
- {
- if (x < 0 || x > room_size() || y < 0 || y > room_size()) {
- return -1;
- }
- return grid[x][y];
- }
- bool Room::isObstacle(int x, int y)
- {
- if (grid[x][y] == BLUE || grid[x][y] == BLACK) {
- return true;
- }
- return false;
- }
- void Room::init(int identifier)
- {
- for (int x = 0; x < size; x++) {
- for (int y = 0; y < size; y++) {
- if (x == 0 || (x == size - 1) || y == 0 || (y == size - 1))
- grid[x][y] = BLACK;
- else
- grid[x][y] = WHITE;
- }
- }
- switch (identifier) {
- case 1:
- grid[3][3] = 2;
- grid[4][3] = 2;
- grid[5][3] = 2;
- grid[6][3] = 2;
- grid[3][4] = 2;
- grid[5][4] = 4;
- break;
- case 2:
- grid[1][7] = 2;
- grid[2][7] = 2;
- grid[3][7] = 2;
- grid[4][7] = 2;
- grid[4][8] = 2;
- grid[4][9] = 2;
- grid[4][10] = 2;
- grid[9][5] = 2;
- grid[9][6] = 2;
- grid[9][7] = 2;
- grid[9][8] = 2;
- grid[10][8] = 2;
- grid[11][8] = 2;
- grid[12][8] = 2;
- grid[13][8] = 2;
- grid[14][8] = 2;
- grid[10][13] = 2;
- grid[10][12] = 2;
- grid[11][12] = 2;
- grid[12][12] = 2;
- grid[11][13] = 4;
- break;
- case 3:
- grid[1][2] = 2;
- break;
- case 4:
- grid[1][2] = 3;
- grid[1][3] = 3;
- grid[1][4] = 3;
- grid[1][5] = 3;
- grid[1][6] = 3;
- grid[1][7] = 3;
- grid[1][8] = 3;
- grid[2][8] = 3;
- grid[3][8] = 3;
- grid[4][8] = 3;
- grid[5][8] = 3;
- grid[6][8] = 3;
- grid[7][8] = 3;
- grid[8][8] = 3;
- grid[8][7] = 3;
- grid[8][6] = 3;
- grid[8][5] = 3;
- grid[8][4] = 3;
- grid[8][3] = 3;
- grid[8][2] = 3;
- grid[7][2] = 3;
- grid[6][2] = 3;
- grid[5][2] = 3;
- grid[4][2] = 3;
- grid[3][2] = 3;
- grid[3][3] = 3;
- grid[3][4] = 3;
- grid[3][5] = 3;
- grid[4][5] = 3;
- grid[5][5] = 4;
- break;
- case 5:
- grid[1][2] = 3;
- grid[1][3] = 3;
- grid[1][4] = 3;
- grid[2][4] = 3;
- grid[3][4] = 3;
- grid[4][4] = 3;
- grid[5][4] = 3;
- grid[6][4] = 3;
- grid[7][4] = 3;
- grid[8][4] = 3;
- grid[8][5] = 3;
- grid[8][6] = 3;
- grid[8][7] = 3;
- grid[7][7] = 3;
- grid[6][7] = 3;
- grid[6][8] = 3;
- grid[6][9] = 3;
- grid[6][10] = 3;
- grid[6][11] = 3;
- grid[5][11] = 3;
- grid[4][11] = 3;
- grid[4][10] = 3;
- grid[4][9] = 3;
- grid[4][8] = 3;
- grid[3][8] = 3;
- grid[2][8] = 3;
- grid[1][8] = 3;
- grid[1][9] = 3;
- grid[1][10] = 3;
- grid[1][11] = 3;
- grid[1][12] = 3;
- grid[1][13] = 3;
- grid[1][14] = 3;
- grid[1][15] = 3;
- grid[2][15] = 3;
- grid[3][15] = 3;
- grid[4][15] = 3;
- grid[5][15] = 3;
- grid[5][16] = 3;
- grid[5][17] = 3;
- grid[5][18] = 4;
- break;
- case 6:
- grid[1][2] = 3;
- grid[1][3] = 3;
- grid[1][4] = 3;
- grid[2][4] = 3;
- grid[3][4] = 3;
- grid[4][4] = 3;
- grid[5][4] = 3;
- grid[6][4] = 3;
- grid[7][4] = 3;
- grid[8][4] = 3;
- grid[8][5] = 3;
- grid[8][6] = 3;
- grid[8][7] = 3;
- grid[7][7] = 3;
- grid[6][7] = 3;
- grid[6][8] = 3;
- grid[6][9] = 3;
- grid[6][10] = 3;
- grid[6][11] = 3;
- grid[5][11] = 3;
- grid[4][11] = 3;
- grid[4][10] = 3;
- grid[4][9] = 3;
- grid[4][8] = 3;
- grid[3][8] = 3;
- grid[2][8] = 3;
- grid[1][8] = 3;
- grid[1][9] = 3;
- grid[1][10] = 3;
- grid[1][11] = 3;
- grid[1][12] = 3;
- grid[1][13] = 3;
- grid[1][14] = 3;
- grid[1][15] = 3;
- grid[2][15] = 3;
- grid[3][15] = 3;
- grid[4][15] = 3;
- grid[5][15] = 3;
- grid[5][16] = 3;
- grid[5][17] = 3;
- grid[4][2] = 3;
- grid[4][3] = 3;
- grid[4][5] = 3;
- grid[4][6] = 3;
- grid[9][4] = 3;
- grid[10][4] = 3;
- grid[11][4] = 3;
- grid[12][4] = 3;
- grid[13][4] = 3;
- grid[11][3] = 3;
- grid[11][2] = 3;
- grid[9][7] = 3;
- grid[10][7] = 3;
- grid[11][7] = 3;
- grid[12][7] = 3;
- grid[8][8] = 3;
- grid[8][9] = 3;
- grid[8][10] = 3;
- grid[8][11] = 3;
- grid[8][12] = 3;
- grid[9][12] = 3;
- grid[9][10] = 3;
- grid[10][10] = 3;
- grid[11][10] = 3;
- grid[11][11] = 3;
- grid[6][15] = 3;
- grid[7][15] = 3;
- grid[8][15] = 3;
- grid[5][18] = 4;
- break;
- case 7:
- grid[1][9] = 2;
- grid[2][9] = 2;
- grid[3][9] = 2;
- grid[4][9] = 2;
- grid[5][9] = 2;
- grid[5][18] = 2;
- grid[5][17] = 2;
- grid[5][16] = 2;
- grid[5][15] = 2;
- grid[5][14] = 2;
- grid[14][18] = 2;
- grid[14][17] = 2;
- grid[14][16] = 2;
- grid[14][15] = 2;
- grid[14][14] = 2;
- grid[18][9] = 2;
- grid[17][9] = 2;
- grid[16][9] = 2;
- grid[15][9] = 2;
- grid[14][9] = 2;
- grid[11][1] = 2;
- grid[11][2] = 2;
- grid[11][3] = 2;
- grid[11][4] = 2;
- grid[11][5] = 2;
- grid[8][1] = 2;
- grid[8][2] = 2;
- grid[8][3] = 2;
- grid[8][4] = 2;
- grid[8][5] = 2;
- break;
- case 8:
- grid[1][9] = 2;
- grid[2][9] = 2;
- grid[3][9] = 2;
- grid[4][9] = 2;
- grid[5][9] = 2;
- grid[5][18] = 2;
- grid[5][17] = 2;
- grid[5][16] = 2;
- grid[5][15] = 2;
- grid[5][14] = 2;
- grid[5][13] = 2;
- grid[5][12] = 2;
- grid[14][18] = 2;
- grid[14][17] = 2;
- grid[18][9] = 2;
- grid[17][9] = 2;
- grid[16][9] = 2;
- grid[15][9] = 2;
- grid[14][9] = 2;
- grid[13][9] = 2;
- grid[12][9] = 2;
- grid[11][9] = 2;
- grid[10][9] = 2;
- grid[11][6] = 2;
- grid[11][1] = 2;
- grid[11][2] = 2;
- grid[11][3] = 2;
- grid[11][4] = 2;
- grid[11][5] = 2;
- grid[8][1] = 2;
- grid[8][2] = 2;
- grid[8][3] = 2;
- grid[8][4] = 2;
- break;
- case 9:
- grid[1][9] = 2;
- grid[2][9] = 2;
- grid[3][9] = 2;
- grid[4][9] = 2;
- grid[5][9] = 2;
- grid[5][18] = 2;
- grid[5][17] = 2;
- grid[5][16] = 2;
- grid[6][16] = 2;
- grid[7][16] = 2;
- grid[8][16] = 2;
- grid[9][16] = 2;
- grid[10][16] = 2;
- grid[10][17] = 2;
- grid[10][18] = 2;
- grid[18][13] = 2;
- grid[17][13] = 2;
- grid[16][13] = 2;
- grid[15][13] = 2;
- grid[14][13] = 2;
- grid[13][13] = 2;
- grid[13][12] = 2;
- grid[13][11] = 2;
- grid[13][10] = 2;
- grid[14][10] = 2;
- grid[15][10] = 2;
- grid[15][9] = 2;
- grid[15][8] = 2;
- grid[15][7] = 2;
- grid[16][7] = 2;
- grid[17][7] = 2;
- grid[17][6] = 2;
- grid[17][5] = 2;
- grid[17][4] = 2;
- grid[18][4] = 2;
- grid[12][1] = 2;
- grid[12][2] = 2;
- grid[12][3] = 2;
- grid[12][4] = 2;
- grid[12][5] = 2;
- grid[12][6] = 2;
- grid[11][6] = 2;
- grid[10][6] = 2;
- grid[10][5] = 2;
- grid[10][4] = 2;
- grid[10][3] = 2;
- grid[9][3] = 2;
- grid[8][3] = 2;
- grid[7][3] = 2;
- grid[6][3] = 2;
- grid[6][4] = 2;
- grid[6][5] = 2;
- grid[6][6] = 2;
- grid[5][6] = 2;
- grid[4][6] = 2;
- grid[4][5] = 2;
- grid[4][4] = 2;
- grid[4][3] = 2;
- grid[4][2] = 2;
- grid[4][1] = 2;
- break;
- }
- }
- //This sifts through each elemenet within the preset 20x20 array and checks the value so that i can assign
- //textured objects to a mirror rectangle shape array
- sf::RectangleShape * Room::generateMap(sf::RectangleShape map[20][20], int grid[20][20])
- {
- for (int i = 0; i < 20; i++)
- {
- for (int j = 0; j < 20; j++)
- {
- //If grid element is equal to zero we add a white object to our sfml shape array
- if (grid[i][j] == 0)
- {
- map[i][j] = white;
- }
- //If grid element is equal to one we add a black object to our sfml shape array
- else if (grid[i][j] == 1)
- {
- map[i][j] = black;
- }
- //If grid element is equal to two we add a blue object to our sfml shape array
- else if (grid[i][j] == 2)
- {
- map[i][j] = blue;
- }
- //If grid element is equal to three we add a yellow object to our sfml shape array
- else if (grid[i][j] == 3)
- {
- map[i][j] = yellow;
- }
- //If grid element is equal to four we add a green object to our sfml shape array
- else if (grid[i][j] == 4)
- {
- map[i][j] = green;
- }
- }
- }
- return *map;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement