``````/***************************************************
Write a program that allows the user to enter a
sequence of "moves" and prints out their position
after the moves.  Moves are:

left  - means a 90 deg counter clockwise turn (in place)
right - means a 90 deg clockwise turn (in place)
step  - means step forward 1 unit
stop  - terminates the sequence of moves.

The initial position is (0,0) facing North (up).
So the sequence "left step step left step right stop"
would leave you at (-2,-1).
***************************************************/
#include "si204.h"

int main() {
// The direction is 0, 1, 2, or 3.
// 0 indicates east, 1 is north, 2 is west, and 3 is south.

// Initialize
int x = 0;
int y = 0;
int direction = 1;
cstring nextmove;

// read in the first move
fputs("Enter moves: ", stdout);

// Keep processing moves until "stop"
while (strcmp(nextmove, "stop") != 0) {
if (strcmp(nextmove, "left") == 0) {
// turn left
if (direction < 3) {
direction = direction + 1;
} else {
direction = 0;
}
} else if (strcmp(nextmove, "right") == 0) {
// turn right
if (direction > 0) {
direction = direction - 1;
} else {
direction = 3;
}
} else {
// take a step in the current direction
if (direction == 0) {
x = x + 1;
} else if (direction == 1) {
y = y + 1;
} else if (direction == 2) {
x = x - 1;
} else {
y = y - 1;
}
}