import pygame import project_constants as const import json_generator as js import json # Class of our agent, initialization of it # movment functions (those defiend by the 'go_' prefix are not meant to actually move our agent, they just return some values # that are later used by another function called 'is_valid_move' (which is defined in Minefield)); class Agent: def __init__(self, json_path): with open(json_path) as json_data: data = json.load(json_data) self.row, self.column = data['agent_starting_position'].split(",") self.position = [int(self.row), int(self.column)] #self.direction = const.Direction() self.direction = 0 def rotate_left (self): self.direction = self.direction.previous() def rotate_right(self): self.direction = self.direction.next() def go(self): if (self.direction == const.Direction.RIGHT ): temp = go_right() self.position[1] = temp[1] elif (self.direction == const.Direction.LEFT ): temp = go_left() self.position[1] = temp[1] elif (self.direction == const.Direction.UP): temp = go_up() self.position[0] = temp[0] elif (self.direction == const.Direction.DOWN): temp = temp = go_down() self.position[0] = temp[0] def go_right(self): return self.position[0], self.position[1] + 1 def go_left(self): return self.position[0], self.position[1] - 1 def go_up(self): return self.position[0] - 1, self.position[1] def go_down(self): return self.position[0] + 1, self.position[1]