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)); }
public bool IsAdjacent(IPosition position) { return Enum.GetValues(typeof (Direction)) .Cast<Direction>() .Any(direction => position.Equals(GetNextTowards(direction))); }