DSTRN

Untitled

Apr 15th, 2021
616
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         for action in Actions.getPossibleActions(config, self.walls):
  2.             # Dodajte stanje sledbenika u successor listu ako je akcija legalna
  3.             # Kod provere da li je trenutna pozicija zid:
  4.             x, y = state[0]
  5.             dx, dy = Actions.directionToVector(action)
  6.             nextx, nexty = int(x + dx), int(y + dy)
  7.             hitsWall = self.walls[nextx][nexty]
  8.  
  9.             if not hitsWall:
  10.                 successors_eaten_capsules = list(eaten_capsules)
  11.                 successors_eaten_food = list(eaten_food)
  12.                 nextState = (nextx, nexty)
  13.  
  14.                 if len(state[1]) == len(self.capsules):  # Da li smo obisli sve kapsule
  15.                     if len(state[2]) == len(self.food_positions) - 1:
  16.                         # Fali nam jos jedno parce hrane za kraj (ono u cosku)
  17.                         if nextState == self.corners[0]:    # Stigli smo do coska
  18.                             successors.append(((nextState, state[1], state[2] + [nextState]), action, 40))
  19.                         else:   # Stigli smo na neko prazno mesto
  20.                             successors.append(((nextState, state[1], state[2]), action, 40))
  21.                     else:  # Fali nam 2 ili 3 parceta hrane
  22.                         if nextState in self.food_positions and nextState not in state[2]:
  23.                             # Pronasli smo hranu koja nije sacuvana u trenutnom stanju
  24.                             if nextState != self.corners[0]:
  25.                                 # Ne smemo uzeti hranu u cosku
  26.                                 successors.append(((nextState, state[1], state[2] + [nextState]), action, 40))
  27.                         else:
  28.                             # Naleteli smo na obicno prazno polje
  29.                             successors.append(((nextState, state[1], state[2]), action, 40))
  30.  
  31.                 else:   # Nismo obisli sve kapsule
  32.                     if len(state[1]) == 0:  # Ako nemamo ni jednu kapsulu, moramo prvo uzeti onu u gornjem desnom cosku
  33.                         if nextState == self.corners[3]:  # Proveravamo da li je novo stanje u gornjem desnom cosku
  34.                             successors.append(((nextState, [self.corners[3]], []), action, 40))
  35.                         else:   # Nismo u gornjem desnom cosku
  36.                             if nextState not in self.food_positions and nextState not in self.capsules:
  37.                                 # Ne smemo pokupiti hranu a ni kapsulu
  38.                                 successors.append(((nextState, [], []), action, 40))
  39.                     else:   # Vec smo pokupili bar jednu kapsulu
  40.                         if nextState in self.capsules and nextState not in state[1]:
  41.                             # Nasli smo novu kapsulu koju nismo posetili pre
  42.                             successors.append(((nextState, state[1] + [nextState], []), action, 40))
  43.                         else:   # Nismo naleteli na kapsulu
  44.                             if nextState not in self.food_positions:
  45.                                 # Ne smemo pokupiti hranu dok ne pokupimo sve kapsule
  46.                                 successors.append(((nextState, state[1], []), action, 40))
  47.  
  48.         self._expanded += 1  # NE MENJATI
  49.         return successors
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×