public void MoveAStep(Coordinate coordinate) { var toMoveElement = FindNode(coordinate); if (toMoveElement is Way) { this[coordinate] = _mazeFactory.CreateRoute(coordinate); CurrentElement = this[coordinate]; CurrentElement.Draw(); } else if (toMoveElement is Route) { this[CurrentElement.Location] = _mazeFactory.CreateWay(CurrentElement.Location); this[CurrentElement.Location].Draw(); CurrentElement = toMoveElement; CurrentElement.Draw(); } else if (toMoveElement is Destination) { GameOver(); } }