diff --git a/AI_brain/rotate_and_go_astar.py b/AI_brain/rotate_and_go_aStar.py similarity index 100% rename from AI_brain/rotate_and_go_astar.py rename to AI_brain/rotate_and_go_aStar.py diff --git a/config.ini b/config.ini index 87d6bac..e5d9dcf 100644 --- a/config.ini +++ b/config.ini @@ -1,4 +1,7 @@ [APP] cat = False movement = robot -#accept: human, robot \ No newline at end of file +#accept: human, robot + +[CONSTANT] +NumberOfBananas = 20 \ No newline at end of file diff --git a/decisionTree/decisionTree.jpg b/decisionTree/decisionTree.jpg new file mode 100644 index 0000000..adac6da Binary files /dev/null and b/decisionTree/decisionTree.jpg differ diff --git a/decisionTree/itemDescription.txt b/decisionTree/itemDescription.txt new file mode 100644 index 0000000..b45fcb6 --- /dev/null +++ b/decisionTree/itemDescription.txt @@ -0,0 +1,29 @@ +2-10 opakowania po cukierkach +11-18 kałuże zwierząt +19-28 odpady zwierzęce +29-36 skarpetka +37-44 kolczyk +45 telefon +46-48 banan +49-57 zabawki +58-61 kot +62-65 pies +66-79 kable +80-91 włosy +92-100 szkło +101-108 ołówki +109-113 chomik +114-122 baterie +123-128 resztki owoców +129-140 etykiety +141-149 bransoletki +150-158 opakowania od jedzenia +159-167 książki +168-177 papierki +178-179 pielucha dziecięca +180,181 pokrywka +182,183 wazon +184,185 karm +186,187 dziecko +188,189 pieniądze +190-198 kapcie \ No newline at end of file diff --git a/domain/commands/vacuum_move_command.py b/domain/commands/vacuum_move_command.py index 258b0da..7cbb760 100644 --- a/domain/commands/vacuum_move_command.py +++ b/domain/commands/vacuum_move_command.py @@ -24,7 +24,7 @@ class VacuumMoveCommand(Command): tmp = self.world.is_garbage_at(end_x, end_y) if len(tmp) > 0: for t in tmp: - if self.vacuum.get_container_filling() < 1000: + if self.vacuum.get_container_filling() < 100: self.vacuum.increase_container_filling() self.world.dust[end_x][end_y].remove(t) diff --git a/domain/entities/cat.py b/domain/entities/cat.py index fb7901a..d4dc220 100644 --- a/domain/entities/cat.py +++ b/domain/entities/cat.py @@ -13,5 +13,5 @@ class Cat(Entity): self.busy = False self.sleeping = False self.direction = 0 - - self.props = [4,2,20,0,1,32,37,5] \ No newline at end of file + + self.properties = [4, 2, 20, 0, 1, 32, 37, 5] diff --git a/domain/entities/earring.py b/domain/entities/earring.py index 03256c0..fbfb783 100644 --- a/domain/entities/earring.py +++ b/domain/entities/earring.py @@ -5,4 +5,4 @@ from domain.world import World class Earring(Entity): def __init__(self, x: int, y: int): super().__init__(x, y, "EARRING") - self.props = [1,9,0,1,0,1,20,0] \ No newline at end of file + self.properties = [1, 9, 0, 1, 0, 1, 20, 0] diff --git a/domain/entities/garbage.py b/domain/entities/garbage.py index f451dd1..f5b3833 100644 --- a/domain/entities/garbage.py +++ b/domain/entities/garbage.py @@ -6,6 +6,6 @@ class Garbage(Entity): super().__init__(x, y, "PEEL") self.wet = False self.size = 0 - self.props = [2,2,0,0,1,4,24,1] + self.properties = [2, 2, 0, 0, 1, 4, 24, 1] # TODO GARBAGE: add more properties diff --git a/domain/entities/vacuum.py b/domain/entities/vacuum.py index 8e01c4d..b34d8c0 100644 --- a/domain/entities/vacuum.py +++ b/domain/entities/vacuum.py @@ -11,7 +11,7 @@ class Vacuum(Entity): self.container_filling = 0 def increase_container_filling(self) -> None: - self.container_filling += 25 + self.container_filling += 5 def dump_trash(self) -> None: self.container_filling = 0 diff --git a/domain/world.py b/domain/world.py index fd72812..d3a7e8a 100644 --- a/domain/world.py +++ b/domain/world.py @@ -4,7 +4,7 @@ from domain.entities.entity import Entity class World: def __init__(self, width: int, height: int) -> object: - self.costs = [[1000 for j in range(height)] for i in range(width)] + self.costs = [[1 for j in range(height)] for i in range(width)] self.width = width self.height = height self.dust = [[[] for j in range(height)] for i in range(width)] @@ -35,7 +35,7 @@ class World: def is_garbage_at(self, x: int, y: int): if len(self.dust[x][y]) == 0: return [] - return [i for i in self.dust[x][y] if evaluate([i.props])[0] == 1] + return [i for i in self.dust[x][y] if evaluate([i.properties])[0] == 1] def is_docking_station_at(self, x: int, y: int) -> bool: return bool(self.doc_station.x == x and self.doc_station.y == y) @@ -53,5 +53,6 @@ class World: return False return True + def get_cost(self, x, y): - return self.costs[x][y] \ No newline at end of file + return self.costs[x][y] diff --git a/main.py b/main.py index 03e2830..2b75c16 100644 --- a/main.py +++ b/main.py @@ -13,9 +13,10 @@ from domain.entities.earring import Earring from domain.entities.docking_station import Doc_Station from domain.world import World from view.renderer import Renderer + # from AI_brain.movement import GoAnyDirectionBFS, State # from AI_brain.rotate_and_go_bfs import RotateAndGoBFS, State -from AI_brain.rotate_and_go_astar import RotateAndGoAStar, State +from AI_brain.rotate_and_go_aStar import RotateAndGoAStar, State config = configparser.ConfigParser() @@ -97,12 +98,20 @@ class Main: def handle_action2(self, action): if action == "GO": self.commands.append( - VacuumMoveCommand(self.world, self.world.vacuum, self.world.vacuum.direction) + VacuumMoveCommand( + self.world, self.world.vacuum, self.world.vacuum.direction + ) ) elif action == "RR": - self.world.vacuum.direction = (-self.world.vacuum.direction[1], self.world.vacuum.direction[0]) + self.world.vacuum.direction = ( + -self.world.vacuum.direction[1], + self.world.vacuum.direction[0], + ) elif action == "RL": - self.world.vacuum.direction = (self.world.vacuum.direction[1], -self.world.vacuum.direction[0]) + self.world.vacuum.direction = ( + self.world.vacuum.direction[1], + -self.world.vacuum.direction[0], + ) def process_input(self): for event in pygame.event.get(): @@ -136,7 +145,7 @@ class Main: def generate_world(tiles_x: int, tiles_y: int) -> World: world = World(tiles_x, tiles_y) - for _ in range(35): + for _ in range(config.getint("CONSTANT", "NumberOfBananas")): temp_x = randint(0, tiles_x - 1) temp_y = randint(0, tiles_y - 1) world.add_entity(Garbage(temp_x, temp_y)) @@ -153,7 +162,6 @@ def generate_world(tiles_x: int, tiles_y: int) -> World: world.add_entity(Earring(9, 7)) world.add_entity(Earring(5, 5)) world.add_entity(Earring(4, 6)) - for x in range(world.width): for y in range(world.height): @@ -163,6 +171,7 @@ def generate_world(tiles_x: int, tiles_y: int) -> World: world.costs[x][y] = 10 return world + if __name__ == "__main__": app = Main() if config["APP"]["movement"] == "human":