adjusted JsonGenerator class; added newly generated map; minor code refactoring
This commit is contained in:
parent
1d9e45c631
commit
be43e8aeb8
@ -12,29 +12,44 @@ def _get_random_attribute_values(self, attr_type, grid_dimensions):
|
|||||||
return random.randint(num_of_rows + num_of_columns, (2 * num_of_rows + num_of_columns))
|
return random.randint(num_of_rows + num_of_columns, (2 * num_of_rows + num_of_columns))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
pass
|
return None
|
||||||
|
|
||||||
|
|
||||||
class JsonGenerator:
|
class JsonGenerator:
|
||||||
grid = dict()
|
grid = dict()
|
||||||
|
|
||||||
def __init__(self, agent_starting_position, agent_direction):
|
# constructor that can be used to set agent's initial state
|
||||||
self.agent_starting_position = agent_starting_position
|
def __init__(self, agents_initial_position=(0, 0), agents_initial_direction=const.Direction.UP.value):
|
||||||
starting_row, starting_column = agent_starting_position
|
# saving agent's initial state (position & direction)
|
||||||
self.agent_direction = agent_direction
|
self.agents_initial_position = agents_initial_position
|
||||||
starting_direction = agent_direction
|
self.agents_initial_direction = agents_initial_direction
|
||||||
self.grid["agent_starting_position"] = str(starting_row) + ',' + str(starting_column)
|
|
||||||
|
# getting position coordinates
|
||||||
|
starting_row, starting_column = agents_initial_position
|
||||||
|
|
||||||
|
# saving data to the grid dictionary
|
||||||
|
self.grid["agents_initial_state"] = {
|
||||||
|
"position": str(starting_row) + ',' + str(starting_column),
|
||||||
|
"direction": agents_initial_direction
|
||||||
|
}
|
||||||
|
|
||||||
|
# sets agent's initial state
|
||||||
|
def set_agents_initial_state(self, position=(0, 0), direction=const.Direction.UP.value):
|
||||||
|
# setting fields in the instance
|
||||||
|
self.agents_initial_position = position
|
||||||
|
self.agents_initial_direction = direction
|
||||||
|
|
||||||
# sets agent's starting position
|
|
||||||
def set_agent_starting_position(self, position):
|
|
||||||
# getting position coordinates
|
# getting position coordinates
|
||||||
starting_row, starting_column = position
|
starting_row, starting_column = position
|
||||||
|
|
||||||
# setting new agent's starting position
|
# setting new agent's initial state
|
||||||
self.grid["agent_starting_position"] = str(starting_row) + ',' + str(starting_column)
|
self.grid["agents_initial_state"] = {
|
||||||
|
"position": str(starting_row) + ',' + str(starting_column),
|
||||||
|
"direction": direction
|
||||||
|
}
|
||||||
|
|
||||||
# overwrites grid field with a new grid with randomized colors and mines
|
# overwrites grid field with a new grid with randomized colors and mines
|
||||||
def generate_randomized_grid(self, dimensions, mine_appearance_chance=0.25, predecessor_chance_decrease=0.25):
|
def generate_randomized_grid(self, dimensions, mine_appearance_chance=0.15, predecessor_chance_decrease=0.25):
|
||||||
# clearing grid field
|
# clearing grid field
|
||||||
self.clear_tile_dictionary()
|
self.clear_tile_dictionary()
|
||||||
|
|
||||||
@ -45,18 +60,17 @@ class JsonGenerator:
|
|||||||
|
|
||||||
for i in range(num_of_rows):
|
for i in range(num_of_rows):
|
||||||
for j in range(num_of_columns):
|
for j in range(num_of_columns):
|
||||||
|
|
||||||
# picking random values for tiles
|
# picking random values for tiles
|
||||||
random_tile_color = random.choice(const.STRUCT_TILE_COLORS)
|
random_tile_color = random.choice(const.STRUCT_TILE_COLORS)
|
||||||
|
|
||||||
# adding added tile's index to a pool
|
# adding added tile's indexes to a pool
|
||||||
tile_pool.append((i, j))
|
tile_pool.append((i, j))
|
||||||
|
|
||||||
# adding the random tile
|
# creating random tile
|
||||||
self.add_tile((i, j), random_tile_color)
|
self.add_tile((i, j), random_tile_color)
|
||||||
|
|
||||||
# deleting tile agent's starting tile from the set
|
# deleting agent's starting tile from the pool
|
||||||
deleted_row, deleted_column = self.grid["agent_starting_position"].split(',')
|
deleted_row, deleted_column = self.agents_initial_position
|
||||||
tile_pool.remove((int(deleted_row), int(deleted_column)))
|
tile_pool.remove((int(deleted_row), int(deleted_column)))
|
||||||
|
|
||||||
for i in range(num_of_rows):
|
for i in range(num_of_rows):
|
||||||
@ -64,7 +78,7 @@ class JsonGenerator:
|
|||||||
|
|
||||||
# checking if a mine will appear
|
# checking if a mine will appear
|
||||||
if random.random() < mine_appearance_chance and len(tile_pool) > 0 and tile_pool.__contains__((i, j)):
|
if random.random() < mine_appearance_chance and len(tile_pool) > 0 and tile_pool.__contains__((i, j)):
|
||||||
# removing current tile from the set
|
# removing current tile from the pool
|
||||||
tile_pool.remove((i, j))
|
tile_pool.remove((i, j))
|
||||||
|
|
||||||
# choosing random mine parameters
|
# choosing random mine parameters
|
||||||
@ -174,9 +188,14 @@ class JsonGenerator:
|
|||||||
# clearing grid dict
|
# clearing grid dict
|
||||||
self.grid.clear()
|
self.grid.clear()
|
||||||
|
|
||||||
# resetting agents starting position
|
# getting agent's starting position coordinates
|
||||||
starting_row, starting_column = self.agent_starting_position
|
starting_row, starting_column = self.agents_initial_position
|
||||||
self.grid["agent_starting_position"] = str(starting_row) + ',' + str(starting_column)
|
|
||||||
|
# re-setting the agent's initial state
|
||||||
|
self.grid["agents_initial_state"] = {
|
||||||
|
"position": str(starting_row) + ',' + str(starting_column),
|
||||||
|
"direction": self.agents_initial_direction
|
||||||
|
}
|
||||||
|
|
||||||
# loads a grid from a file and overwrites the grid field
|
# loads a grid from a file and overwrites the grid field
|
||||||
def load_from_a_file(self, file_path):
|
def load_from_a_file(self, file_path):
|
||||||
|
4
main.py
4
main.py
@ -66,9 +66,5 @@ def main():
|
|||||||
# Assigning all input from keyboard as variables into an array
|
# Assigning all input from keyboard as variables into an array
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
@ -45,6 +45,7 @@ class Direction(Enum):
|
|||||||
def next(self):
|
def next(self):
|
||||||
v = (self.value + 1) % 4
|
v = (self.value + 1) % 4
|
||||||
return Direction(v)
|
return Direction(v)
|
||||||
|
|
||||||
def previous(self):
|
def previous(self):
|
||||||
v = (self.value - 1) % 4
|
v = (self.value - 1) % 4
|
||||||
return Direction(v)
|
return Direction(v)
|
||||||
@ -69,26 +70,22 @@ STRUCT_TILE_COLORS = ["BLUE", "GREEN", "ORANGE", "PURPLE", "RED", "WHITE", "YELL
|
|||||||
|
|
||||||
# used to generate random mines and create not random mines
|
# used to generate random mines and create not random mines
|
||||||
STRUCT_MINE_TYPES = ["standard", "chained", "time"]
|
STRUCT_MINE_TYPES = ["standard", "chained", "time"]
|
||||||
STRUCT_MINE_ASSET_TYPES = ['A', 'B', 'F', 'K']
|
|
||||||
|
|
||||||
# values that are predefined for certain mine types and can't be changed by changing any parameters
|
# values that are predefined for certain mine types and can't be changed by changing any parameters
|
||||||
# put here all dict keys that have hardcoded values and are not supposed to be editable
|
# put here all dict keys that have hardcoded values and are not supposed to be editable
|
||||||
HARDCODED_VALUES = ["asset", "mine_type"]
|
HARDCODED_VALUES = ["mine_type"]
|
||||||
|
|
||||||
# default values and key-value pairs for JsonGenerator class
|
# default values and key-value pairs for JsonGenerator class
|
||||||
# when defining a new mine it's dict template must be put here
|
# when defining a new mine it's dict template must be put here
|
||||||
STRUCT_MINE_ATTRIBUTES = {
|
STRUCT_MINE_ATTRIBUTES = {
|
||||||
"standard": {
|
"standard": {
|
||||||
"asset": STRUCT_MINE_ASSET_TYPES.__getitem__(0),
|
|
||||||
"mine_type": "standard"
|
"mine_type": "standard"
|
||||||
},
|
},
|
||||||
"chained": {
|
"chained": {
|
||||||
"asset": STRUCT_MINE_ASSET_TYPES.__getitem__(1),
|
|
||||||
"mine_type": "chained",
|
"mine_type": "chained",
|
||||||
"predecessor": None
|
"predecessor": None
|
||||||
},
|
},
|
||||||
"time": {
|
"time": {
|
||||||
"asset": STRUCT_MINE_ASSET_TYPES.__getitem__(2),
|
|
||||||
"mine_type": "time",
|
"mine_type": "time",
|
||||||
"timer": None
|
"timer": None
|
||||||
}
|
}
|
||||||
@ -97,8 +94,6 @@ STRUCT_MINE_ATTRIBUTES = {
|
|||||||
# types of attributes the mines have
|
# types of attributes the mines have
|
||||||
# used for random mine generation
|
# used for random mine generation
|
||||||
# int - integral number
|
# int - integral number
|
||||||
# (int, int) - index "row,column" where row=int and column=int (used exclusively for chained mine)
|
|
||||||
|
|
||||||
STRUCT_MINE_ATTRIBUTE_TYPES = {
|
STRUCT_MINE_ATTRIBUTE_TYPES = {
|
||||||
"standard": [],
|
"standard": [],
|
||||||
"chained": [],
|
"chained": [],
|
||||||
@ -111,7 +106,6 @@ STRUCT_MINE_ATTRIBUTE_TYPES = {
|
|||||||
|
|
||||||
MAP_RANDOM_10x10 = os.path.join("resources", "minefields", "secondmap.json")
|
MAP_RANDOM_10x10 = os.path.join("resources", "minefields", "secondmap.json")
|
||||||
|
|
||||||
|
|
||||||
# ============== #
|
# ============== #
|
||||||
# === ASSETS === #
|
# === ASSETS === #
|
||||||
# ============== #
|
# ============== #
|
||||||
|
462
resources/minefields/thirdmap.json
Normal file
462
resources/minefields/thirdmap.json
Normal file
@ -0,0 +1,462 @@
|
|||||||
|
{
|
||||||
|
"0,0": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"0,1": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "standard"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0,2": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"0,3": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"0,4": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"0,5": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"0,6": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"0,7": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"0,8": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"0,9": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,0": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,1": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,2": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,3": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,4": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "time",
|
||||||
|
"timer": 30
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1,5": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,6": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,7": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,8": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"1,9": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,0": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,1": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,2": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,3": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,4": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": "8,1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2,5": {
|
||||||
|
"color": "WHITE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,6": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,7": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,8": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"2,9": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,0": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,1": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,2": {
|
||||||
|
"color": "WHITE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,3": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,4": {
|
||||||
|
"color": "WHITE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,5": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,6": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,7": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,8": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"3,9": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "time",
|
||||||
|
"timer": 23
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4,0": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"4,1": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": "5,6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4,2": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"4,3": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"4,4": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"4,5": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"4,6": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"4,7": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"4,8": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "time",
|
||||||
|
"timer": 25
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4,9": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"5,0": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"5,1": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"5,2": {
|
||||||
|
"color": "WHITE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"5,3": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"5,4": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "time",
|
||||||
|
"timer": 21
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5,5": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"5,6": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5,7": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "standard"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5,8": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"5,9": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"6,0": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": "8,2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"6,1": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": "8,7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"6,2": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"6,3": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"6,4": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"6,5": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "time",
|
||||||
|
"timer": 25
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"6,6": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"6,7": {
|
||||||
|
"color": "WHITE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"6,8": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "time",
|
||||||
|
"timer": 25
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"6,9": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"7,0": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"7,1": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"7,2": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"7,3": {
|
||||||
|
"color": "WHITE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"7,4": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"7,5": {
|
||||||
|
"color": "WHITE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"7,6": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"7,7": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "standard"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"7,8": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"7,9": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"8,0": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"8,1": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": "7,0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8,2": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": "6,3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8,3": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"8,4": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"8,5": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"8,6": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "standard"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8,7": {
|
||||||
|
"color": "WHITE",
|
||||||
|
"mine": {
|
||||||
|
"mine_type": "chained",
|
||||||
|
"predecessor": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8,8": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"8,9": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,0": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,1": {
|
||||||
|
"color": "PURPLE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,2": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,3": {
|
||||||
|
"color": "ORANGE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,4": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,5": {
|
||||||
|
"color": "RED",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,6": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,7": {
|
||||||
|
"color": "YELLOW",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,8": {
|
||||||
|
"color": "BLUE",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"9,9": {
|
||||||
|
"color": "GREEN",
|
||||||
|
"mine": null
|
||||||
|
},
|
||||||
|
"agents_initial_state": {
|
||||||
|
"direction": 3,
|
||||||
|
"position": "1,1"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user