Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Element:
- def __str__(self):
- return self.__class__.__name__
- def __add__(self, other):
- key = type(self), type(other)
- if key in TRANSFORMATIONS_TABLE:
- return TRANSFORMATIONS_TABLE[key]()
- key = type(other), type(self)
- if key in TRANSFORMATIONS_TABLE:
- return TRANSFORMATIONS_TABLE[key]()
- class Water(Element):
- pass
- class Air(Element):
- pass
- class Fire(Element):
- pass
- class Dirt(Element):
- pass
- class Storm(Element):
- pass
- class Vapor(Element):
- pass
- class Mud(Element):
- pass
- class Lightning(Element):
- pass
- class Dust(Element):
- pass
- class Lava(Element):
- pass
- TRANSFORMATIONS_TABLE = {
- (Water, Air): Storm,
- (Water, Fire): Vapor,
- (Water, Dirt): Mud,
- (Air, Fire): Lightning,
- (Air, Dirt): Dust,
- (Fire, Dirt): Lava,
- }
- print(f"{Water()} + {Air()} = {Water() + Air()}")
- print(f"{Water()} + {Fire()} = {Water() + Fire()}")
- print(f"{Water()} + {Dirt()} = {Water() + Dirt()}")
- print(f"{Air()} + {Fire()} = {Air() + Fire()}")
- print(f"{Air()} + {Dirt()} = {Air() + Fire()}")
- print(f"{Fire()} + {Dirt()} = {Fire() + Dirt()}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement