This commit is contained in:
s464859 2022-04-07 17:51:51 +02:00
parent 077d2b8015
commit 1c7b3f2840
3 changed files with 22 additions and 12 deletions

View File

@ -54,11 +54,11 @@ class AI:
if keys[pygame.K_DOWN]: if keys[pygame.K_DOWN]:
self.saper.move(0) self.saper.move(0)
elif keys[pygame.K_UP]: elif keys[pygame.K_UP]:
self.saper.move(180) self.saper.move()
elif keys[pygame.K_LEFT]: elif keys[pygame.K_LEFT]:
self.saper.move(270) self.saper.rotate("left")
elif keys[pygame.K_RIGHT]: elif keys[pygame.K_RIGHT]:
self.saper.move(90) self.saper.rotate("right")
def chaos_controls(self): def chaos_controls(self):
dir = randrange(4) dir = randrange(4)
@ -75,8 +75,13 @@ class AI:
def way_controls(self): def way_controls(self):
if len(self.the_way)>0: if len(self.the_way)>0:
way = self.the_way.pop(0) way = self.the_way.pop(0)
self.saper.rotate(way) if way=="move":
self.saper.move() self.saper.move()
elif way=="left" or way=="right":
self.saper.rotate(way)
else:
self.saper.rotate(way)
self.saper.move()
elif len(self.current_map.mines)!=0: elif len(self.current_map.mines)!=0:
self.bfs() self.bfs()

View File

@ -14,9 +14,9 @@ class BFS:
def successor(self, current_position): def successor(self, current_position):
new_nodes = [] new_nodes = []
neighbours_list = self.agent.sensor(current_position[0], current_position[1]) neighbours_list = self.agent.sensor(current_position[0], current_position[1])
print(neighbours_list[0]) #print(neighbours_list[0])
print(neighbours_list[1]) #print(neighbours_list[1])
print(neighbours_list[2]) #print(neighbours_list[2])
if neighbours_list[1][0] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']: if neighbours_list[1][0] not in ['wall', 'cliff_south', 'cliff_east', 'cliff_north', 'cliff_west']:
@ -60,13 +60,13 @@ class BFS:
#print(f'my parent is {tmp_node[1].get_parent()}') #print(f'my parent is {tmp_node[1].get_parent()}')
tmp_node_position = tmp_node[1].get_position() tmp_node_position = tmp_node[1].get_position()
print(f'Position of our node {tmp_node_position[:2]}') #print(f'Position of our node {tmp_node_position[:2]}')
visited_position.append(tmp_node_position[:2]) visited_position.append(tmp_node_position[:2])
#print(f'visited position: {visited_position}') #print(f'visited position: {visited_position}')
if tmp_node_position[:2] == goaltest: if tmp_node_position[:2] == goaltest:
print(' we find node') #print(' we find node')
# print(visited_position) # print(visited_position)
#print(fringe) #print(fringe)
@ -84,12 +84,12 @@ class BFS:
explored.append(tmp_node) explored.append(tmp_node)
neighbours_list_of_our_node = self.successor(tmp_node_position[:2]) neighbours_list_of_our_node = self.successor(tmp_node_position[:2])
print(neighbours_list_of_our_node) #print(neighbours_list_of_our_node)
for node_ in neighbours_list_of_our_node: for node_ in neighbours_list_of_our_node:
# jesli pozucja wezla nie jest w fringe i nie jest w explored # jesli pozucja wezla nie jest w fringe i nie jest w explored
if [node_[0], node_[1]] not in visited_position and node_[0] >= 0 and node_[1] >=0: if [node_[0], node_[1]] not in visited_position and node_[0] >= 0 and node_[1] >=0:
counter += 1 counter += 1
print([node_[0], node_[1]]) #print([node_[0], node_[1]])
x = node.Node(tmp_node, None, [node_[0], node_[1]]) # action x = node.Node(tmp_node, None, [node_[0], node_[1]]) # action
heapq.heappush(fringe, (counter, x)) heapq.heappush(fringe, (counter, x))
# time.sleep(0.5) # time.sleep(0.5)

View File

@ -272,6 +272,11 @@ class Minesweeper:
dirr=270 dirr=270
elif dir=="E": elif dir=="E":
dirr=90 dirr=90
elif dir=="left":
dirr = (self.rotation_degrees+90) % 360
elif dir=="right":
dirr = (self.rotation_degrees-90) % 360
else: else:
return return