From 0e6fa0c0371b3c34b326361ec6a0cb8aa7249e86 Mon Sep 17 00:00:00 2001 From: fernando Date: Thu, 15 Aug 2024 11:23:10 -0600 Subject: [PATCH] Nuevas libreria api --- lib/api/api.cpp | 124 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/api/api.h | 38 +++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 lib/api/api.cpp create mode 100644 lib/api/api.h diff --git a/lib/api/api.cpp b/lib/api/api.cpp new file mode 100644 index 0000000..47b47a0 --- /dev/null +++ b/lib/api/api.cpp @@ -0,0 +1,124 @@ +#include "api.h" + +#include +#include + +int API::mazeWidth() { + std::cout << "mazeWidth" << std::endl; + std::string response; + std::cin >> response; + return atoi(response.c_str()); +} + +int API::mazeHeight() { + std::cout << "mazeHeight" << std::endl; + std::string response; + std::cin >> response; + return atoi(response.c_str()); +} + +bool API::wallFront() { + std::cout << "wallFront" << std::endl; + std::string response; + std::cin >> response; + return response == "true"; +} + +bool API::wallRight() { + std::cout << "wallRight" << std::endl; + std::string response; + std::cin >> response; + return response == "true"; +} + +bool API::wallLeft() { + std::cout << "wallLeft" << std::endl; + std::string response; + std::cin >> response; + return response == "true"; +} + +void API::moveForward(int distance) { + std::cout << "moveForward "; + // Don't print distance argument unless explicitly specified, for + // backwards compatibility with older versions of the simulator + if (distance != 1) { + std::cout << distance; + } + std::cout << std::endl; + std::string response; + std::cin >> response; + if (response != "ack") { + std::cerr << response << std::endl; + throw; + } +} + +void API::turnRight() { + std::cout << "turnRight" << std::endl; + std::string ack; + std::cin >> ack; +} + +void API::turnLeft() { + std::cout << "turnLeft" << std::endl; + std::string ack; + std::cin >> ack; +} + +void API::setWall(int x, int y, char direction) { + std::cout << "setWall " << x << " " << y << " " << direction << std::endl; +} + +void API::clearWall(int x, int y, char direction) { + std::cout << "clearWall " << x << " " << y << " " << direction << std::endl; +} + +void API::setColor(int x, int y, char color) { + std::cout << "setColor " << x << " " << y << " " << color << std::endl; +} + +void API::clearColor(int x, int y) { + std::cout << "clearColor " << x << " " << y << std::endl; +} + +void API::clearAllColor() { + std::cout << "clearAllColor" << std::endl; +} + +void API::setText(int x, int y, const std::string& text) { + std::cout << "setText " << x << " " << y << " " << text << std::endl; +} +void API::setText(int x, int y, const int& text) { + std::cout << "setText " << x << " " << y << " " << text << std::endl; +} + +void API::clearText(int x, int y) { + std::cout << "clearText " << x << " " << y << std::endl; +} + +void API::clearAllText() { + std::cout << "clearAllText" << std::endl; +} + +bool API::wasReset() { + std::cout << "wasReset" << std::endl; + std::string response; + std::cin >> response; + return response == "true"; +} + +void API::ackReset() { + std::cout << "ackReset" << std::endl; + std::string ack; + std::cin >> ack; +} +void log(const std::string& text) { + std::cerr << text << std::endl; +} +void log(const char& text) { + std::cerr << text << std::endl; +} +void log(const int& num) { + std::cerr << num << std::endl; +} diff --git a/lib/api/api.h b/lib/api/api.h new file mode 100644 index 0000000..64d1a61 --- /dev/null +++ b/lib/api/api.h @@ -0,0 +1,38 @@ +#pragma once + +#include + +class API { + +public: + + static int mazeWidth(); + static int mazeHeight(); + + static bool wallFront(); + static bool wallRight(); + static bool wallLeft(); + + static void moveForward(int distance = 1); + static void turnRight(); + static void turnLeft(); + + static void setWall(int x, int y, char direction); + static void clearWall(int x, int y, char direction); + + static void setColor(int x, int y, char color); + static void clearColor(int x, int y); + static void clearAllColor(); + + static void setText(int x, int y, const std::string& text); + static void setText(int x, int y, const int& text); + static void clearText(int x, int y); + static void clearAllText(); + + static bool wasReset(); + static void ackReset(); + +}; + +void log(const std::string&); +void log(const int&);