for definition in locations_definition]
def export_board_locations(self):
- return dict(
+ return sorted(
(position, location.export())
for position, location in self.board_locations.iteritems())
@classmethod
def import_board_locations(cls, board_locations_definition):
return dict(
- (position, LocationCard.import_location(definition))
- for position, definition in board_locations_definition.iteritems())
+ (tuple(position), LocationCard.import_location(definition))
+ for position, definition in board_locations_definition)
@classmethod
def generate_board(cls, locations_definition):
- board_locations = {}
+ board_locations = []
for x in range(5):
for y in range(5):
board_location = LocationCard.new_location(
choice(locations_definition).copy())
- board_locations[(x, y)] = board_location.export()
+ board_locations.append([(x, y), board_location.export()])
return board_locations
def lose_health(self):
rotated_locations = {}
if py > 0:
- for i in range(max(0, px -1), min(5, px + 2)):
+ for i in range(max(0, px - 1), min(5, px + 2)):
locations_to_rotate.append((i, py - 1))
if px < 4:
locations_to_rotate.append((px + 1, py))
if py < 4:
- for i in reversed(range(max(0, px -1), min(5, px + 2))):
+ for i in reversed(range(max(0, px - 1), min(5, px + 2))):
locations_to_rotate.append((i, py + 1))
if px > 0:
if ROTATION[direction] == ROTATION.CLOCKWISE:
new_positions = locations_to_rotate[1:] + [locations_to_rotate[0]]
elif ROTATION[direction] == ROTATION.ANTICLOCKWISE:
- new_positions = [locations_to_rotate[-1]] + locations_to_rotate[:-1]
+ new_positions = (
+ [locations_to_rotate[-1]] + locations_to_rotate[:-1])
for old, new in zip(locations_to_rotate, new_positions):
rotated_locations[old] = self.board_locations[new]
def export(self):
return {
- 'bitwise_operand': self.bitwise_operand,
+ 'bitwise_operand': sorted(self.bitwise_operand),
'actions': [action.export() for action in self.actions],
}