Advertisement
lllumineux

Untitled

Nov 30th, 2020
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. class Element:
  2. def __str__(self):
  3. return self.__class__.__name__
  4.  
  5. def __add__(self, other):
  6. key = tuple(sorted((str(self), str(other))))
  7. if key in transformation_table:
  8. return type(transformation_table[key], (Element, ), {})
  9. return None
  10.  
  11.  
  12. class Water(Element):
  13. pass
  14.  
  15.  
  16. class Air(Element):
  17. pass
  18.  
  19.  
  20. class Fire(Element):
  21. pass
  22.  
  23.  
  24. # key-tuple's strings should be sorted in alphabetical order
  25. transformation_table = {
  26. ("Air", "Water"): "Storm",
  27. ("Fire", "Water"): "Vapor",
  28. ("Dirt", "Water"): "Mud",
  29. ("Air", "Fire"): "Lightning",
  30. ("Air", "Dirt"): "Dust",
  31. ("Dirt", "Fire"): "Lava",
  32. }
  33.  
  34. print(Water() + Air())
  35.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement