main
1namespace mars.rover.domain
2{
3 public class Rover
4 {
5 public Coordinate y { get; private set; }
6 public Coordinate x { get; private set; }
7 public Heading heading { get; private set; }
8
9 public Rover(Coordinate x, Coordinate y, Heading heading)
10 {
11 this.x = x;
12 this.y = y;
13 this.heading = heading;
14 }
15
16 public virtual void turn_left()
17 {
18 heading = heading.turn_left();
19 }
20
21 public virtual void turn_right()
22 {
23 heading = heading.turn_right();
24 }
25
26 public virtual void move_forward()
27 {
28 heading.move_forward_from(x, y);
29 }
30
31 public override string ToString()
32 {
33 return string.Format("{0} {1} {2}", x, y, heading);
34 }
35 }
36}