| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | /* | ||
| 2 | ** EPITECH PROJECT, 2024 | ||
| 3 | ** zappy/ai | ||
| 4 | ** File description: | ||
| 5 | ** RunToLinemate.cpp | ||
| 6 | */ | ||
| 7 | |||
| 8 | #include "../../bots/ABotPattern.hpp" | ||
| 9 | |||
| 10 | ✗ | void ABotPattern::runToLinemate() | |
| 11 | { | ||
| 12 | ✗ | if (_state.metadata["should_update_env"] == "true") | |
| 13 | { | ||
| 14 | ✗ | if (_iteration > 50 && _iteration < 55) | |
| 15 | ✗ | queue.push_back({[&]() | |
| 16 | ✗ | { doAction(LEFT, ""); }, "LEFT"}); | |
| 17 | ✗ | if (_iteration > 100 && _iteration < 105) | |
| 18 | ✗ | queue.push_back({[&]() | |
| 19 | ✗ | { doAction(RIGHT, ""); }, "RIGHT"}); | |
| 20 | ✗ | queue.push_back({[&]() | |
| 21 | ✗ | { doAction(LOOK, ""); }, "LOOK"}); | |
| 22 | ✗ | return; | |
| 23 | } | ||
| 24 | else | ||
| 25 | { | ||
| 26 | ✗ | std::unordered_map<std::string, std::function<void()>> actions = { | |
| 27 | ✗ | {"FORWARD", [&]() | |
| 28 | ✗ | { doAction(FORWARD, ""); }}, | |
| 29 | ✗ | {"LEFT", [&]() | |
| 30 | ✗ | { doAction(LEFT, ""); }}, | |
| 31 | ✗ | {"RIGHT", [&]() | |
| 32 | ✗ | { doAction(RIGHT, ""); }}, | |
| 33 | ✗ | }; | |
| 34 | ✗ | std::unique_ptr<Tile> tile = _state.environment.getTileByRessource("linemate"); | |
| 35 | ✗ | if (tile != nullptr) | |
| 36 | { | ||
| 37 | std::pair<int, int> coord = {tile->x, tile->y}; | ||
| 38 | ✗ | if (movementMap.find(coord) != movementMap.end()) | |
| 39 | { | ||
| 40 | ✗ | for (const auto &move : movementMap[coord]) | |
| 41 | { | ||
| 42 | ✗ | queue.push_back({actions[move], move}); | |
| 43 | } | ||
| 44 | } | ||
| 45 | ✗ | queue.push_back({[&]() | |
| 46 | ✗ | { doAction(INCANTATION, ""); }, "INCANTATION"}); | |
| 47 | } | ||
| 48 | ✗ | if (tile == nullptr) | |
| 49 | { | ||
| 50 | ✗ | queue.push_back({[&]() | |
| 51 | ✗ | { doAction(FORWARD, ""); }, "FORWARD"}); | |
| 52 | } | ||
| 53 | ✗ | } | |
| 54 | ✗ | } | |
| 55 |