public void Initialize(Level level, PathFinder pathFinder) { Level = level; PathFinder = pathFinder; SokobanRow = level.SokobanRow; SokobanColumn = level.SokobanColumn; level.RemoveSokoban(); HashKey = level.GetOccupantsHashKey(); }
private HashKey GetPrintHashKey(Level level, PathFinder pathFinder) { if (solver.OptimizeMoves) { return level.GetOccupantsHashKey(); } Coordinate2D sokobanCoord = level.SokobanCoordinate; pathFinder.Find(); Coordinate2D proxySokobanCoord = pathFinder.GetFirstAccessibleCoordinate(); level.MoveSokoban(proxySokobanCoord); HashKey hashKey = level.GetOccupantsHashKey(); level.MoveSokoban(sokobanCoord); return hashKey; }