Beispiel #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Marcher4"/> class.
 /// </summary>
 /// <param name="startDirection">The start direction.</param>
 /// <param name="startX">The start X.</param>
 /// <param name="startY">The start Y.</param>
 /// <remarks></remarks>
 public Marcher4(Door4 startDirection, int startX, int startY)
 {
     Contract.Requires(startDirection.ExactlyOneValueSet());
     Contract.Requires(startX >= 0 && startY >= 0);
     Direction = startDirection;
     X = startX;
     Y = startY;
 }
Beispiel #2
0
 /// <summary>
 /// Legt fest, dass eine Tür durchschritten wurde
 /// </summary>
 /// <param name="set">Das Lookup-Set</param>
 /// <param name="room">Der Raum</param>
 /// <param name="direction">Die Richtung</param>
 private static void SetBeenThere(HashSet<Tuple<IRoom4, Door4>> set, IRoom4 room, Door4 direction)
 {
     Contract.Requires(set != null);
     Contract.Requires(room != null);
     Contract.Requires(direction.ExactlyOneValueSet());
     set.Add(new Tuple<IRoom4, Door4>(room, direction));
 }
Beispiel #3
0
 /// <summary>
 /// Ermittelt, ob eine Tür bereits durchschritten wurde
 /// </summary>
 /// <param name="set">Das Lookup-Set</param>
 /// <param name="room">Der Raum</param>
 /// <param name="direction">Die Richtung</param>
 /// <returns><c>true</c>, wenn der angegebene Raum bereits durch diese Tür verlassen wurde, ansonsten <c>false</c></returns>
 private static bool BeenThere(HashSet<Tuple<IRoom4, Door4>> set, IRoom4 room, Door4 direction)
 {
     Contract.Requires(set != null);
     Contract.Requires(room != null);
     Contract.Requires(direction.ExactlyOneValueSet());
     return set.Contains(new Tuple<IRoom4, Door4>(room, direction));
 }