main
1using mars.rover.domain;
2
3namespace mars.rover.presentation.model
4{
5 internal class UnknownHeadingFactory : HeadingFactory
6 {
7 public UnknownHeadingFactory() : base(null, null)
8 {
9 }
10
11 public override bool is_satisfied_by(string item)
12 {
13 return true;
14 }
15
16 public override Heading create(Plateau plateau)
17 {
18 return new UnknownHeading();
19 }
20
21 class UnknownHeading : Heading
22 {
23 public bool Equals(Heading other)
24 {
25 if (null == other) return false;
26 return other is UnknownHeading;
27 }
28
29 public Heading turn_left()
30 {
31 return this;
32 }
33
34 public Heading turn_right()
35 {
36 return this;
37 }
38
39 public void move_forward_from(Coordinate x, Coordinate y)
40 {
41 }
42
43 public override string ToString()
44 {
45 return "Unknown";
46 }
47
48 public override bool Equals(object obj)
49 {
50 return Equals(obj as Heading);
51 }
52
53 public override int GetHashCode()
54 {
55 return ToString().GetHashCode();
56 }
57 }
58 }
59}