Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. import search
  2.  
  3. class CannibalAsi(search.Problem):
  4. def actions(self, state):
  5. actions = []
  6.  
  7. #if (state["vasak"]["m"] + state["vasak"]["c"]) > 0:
  8. if (state["vasak"]["c"] - 2) <= state["vasak"]["m"]):
  9. if ((state["parem"]["c"] + 2) <= state["parem"]["m"] or state["parem"]["m"] == 0):
  10. #action on list(cannVasak, missVasak, cannParem, missParem)
  11. actions.append(list(-2, 0, 2, 0))
  12. if ((state["parem"]["m"] + 2) >= state["parem"]["c"]):
  13. actions.append(list(0, -2, 0, 2))
  14.  
  15. if (state["vasak"]["c"] - 1) <= state["vasak"]["m"]):
  16. if ((state["parem"]["c"] + 1) <= state["parem"]["m"] or state["parem"]["m"] == 0):
  17. actions.append(list(-1, 0, 1, 0))
  18. if ((state["parem"]["m"] + 1) >= state["parem"]["c"]):
  19. actions.append(list(0, -1, 0, 1))
  20.  
  21. return actions
  22.  
  23. def result(self, state, action):
  24. state["vasak"]["c"] += action[0]
  25. state["vasak"]["m"] += action[1]
  26. state["parem"]["c"] += action[2]
  27. state["parem"]["m"] += action[3]
  28. print(state)
  29. return state
  30.  
  31. def goal_test(self, state):
  32. if state["parem"]["m"] == 3 and state["parem"]["c"] == 3:
  33. return True
  34. else:
  35. return False
  36.  
  37. inistate = {
  38. "vasak": {"m": 3, "c": 3},
  39. "parem": {"m": 0, "c": 0}
  40. }
  41. problem = CannibalAsi(inistate)
  42. asi = search.breadth_first_search(problem)
  43. print(asi)
  44. print(asi.solution())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement