GREEN: implement plateau boundaries with wrapping

This commit is contained in:
fiatcode 2026-02-24 10:49:58 +07:00
parent 1078e1947e
commit 7632401aa4

View file

@ -2,8 +2,16 @@ class Rover {
int x;
int y;
String direction;
final int plateauWidth;
final int plateauHeight;
Rover({required this.x, required this.y, required this.direction});
Rover({
required this.x,
required this.y,
required this.direction,
this.plateauWidth = 100,
this.plateauHeight = 100,
});
void turnLeft() {
const leftTurns = {
@ -28,16 +36,18 @@ class Rover {
void moveForward() {
switch (direction) {
case 'N':
y += 1;
y = (y + 1) % (plateauHeight + 1);
break;
case 'E':
x += 1;
x = (x + 1) % (plateauWidth + 1);
break;
case 'S':
y -= 1;
y = (y - 1) % (plateauHeight + 1);
if (y < 0) y += plateauHeight + 1;
break;
case 'W':
x -= 1;
x = (x - 1) % (plateauWidth + 1);
if (x < 0) x += plateauWidth + 1;
break;
}
}