player.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from enum import Enum
  2. from command import Option
  3. import json
  4. import jsonpickle
  5. class Color(str, Enum):
  6. RED = "red"
  7. BLUE = "blue"
  8. YELLOW = "yellow"
  9. GREEN = "green"
  10. def __getstate__(self):
  11. return "hallo"
  12. def __setstate__(state):
  13. return Color(state)
  14. class Player(object):
  15. def __init__(self, color = None, name = None):
  16. self.color = color
  17. self.name = name
  18. self.hand = []
  19. self.options = []
  20. self.message = "Even wachten"
  21. self.selectedCard = None
  22. self.cardIsChanged = False
  23. def checkOption(self, option):
  24. foundOption = any(option.command == o.command and o.checkArgs(option) for o in self.options)
  25. if not foundOption:
  26. self.message = f"{option.text} is niet toegestaan. " + self.message
  27. return foundOption
  28. class DogEncoder(json.JSONEncoder):
  29. def default(self, obj):
  30. if hasattr(obj, '__dict__'):
  31. return obj.__dict__
  32. return json.JSONEncoder.default(self, obj)
  33. if __name__ == "__main__":
  34. player = Player(Color.BLUE, "Groen")
  35. player.options = [Option("newgame", None, "text")]
  36. print(player)
  37. print(player.__dict__)
  38. print(json.dumps(player, cls=DogEncoder))
  39. #print(json.dumps(player))
  40. print(jsonpickle.encode(player))