Line |
Branch |
Exec |
Source |
1 |
|
|
/* |
2 |
|
|
** EPITECH PROJECT, 2024 |
3 |
|
|
** zappy/ai |
4 |
|
|
** File description: |
5 |
|
|
** ListenLookResponse.cpp |
6 |
|
|
*/ |
7 |
|
|
|
8 |
|
|
#include "../../bots/ABot.hpp" |
9 |
|
|
// Landmark: 1. Push it. |
10 |
|
✗ |
void ABot::listenLookResponse(const std::string &response) |
11 |
|
|
{ |
12 |
|
|
// Remove brackets |
13 |
|
✗ |
std::string cleanedResponse = response.substr(1, response.size() - 2); |
14 |
|
|
|
15 |
|
✗ |
std::istringstream iss(cleanedResponse); |
16 |
|
|
std::string tileString; |
17 |
|
|
|
18 |
|
✗ |
_state.environment.clear(); |
19 |
|
|
|
20 |
|
|
int x = 0, y = 0; |
21 |
|
|
unsigned int distance = 0; |
22 |
|
|
unsigned int nbTile = 0; |
23 |
|
|
|
24 |
|
|
unsigned int center = 2; |
25 |
|
|
unsigned int limit = 4; |
26 |
|
|
unsigned int addCenter = 4; |
27 |
|
|
unsigned int addLimit = 5; |
28 |
|
|
|
29 |
|
✗ |
while (std::getline(iss, tileString, ',')) |
30 |
|
|
{ |
31 |
|
✗ |
std::istringstream tileStream(tileString); |
32 |
|
|
std::string item; |
33 |
|
|
|
34 |
|
✗ |
Ressources ressources; |
35 |
|
|
|
36 |
|
✗ |
while (tileStream >> item) |
37 |
|
|
{ |
38 |
|
✗ |
ressources.addRessource(item); |
39 |
|
|
} |
40 |
|
✗ |
distance = abs(x) + abs(y); |
41 |
|
✗ |
if (nbTile != 0) |
42 |
|
✗ |
x = nbTile - center; |
43 |
|
✗ |
Tile tile(x, y, distance, ressources); |
44 |
|
|
// std::cout << "====================\n"; |
45 |
|
|
// std::cout << "tile content = " << tileString << std::endl; |
46 |
|
|
// std::cout << "at tile x = " << x << " y = " << y << " distance = " << distance << std::endl; |
47 |
|
|
// std::cout << "nbTile = " << nbTile << std::endl; |
48 |
|
|
// std::cout << "center = " << center << std::endl; |
49 |
|
|
// std::cout << "====================\n"; |
50 |
|
|
|
51 |
|
✗ |
_state.environment.tiles.push_back(tile); |
52 |
|
✗ |
if (nbTile == 0) |
53 |
|
|
{ |
54 |
|
✗ |
y += 1; |
55 |
|
|
} |
56 |
|
✗ |
nbTile++; |
57 |
|
✗ |
if (nbTile == limit) |
58 |
|
|
{ |
59 |
|
✗ |
y++; |
60 |
|
✗ |
center += addCenter; |
61 |
|
✗ |
addCenter += 2; |
62 |
|
✗ |
limit += addLimit; |
63 |
|
✗ |
addLimit += 2; |
64 |
|
|
} |
65 |
|
✗ |
} |
66 |
|
|
// debug |
67 |
|
|
// for (auto &tile : _state.environment.tiles) |
68 |
|
|
// { |
69 |
|
|
// printColor("Tile: x:" + std::to_string(tile.x) + " y: " + std::to_string(tile.y) + " distance: " + std::to_string(tile.distance) + "\n", BRIGHT_BLUE); |
70 |
|
|
// std::cout << "Ressources: " << std::endl; |
71 |
|
|
// std::cout << "food: " << tile.ressources.food << std::endl; |
72 |
|
|
// std::cout << "linemate: " << tile.ressources.linemate << std::endl; |
73 |
|
|
// std::cout << "deraumere: " << tile.ressources.deraumere << std::endl; |
74 |
|
|
// std::cout << "sibur: " << tile.ressources.sibur << std::endl; |
75 |
|
|
// std::cout << "mendiane: " << tile.ressources.mendiane << std::endl; |
76 |
|
|
// std::cout << "phiras: " << tile.ressources.phiras << std::endl; |
77 |
|
|
// std::cout << "thystame: " << tile.ressources.thystame << std::endl; |
78 |
|
|
// std::cout << "player: " << tile.ressources.player << std::endl; |
79 |
|
|
// } |
80 |
|
✗ |
} |
81 |
|
|
|