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}