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; }