/// <summary> /// Build a map of all unreachable positions (void + wall, etc) /// </summary> private void BuildBoundryMap() { // Make a simple boundry map Bitmap simpleBoundry = controller.Map.ToBitmap(CellStates.Wall); simpleBoundry = simpleBoundry.BitwiseOR(controller.Map.ToBitmap(CellStates.Void)); // Create the AccessMap, all areas the player can go. FloodFillStrategy result = FloodFillStrategy.Evaluate(simpleBoundry, controller.Map.Player); accessMap = new SolverBitmap("AccessMap", result.Result); accessMap[controller.Map.Player] = true; controller.DebugReport.Append("AccessMap:"); controller.DebugReport.Append(accessMap.ToString()); floorMap = accessMap; // Correct/Full boundry is the reverse of the access map boundryMap = new SolverBitmap("Boundry", accessMap.BitwiseNOT()); controller.DebugReport.Append("BoundryMap:"); controller.DebugReport.Append(boundryMap.ToString()); }