bot.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env python3
  2. import time
  3. from strategy import State, moves_to_keys
  4. from interaction import get_exapunks_window, focus_window, \
  5. screenshot_board, press_keys
  6. if __name__ == '__main__':
  7. win = get_exapunks_window()
  8. focus_window(win)
  9. prev_score = None
  10. while True:
  11. board = screenshot_board(win)
  12. try:
  13. state = State.detect(board)
  14. except (TypeError, AssertionError):
  15. print('error during parsing, wait for a bit')
  16. time.sleep(.1)
  17. continue
  18. print('\033c', end='')
  19. print('parsed:')
  20. state.print()
  21. print()
  22. start = time.time()
  23. moves = state.solve()
  24. end = time.time()
  25. print('thought for %.4f seconds' % (end - start))
  26. if moves:
  27. print('moves:', moves_to_keys(moves))
  28. points, newstate = state.simulate(moves)
  29. score = newstate.score(points, moves, state)
  30. print(' score:', score)
  31. print('prev score:', prev_score)
  32. empty_points, empty_state = state.simulate(())
  33. print(' () score:', empty_state.score(empty_points, (), state))
  34. print()
  35. prev_score = score
  36. print('target after moves:')
  37. newstate.print()
  38. print()
  39. press_keys(win, moves_to_keys(moves))
  40. else:
  41. print('no moves')