public static IBitmap GenerateFloorMap(SokobanMap Map)
 {
     Bitmap boundry = Map.ToBitmap(CellStates.Floor);
     boundry = boundry.BitwiseOR(Map.ToBitmap(CellStates.FloorCrate));
     boundry = boundry.BitwiseOR(Map.ToBitmap(CellStates.FloorGoal));
     boundry = boundry.BitwiseOR(Map.ToBitmap(CellStates.FloorGoalCrate));
     boundry = boundry.BitwiseOR(Map.ToBitmap(CellStates.FloorGoalPlayer));
     boundry = boundry.BitwiseOR(Map.ToBitmap(CellStates.FloorPlayer));
     return boundry;
 }
 public static Bitmap GenerateWallMap(SokobanMap map)
 {
     Bitmap result = map.ToBitmap(CellStates.Wall);
     return result;
 }
 /// <summary>
 /// Get map for the crates
 /// </summary>
 /// <param name="Map"></param>
 /// <returns></returns>
 public static Bitmap GenerateCrateMap(SokobanMap Map)
 {
     Bitmap result = Map.ToBitmap(CellStates.FloorCrate);
     result = result.BitwiseOR(Map.ToBitmap(CellStates.FloorGoalCrate));
     return result;
 }
 /// <summary>
 /// Get a simple boundry map
 /// </summary>
 /// <param name="Map"></param>
 /// <returns></returns>
 public static Bitmap GenerateBoundryMap(SokobanMap Map)
 {
     Bitmap boundry = Map.ToBitmap(CellStates.Wall);
     boundry = boundry.BitwiseOR(Map.ToBitmap(CellStates.Void));
     return boundry;
 }