Primer commit
This commit is contained in:
commit
4a030f57d2
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
a.out
|
||||||
112
API.cpp
Normal file
112
API.cpp
Normal 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
34
API.h
Normal 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
23
Main.cpp
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user