mms-sim/mms.h
2024-08-08 19:34:02 -06:00

58 lines
1.2 KiB
C++

#include "api.h"
enum turn{left, right};
enum compass{norte, sur, este, oeste};
struct dirnode {
int value;
dirnode* next;
dirnode* prev;
dirnode(int val): value(val){};
};
class mmstats {
private:
dirnode* tail;
dirnode* head;
void addnode(int val) {
dirnode* temp = new dirnode(val);
if (head != nullptr) {
head->next = temp;
temp->prev = head;
temp->next = tail;
head = temp;
tail->prev = head;
}
if (head == nullptr) {
head = temp;
tail = temp;
}
}
public:
int y;
int x;
char dir;
mmstats(): tail(nullptr), head(nullptr) {
addnode(este);
addnode(sur);
addnode(oeste);
addnode(norte);
dir = norte;
}
void turn(int opt) {
if (opt)
head = head->next;
else head = head->prev;
dir = head->value;
switch (dir) {
case norte: log("Norte");
break;
case este: log("Este");
break;
case sur: log("Sur");
break;
case oeste: log("Oeste");
break;
}
}
};