Primer commit

This commit is contained in:
Fernando 2024-06-26 02:11:37 -06:00
commit 4a030f57d2
5 changed files with 174 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
a.out

112
API.cpp Normal file
View File

@ -0,0 +1,112 @@
#include "API.h"
#include <cstdlib>
#include <iostream>
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::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;
}

34
API.h Normal file
View File

@ -0,0 +1,34 @@
#pragma once
#include <string>
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 clearText(int x, int y);
static void clearAllText();
static bool wasReset();
static void ackReset();
};

23
Main.cpp Normal file
View File

@ -0,0 +1,23 @@
#include <iostream>
#include <string>
#include "API.h"
void log(const std::string& text) {
std::cerr << text << std::endl;
}
int main(int argc, char* argv[]) {
log("Running...");
API::setColor(0, 0, 'G');
API::setText(0, 0, "abc");
while (true) {
if (!API::wallLeft()) {
API::turnLeft();
}
while (API::wallFront()) {
API::turnRight();
}
API::moveForward();
}
}

4
README.md Normal file
View File

@ -0,0 +1,4 @@
# Simulación de micromouse en mms
Este programa sirve para simular el algoritmo y el
comportamiento del micromouse.