From 7324fc47d9b220871e7e66782e6a050868c43d7d Mon Sep 17 00:00:00 2001 From: Makrellka Date: Thu, 28 Apr 2022 14:03:53 +0200 Subject: [PATCH] pudlles implementation without weights --- GameModel.py | 12 ++++++++++-- PatchType.py | 1 + data/GameConstants.py | 4 +++- img/puddle.png | Bin 0 -> 11706 bytes main.py | 7 ++++++- util/PathDefinitions.py | 1 + 6 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 img/puddle.png diff --git a/GameModel.py b/GameModel.py index 6f42f20..1630c8c 100644 --- a/GameModel.py +++ b/GameModel.py @@ -17,7 +17,7 @@ from util.PathDefinitions import GridLocation, GridWithWeights class GameModel(Model): - def __init__(self, width, height, graph: GridWithWeights): + def __init__(self, width, height, graph: GridWithWeights, graph2: GridWithWeights): # self.num_agents = 5 self.running = True self.grid = MultiGrid(height, width, True) @@ -33,7 +33,8 @@ class GameModel(Model): self.game_constants = GameConstants( width, height, - graph.walls + graph.walls, + graph2.puddles ) # Add the agent to a random grid cell @@ -53,6 +54,7 @@ class GameModel(Model): self.place_patch_agents() self.place_walls_agents(graph.walls) + self.place_puddles(graph2.puddles) actions = pathFinder.getActionList() print("PATHFINDING") @@ -81,6 +83,12 @@ class GameModel(Model): self.agents.append(agent) self.grid.place_agent(agent, w) + def place_puddles(self, puddles: List[GridLocation]): + for p in puddles: + agent = PatchAgent(self, PatchType.diffTerrain) + self.agents.append(agent) + self.grid.place_agent(agent, p) + def step(self): self.schedule.step() diff --git a/PatchType.py b/PatchType.py index 3b1bf71..283857a 100644 --- a/PatchType.py +++ b/PatchType.py @@ -6,3 +6,4 @@ class PatchType(enum.Enum): pickUp = 2 item = 3 wall = 4 + diffTerrain = 5 diff --git a/data/GameConstants.py b/data/GameConstants.py index c22f08f..a54b75e 100644 --- a/data/GameConstants.py +++ b/data/GameConstants.py @@ -12,7 +12,8 @@ class GameConstants: # delivery_pos: GridLocation, # order_pos: GridLocation, # special_positions: Dict[ItemType, GridLocation], - walls: [GridLocation] + walls: [GridLocation], + puddles: [GridLocation] ): self.grid_width = grid_width self.grid_height = grid_height @@ -20,3 +21,4 @@ class GameConstants: # self.order_pos = order_pos # self.special_positions = special_positions self.walls = walls + self.puddles = puddles diff --git a/img/puddle.png b/img/puddle.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a5484d4cd3f3dc580db71da18f5f35b7765cb8 GIT binary patch literal 11706 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�HMh9}#BFah+mc;^h4BErrw5&-qwnbQH#v zUWv19(iHkYUVrSfZI|k2^tF7;xvRL``diU=%8QdtFBsBMR%8z3`J`N1ZaoTxENco3^>J#V_}PXsuH!-fCm4w5Xq>vEq97zTpW$f2ljrO|gx< zA}{V@>Sh+DHT_t&HB(HqxIM5Ia*B6K7N3g3tD5B48e^Jj2XhCGq|XX9O(#U9wJ;6K z7!#e%a(hdjlv>ONlqTm#me`b<=m$NYMA&703r!dG1W>+wv=|I%UN?`Xg<0S4|0H#U zlA)C!!?gc8vJkJrrQis+>U~Wic(dXd!>G&5sN%g7_o1k%WP1}+lvhEyo6eHkNPH*? z2(1D@mT5A?*22u2p+%I!K{V)`z?M$LFY;riE{HQyO92r*63m**6#*AwT^|fwd1X49 zVQv-FE=)ixArL-TN_-LHYu|HLJmXTFS@p_=)bk>j-^q#tYq6{4BdR`|lAeCYZS|M7 zQ}{8Iy4M|bQj`R&96Kt~PAD+Z-@rd?1~#eEBV%6BWnFRzOw~<&sp(O74zIx^K)UAl zP)Xgz@7vTPlJR@IN{UoV%CP^@D`^*-9&ohACdosQ?zvf$dal$A|6^#;6u%igqYlp6 zgCx=%#>x|=wgg>W%?JRvy`4_uT^OV-;5>kMsV(8TQs$(v?76V_-7jxyji&FdwllwB zXA0j!>qXrAt{_o&laeMOY>}qU_l3I8!$`R`(p*@8rapw9S{}b8`K-^H3&m?5i!kx1 zusQl$AUM!uw4asPkS+dLNw?P~t-3OG*Oz4ztQ=0R@wkr6IaK8w58_V^9iKXq<)kQf zy&juw-)tE8>A^B3!-q2WAbFENuhA_^ALOZW bool: (x, y) = id