Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. class Sorceleur:
  2. def __init__(self, vie, argent, monstres):
  3. self.vie = vie
  4. self.argent = argent
  5. self.monstres = monstres
  6. self.visites_docteur = [0]*len(monstres)
  7. # à la fin on aura self.visites_docteur[i] = 1 si le sorceleur visite le docteur juste avant le i-eme monstre sinon 0
  8. self.resultat = None
  9.  
  10. def backtracking(self, current):
  11. if self.vie>0:
  12. if current == len(self.monstres):
  13. score = 2*self.vie+self.argent-sum(self.visites_docteur)
  14. if not self.resultat or score>self.resultat[-1] or (score==self.resultat[-1] and self.vie>self.resultat[0]):
  15. self.resultat = self.vie, self.argent, self.visites_docteur[:], score
  16. else:
  17. self.vie -= self.monstres[current][0]
  18. self.argent += self.monstres[current][1]
  19. self.backtracking(current + 1)
  20. self.vie += self.monstres[current][0]
  21. self.argent -= self.monstres[current][1]
  22. if self.argent >= 100 and self.vie<50 and not self.visites_docteur[current]:
  23. self.visites_docteur[current] = 1
  24. self.vie += 30
  25. self.argent -= 100
  26. self.backtracking(current)
  27.  
  28. def voici_mon_plan(self):
  29. self.backtracking(0)
  30. if not self.resultat:
  31. return []
  32. vie, argent, visites, score = self.resultat
  33. plan = self.monstres
  34. long = len(self.monstres)
  35. for i in range(1, long+1):
  36. if visites[-i]:
  37. plan[long-i:long-i] = [(-30, -100)]
  38. return vie, argent, sum(visites), plan
  39.  
  40. def afficher_resultat(self):
  41. infos = self.voici_mon_plan()
  42. if infos:
  43. vie, argent, nb_visites, plan = infos
  44. print(f"On peut tout tuer, avec {vie} points de vie et {argent} orins restants, et {nb_visites} visite(s) "
  45. f"chez le soigneur,avec une journée {plan}")
  46. else:
  47. print("fok")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement