private void HandleMoves(Sequence sequence) { for (int m = 0; m < sequence.Times; ++m) { // although it can go multiple fields we need it just to move one field Turtle.Move(); var collidedWith = collision.Check(Turtle); if (collidedWith == null) { logger.Info($"Success!"); continue; } collidedWith.Handle(logger, Turtle); if (Turtle.Dead || Turtle.Exited) { break; } } }
public virtual void Handle(ILogger logger, Turtle turtle) { }
public override void Handle(ILogger logger, Turtle turtle) { logger.Info("Mine hit!"); turtle.Dead = true; }
public override void Handle(ILogger logger, Turtle turtle) { logger.Info("Exit reached!"); turtle.Exited = true; }
public override void Handle(ILogger logger, Turtle turtle) { logger.Info("Wall hit!"); turtle.Position -= turtle.LastMove; }