Пример #1
0
        public IHitResult GotHitAt(IPosition position)
        {
            foreach (var occupiedPosition in occupiedPositions)
            {
                if (position.Equals(occupiedPosition.Position))
                {
                    occupiedPosition.Damage = true;
                    return(new HitResult("1"));
                }
            }

            return(new NullHitResult());
        }
        public void Should_Throw_ArgumentOutOfRangeException_And_ReturnStartPosition_When_RoverGetsOutOfPlato()
        {
            IPosition startPosition = CurrentFactory.CreateInputObject <IPosition>();

            startPosition.X         = 3;
            startPosition.Y         = 3;
            startPosition.Direction = Direction.East;

            IDriver driver = new Driver.Driver(CurrentPlato, startPosition);

            ICommandList commandLists = CurrentFactory.CreateInputObject <ICommandList>();

            commandLists.AddRange("MMMMMM".Select(p => (CommandType)p).ToArray());

            Assert.Throws <ArgumentOutOfRangeException>(() => driver.Drive(commandLists));
            Assert.IsTrue(startPosition.Equals(driver.CurrentPosition));
        }
Пример #3
0
 public bool IsAdjacent(IPosition position)
 {
     return Enum.GetValues(typeof (Direction))
         .Cast<Direction>()
         .Any(direction => position.Equals(GetNextTowards(direction)));
 }