From 7e61c611168702b0337979d970a851bbe3149f83 Mon Sep 17 00:00:00 2001 From: piowyg Date: Sun, 25 Apr 2021 21:32:43 +0200 Subject: [PATCH] improving a_star algorithm --- images/Tiles/mud_01.png | Bin 32268 -> 16061 bytes images/Tiles/mud_02.png | Bin 38744 -> 17270 bytes src/const.py | 3 ++ src/environment.py | 2 +- src/image.py | 4 ++- src/main.py | 5 +++ src/search_algoritms/BFS.py | 4 +-- src/search_algoritms/a_star.py | 41 ++++++++++++++++----- src/search_algoritms/helpers.py | 62 ++++++++++++++++++++++++++++++-- src/tile.py | 3 +- src/tilesFactory.py | 6 ++-- 11 files changed, 110 insertions(+), 20 deletions(-) diff --git a/images/Tiles/mud_01.png b/images/Tiles/mud_01.png index dab08669c54a6dafb5927e19861eb7db96fc9879..3405aad425b097c8f5efb1844d83a055f50acc5d 100644 GIT binary patch literal 16061 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 diff --git a/images/Tiles/mud_02.png b/images/Tiles/mud_02.png index c2d6ba605ac783a22280e1d42b13962495a55aac..a31d75d9487730b3726a3225e3d52398a803ee16 100644 GIT binary patch literal 17270 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

p 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

PSkq0j(OlOsR3(SK(dLN@Q`)4nKWO!AZt zeE9kP+pkac`>^b)p;9EZD;ae#d&99P1VEoM;Gcp)ieQ6Miw2ZhlthRD@nTg}P19Z~ zZ9uuVt>?oL8}yGSME*iTg7b2vX?C~U4$UVa3TF+QM5Aet-NPmcGl+iu$9QB-hk_f<6_}oHxyDKLWJ z&zo+a3t?GKw?1s*bfQKGkeyWromt%$RZhIhOHsJruzFyyOw+DEOpPoV+s0TkwFCQRxyJMNEPhT<8EO!1MQTduM(6$3r61Z(oWEsgx0o zuA8@5npQhXb&%O>J@wlZE@wq7TU)5X3|JENor52p3-h%c`KHf_K%5;Y5N`@PnA6>5 zu`v?_uJ`;)aPwkq+vw|#f>ikMJv41YCCBi{kKaylge6EtGPy3wiEUQ2y$AjduXS14}APNCl@1?r9L|m-k`T1G? zW>!MA3EGnPbk{qSo;_bNeu=_GqtdZRMpSDhc^GP4EY^}0bXZyWW=CThwL4}l=86l-SB zKO!nG=$oBMnm|P)FA6-cI6b^6e`2iwJOA^~KfU^6kYKP0QSp*=vWT2lPlD?*JrQh2 z{V)P+UO1M|rk7GxH>Iw#S%p@e04E^|!m1Jkm7KX73%;tnPpJxM#pxJSXby|%rT)Gy z$*6G)aK+p0S4RP+X=Ty+JDLW}1+D@K7VLs~hUnk4kirLBrez9$#&MSV+4Oa+mEokZ z5*N^4=b}RS7zDS%lU$egpxP$HtdVgGIea|@sA>+=WMY=bXeS0~4<0R3#pt~KDVA$w zc@_l{#661E+|G2E^62ktxX6<-#bGs2?4l_bwu%l^XzxT+BSALSmHxH|m>AhtRhon_ zvKQds$wUfaj%!YZsU7ZR9&W!lIW&1oE#b>ENG{e1mqmH10!#K6$q+`^H**mn)Udj+& zVB}6^gy<}25GMh$Vj^C->}*XnChna2S}|~;b_ElgYYBqRWU;r9drw$~yS1JFw*T}0 zey_6FjC#k#z`Iuyy)85z_k zG&)xADWZd>=NmPn*6uI3ID^qfL+bP(b%%qsH!~jHQ2>x;3POegn~T+zt`6LY3vm{l z^7L4rxHaj4$37)1PTx_vh%hjY(^BHjVKh0P%mBzpsv=pEf zZB#LaGH|Vj+}@d77^f%y@a**raLx(h*_$8vzn}nx*-q0T-jrpwb}i^kG8;==(jabgMJ|>X3!?`WGSk8G6$M4 z^+cxNp?uF9`JfxMmXsi$S=ECBerC#NfrWxBNLYOLu%+py(zj{a_% z=O?@y&*J+C3$KL6^d17Ae}hLT{ar%tjC5Q)K}+O|UxDF&s{DUGyh zeo_ZN_U_|74v~d1Hr0hbteY^MB??f{MyP|+RWk7kx@Vk&wUJ{@j=|CiFy$k!P<_&Z z*ECJ@^G_cipPoY>ZIA8P8`n`?+^e~1q-jcCgY9Cq;gBi~SO5c~Oup@G7(=-asL91b z*H@Oabms0A+iV&~^1O-pWpqtGYPOAvqFr05(YKX-=AC$S?hWh6m9LdofvhY*q?uW; z;(4toev4G|p01OBhh+2+nr5eD_kGp*lnN}b zA&px(=ByFGu$uupPYh=2$xmMM-d9S?AB=-&?&a9Fck*JItOp$srm5Esj39{?f^VGH zSNl4=d#kr>6}*YOh6kiws$r}};dndaxMH;WCszQ=GJpByXAr8>$qT|T3<4ZQKul|W zcZTj{9 Y0SVBSl$~w!r2qf`07*qoM6N<$g7 List[List[Tile]]: tiles_factory = TilesFactory() tiles_list = tiles_factory.get_tiles_list() - return [choices(tiles_list, weights=[10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4], k=10) for _ in range(10)] + return [choices(tiles_list, weights=[10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4,2,2], k=12) for _ in range(12)] class Environment: diff --git a/src/image.py b/src/image.py index 3ff81a7..7e8eaff 100644 --- a/src/image.py +++ b/src/image.py @@ -1,10 +1,12 @@ +import string from typing import Union from pygame import image class Image: - def __init__(self, parent: int, img: image, mine_type: Union[str, None]): + def __init__(self, parent: int, name: string, img: image, mine_type: Union[str, None]): self.parent = parent self.img = img self.mine_type = mine_type + self.name = name diff --git a/src/main.py b/src/main.py index c909d9f..f555f21 100644 --- a/src/main.py +++ b/src/main.py @@ -1,3 +1,5 @@ +from typing import Tuple + import pygame as pg from agent import Agent @@ -5,6 +7,7 @@ from game_ui import GameUi from const import ICON, IMAGES from environment import Environment from search_algoritms.BFS import breadth_first_search +from src.search_algoritms.a_star import a_star, nearest_bomb from tilesFactory import TilesFactory @@ -64,6 +67,8 @@ def main(): while env.mine_count: print('-'*20) path, actions = breadth_first_search(env.field, agent.x, agent.y, agent.direction) + #xd: Tuple[int,int] = Tuple[agent.x, agent.y] + # path, actions = a_star(env.field, agent.x, agent.y, agent.direction, nearest_bomb((agent.x, agent.y), env.field)) if not path and not env.field[agent.y][agent.x].mine: print('Unable to find path, rocks are in the way') break diff --git a/src/search_algoritms/BFS.py b/src/search_algoritms/BFS.py index e899e09..f3e6b94 100644 --- a/src/search_algoritms/BFS.py +++ b/src/search_algoritms/BFS.py @@ -1,8 +1,8 @@ import queue from typing import List -from node import Node -from tile import Tile +from src.node import Node +from src.tile import Tile from .helpers import successor, get_path_actions diff --git a/src/search_algoritms/a_star.py b/src/search_algoritms/a_star.py index b972fc4..59b231f 100644 --- a/src/search_algoritms/a_star.py +++ b/src/search_algoritms/a_star.py @@ -1,14 +1,15 @@ from typing import List, Tuple from operator import itemgetter -from node import Node -from tile import Tile -from .helpers import successor, get_path_actions +from src.node import Node +from src.tile import Tile +from .helpers import successor, get_path_actions, calculate_priority +from ..mine import Mine def a_star(field: List[List[Tile]], start_x: int, start_y: int, start_direction: int, goal: Tuple[int, int]): explored = [] - node_queue: List[Tuple[int, Node]] = [(1, Node(start_x, start_y, start_direction))] + node_queue: List[Tuple[int, Node]] = [(field[start_x][start_y].weight, Node(start_x, start_y, start_direction))] # do kolejki dodawać krotke (priorytet, obiekt) while node_queue: @@ -21,14 +22,36 @@ def a_star(field: List[List[Tile]], start_x: int, start_y: int, start_direction: explored.append(node) for x, y, direction, action in successor(field, node.x, node.y, node.direction): neighbour_node = Node(x, y, direction, node, action) - neighbour_priority = calculate_priority(node, goal) + neighbour_priority = calculate_priority(field, node, goal) if neighbour_node not in explored and all(neighbour_node not in queue_tuple for queue_tuple in node_queue): node_queue.append((neighbour_priority, neighbour_node)) node_queue = sorted(node_queue, key=itemgetter(0)) elif (index := [ - index for index, queue_tuple in enumerate(node_queue) if neighbour_priority > queue_tuple[0] - ][0]): - node_queue[index] = (neighbour_priority, neighbour_node) + index for index, queue_tuple in enumerate(node_queue) if neighbour_priority > queue_tuple[0] and neighbour_node == queue_tuple[1] + ]): + print(index) + node_queue[index[0]] = (neighbour_priority, neighbour_node) node_queue = sorted(node_queue, key=itemgetter(0)) - return False, False \ No newline at end of file + return False, False + + +def heuristic(a: Tuple[int, int], b: Tuple[int, int]): + (x1,y1) = a + (x2,y2) = b + return abs(x1 - x2) + abs(y1 - y2) + + +def nearest_bomb(a: Tuple[int, int],field: List[List[Tile]]): + min = 20 + min_x = 0 + min_y = 0 + for x in range(10): + for y in range(10): + if issubclass(Mine,field[x][y].mine.__class__): + distance = abs(a[0] - x) + abs(a[1] - y) + if distance < min: + min = distance + min_x = x + min_y = y + return (min_x, min_y) \ No newline at end of file diff --git a/src/search_algoritms/helpers.py b/src/search_algoritms/helpers.py index 1229b33..f4a701f 100644 --- a/src/search_algoritms/helpers.py +++ b/src/search_algoritms/helpers.py @@ -1,9 +1,31 @@ -from typing import List +from typing import List, Tuple import pygame as pg -from tile import Tile -from node import Node +from src.node import Node +from src.tile import Tile + + +def successor(field: List[List[Tile]], x: int, y: int, direction: int): + """ + kody klawiszy: + :a -> 97 + :d -> 100 + :w -> 119 + """ + neighbours = [] + coord = 'x' if direction in (1, 3) else 'y' + shift = -1 if direction in (0, 3) else 1 + + neighbours.append((x, y, (direction - 1) % 4, pg.K_a)) + neighbours.append((x, y, (direction + 1) % 4, pg.K_d)) + + if coord == 'x' and 0 <= x + shift <= 9 and field[y][x + shift].number not in (2, 3): + neighbours.append((x + shift, y, direction, pg.K_w)) + elif coord == 'y' and 0 <= y + shift <= 9 and field[y + shift][x].number not in (2, 3): + neighbours.append((x, y + shift, direction, pg.K_w)) + + return neighbours def successor(field: List[List[Tile]], x: int, y: int, direction: int): @@ -36,3 +58,37 @@ def get_path_actions(node: Node): actions.append(node.action) node = node.parent return path[::-1], actions[::-1] + + +def successor_priority(field: List[List[Tile]], x: int, y: int, direction: int): + """ + kody klawiszy: + :a -> 97 + :d -> 100 + :w -> 119 + """ + neighbours = [] + coord = 'x' if direction in (1, 3) else 'y' + shift = -1 if direction in (0, 3) else 1 + + neighbours.append((x, y, (direction - 1) % 4, pg.K_a)) + neighbours.append((x, y, (direction + 1) % 4, pg.K_d)) + + if coord == 'x' and 0 <= x + shift <= 9 and field[y][x + shift].number not in (2, 3): + neighbours.append((x + shift, y, direction, pg.K_w)) + elif coord == 'y' and 0 <= y + shift <= 9 and field[y + shift][x].number not in (2, 3): + neighbours.append((x, y + shift, direction, pg.K_w)) + + return neighbours + + +def cost(field: List[List[Tile]], node): + return field[node.x][node.y].weight + + +def calculate_priority(field: List[List[Tile]], node, goaltest: Tuple[int, int]): + return cost(field, node) + heuristic(node, goaltest) + + +def heuristic(a, b): + return abs(a.x - b[0]) + abs(a.y - b[1]) diff --git a/src/tile.py b/src/tile.py index 075a468..e2205ef 100644 --- a/src/tile.py +++ b/src/tile.py @@ -5,6 +5,7 @@ from at_mine import ATMine class Tile: - def __init__(self, number: int, mine: Union[None, APMine, ATMine] = None): + def __init__(self, number: int,weight: int, mine: Union[None, APMine, ATMine] = None): self.number = number self.mine = mine + self.weight = weight diff --git a/src/tilesFactory.py b/src/tilesFactory.py index d995653..b7b6eb0 100644 --- a/src/tilesFactory.py +++ b/src/tilesFactory.py @@ -10,9 +10,9 @@ class TilesFactory: img = IMAGES[number] if img.mine_type: module = import_module(f'{img.mine_type.lower()}_mine') - return Tile(number, getattr(module, f'{img.mine_type}Mine')) + return Tile(number, 1, getattr(module, f'{img.mine_type}Mine')) else: - return Tile(number, None) + return Tile(number, 1, None) if img.name.find('grass') else Tile(number,3, None) def get_tiles_list(self) -> List[Tile]: - return [self.create_tile(i) for i in range(11)] + return [self.create_tile(i) for i in range(13)]