Tworzę tablicę 2D za pomocą funkcji
MAP_GRID create_terrain(int size)
Próbuję teraz zmienić wartość jednej z jej komórek, za pomocą funkcji void set_position(MAP_GRID map, int x, int y, string object)
Niestety, zmiana jest tylko tymczasowa. Poniżej zamieszczam pełny kod:
```cpp
#include "stdafx.h"
#include <iostream>
#include <vector>
using std::vector;
using std::string;
using MAP_GRID = vector<vector<string>>;
MAP_GRID create_terrain(int size)
{
MAP_GRID map;
for (int i = 0; i < size; ++i) {
map.emplace_back(vector<string>());
for (int j = 0; j < size; ++j) {
map[i].emplace_back("[ ]");
}
}
return map;
}
void print_terrain(MAP_GRID map)
{
for (int i = 0; i < map.size(); ++i) {
for (int j = 0; j < map[i].size(); ++j) {
std::cout.width(4);
std::cout << map[i][j].c_str();
}
std::cout << std::endl;
}
}
void set_position(MAP_GRID map, int x, int y, string object)
{
if (map[x][y] != "[ ]")
std::cout << "\nPosition is occupied" << std::endl;
map[x][y] = object; //temporary change
}
#include "stdafx.h"
#include <iostream>
using MAP_GRID = vector<vector<string>>;
using namespace std;
void print_terrain(MAP_GRID);
void set_position(MAP_GRID, int, int, string);
MAP_GRID create_terrain(int);
int _tmain(int argc, _TCHAR* argv[])
{
MAP_GRID map = create_terrain(10);
print_terrain(map);
set_position(map, 5, 5, "[x]");
return 0;
}