microfix
This commit is contained in:
parent
7b661c34c1
commit
f7597b2695
3
app.py
3
app.py
@ -53,6 +53,8 @@ def initBoard():
|
|||||||
cells[9][9].waga = 2
|
cells[9][9].waga = 2
|
||||||
cells[9][8].waga = 10
|
cells[9][8].waga = 10
|
||||||
cells[8][8].waga = 10
|
cells[8][8].waga = 10
|
||||||
|
cells[prefs.SPAWN_POINT[0]+1][prefs.SPAWN_POINT[1]].waga = 100
|
||||||
|
cells[prefs.SPAWN_POINT[0]][prefs.SPAWN_POINT[1]-1].waga = 100
|
||||||
|
|
||||||
cells[9][7].waga = 2
|
cells[9][7].waga = 2
|
||||||
cells[10][6].waga = 2
|
cells[10][6].waga = 2
|
||||||
@ -66,6 +68,7 @@ def draw_grid(window, cells, agent):
|
|||||||
pygame.draw.rect(window, cell.color, (i*prefs.CELL_SIZE, j*prefs.CELL_SIZE, prefs.CELL_SIZE, prefs.CELL_SIZE))
|
pygame.draw.rect(window, cell.color, (i*prefs.CELL_SIZE, j*prefs.CELL_SIZE, prefs.CELL_SIZE, prefs.CELL_SIZE))
|
||||||
if(cells[i][j].interactableItem):
|
if(cells[i][j].interactableItem):
|
||||||
cells[i][j].interactableItem.update(window)
|
cells[i][j].interactableItem.update(window)
|
||||||
|
if(not cells[i][j].blocking_movement):
|
||||||
cells[i][j].blit_text(cells[i][j].waga, i*50+6, j*52+6, 12,window)
|
cells[i][j].blit_text(cells[i][j].waga, i*50+6, j*52+6, 12,window)
|
||||||
font = pygame.font.SysFont('Comic Sans MS', 30)
|
font = pygame.font.SysFont('Comic Sans MS', 30)
|
||||||
scoreText = font.render("Score: {}".format(str(round(agent.score,2))), 1, (0, 0, 0))
|
scoreText = font.render("Score: {}".format(str(round(agent.score,2))), 1, (0, 0, 0))
|
||||||
|
@ -213,6 +213,8 @@ class Agent:
|
|||||||
|
|
||||||
return possible_moves
|
return possible_moves
|
||||||
|
|
||||||
|
def calculate_priority(self, el):
|
||||||
|
return el[0]
|
||||||
|
|
||||||
def bfs2(self, target_x, target_y):
|
def bfs2(self, target_x, target_y):
|
||||||
visited = set()
|
visited = set()
|
||||||
@ -221,8 +223,8 @@ class Agent:
|
|||||||
#print(start_state)
|
#print(start_state)
|
||||||
queue = []
|
queue = []
|
||||||
heapq.heappush(queue, (0,(start_state, [], 0)))
|
heapq.heappush(queue, (0,(start_state, [], 0)))
|
||||||
|
|
||||||
while queue:
|
while queue:
|
||||||
|
queue.sort(key=self.calculate_priority)
|
||||||
_, que = heapq.heappop(queue)
|
_, que = heapq.heappop(queue)
|
||||||
state, actions, gscore = que
|
state, actions, gscore = que
|
||||||
self.xPOM, self.yPOM, self.directionPOM = state
|
self.xPOM, self.yPOM, self.directionPOM = state
|
||||||
@ -256,9 +258,15 @@ class Agent:
|
|||||||
if 0 <= new_x < prefs.GRID_SIZE and 0 <= new_y < prefs.GRID_SIZE \
|
if 0 <= new_x < prefs.GRID_SIZE and 0 <= new_y < prefs.GRID_SIZE \
|
||||||
and not self.cells[new_x][new_y].blocking_movement:
|
and not self.cells[new_x][new_y].blocking_movement:
|
||||||
new_state = (new_x, new_y, new_direction)
|
new_state = (new_x, new_y, new_direction)
|
||||||
f_score = gscore + self.heuristic((new_x,new_y), (target_x,target_y))
|
|
||||||
|
if (action == 'left' or action == 'right') :
|
||||||
|
gscore = gscore + 1
|
||||||
|
else:
|
||||||
gscore = gscore + self.cells[new_x][new_y].waga
|
gscore = gscore + self.cells[new_x][new_y].waga
|
||||||
heapq.heappush(queue, (f_score, (new_state, new_actions, gscore+1)))
|
|
||||||
|
f_score = gscore + self.heuristic((new_x,new_y), (target_x,target_y))
|
||||||
|
|
||||||
|
heapq.heappush(queue, (f_score, (new_state, new_actions, gscore)))
|
||||||
|
|
||||||
|
|
||||||
return []
|
return []
|
||||||
|
Loading…
Reference in New Issue
Block a user