playerVeryGood.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import numpy as np
  2. import playerConfig
  3. from itertools import product
  4. class Player():
  5. def __init__(self):
  6. return
  7. def Step(self,step=0,own_state=[],known_state_opponent=[]):
  8. chaos = 5-step
  9. own_state_array = np.array(own_state)
  10. our_first_card = range((known_state_opponent[0]-chaos) * int(known_state_opponent[0]-chaos >= 0), known_state_opponent[0]+1)
  11. our_second_card = range((known_state_opponent[1]-chaos) * int(known_state_opponent[1]-chaos >= 0), known_state_opponent[1]+1)
  12. our_third_card = range((known_state_opponent[2]-chaos) * int(known_state_opponent[2]-chaos >= 0), known_state_opponent[2]+1)
  13. our_fourth_card = range((known_state_opponent[3]-chaos) * int(known_state_opponent[3]-chaos >= 0), known_state_opponent[3]+1)
  14. result = int(((own_state_array-np.array(known_state_opponent))*playerConfig.Weights).sum() > 0)
  15. itts = 1
  16. for combination in product(our_first_card, our_second_card, our_third_card, our_fourth_card):
  17. result += int(((own_state_array-np.array(combination))*playerConfig.Weights).sum() > 0)
  18. itts += 1
  19. our_prob = (result / itts) * 100
  20. if our_prob > 70:
  21. return playerConfig.ACT
  22. if our_prob < 31:
  23. return playerConfig.PASS
  24. return playerConfig.LOOK