44 lines
693 B
Dart
44 lines
693 B
Dart
class Rover {
|
|
int x;
|
|
int y;
|
|
String direction;
|
|
|
|
Rover({required this.x, required this.y, required this.direction});
|
|
|
|
void turnLeft() {
|
|
const leftTurns = {
|
|
'N': 'W',
|
|
'W': 'S',
|
|
'S': 'E',
|
|
'E': 'N',
|
|
};
|
|
direction = leftTurns[direction]!;
|
|
}
|
|
|
|
void turnRight() {
|
|
const rightTurns = {
|
|
'N': 'E',
|
|
'E': 'S',
|
|
'S': 'W',
|
|
'W': 'N',
|
|
};
|
|
direction = rightTurns[direction]!;
|
|
}
|
|
|
|
void moveForward() {
|
|
switch (direction) {
|
|
case 'N':
|
|
y += 1;
|
|
break;
|
|
case 'E':
|
|
x += 1;
|
|
break;
|
|
case 'S':
|
|
y -= 1;
|
|
break;
|
|
case 'W':
|
|
x -= 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|