bot.py 1.3 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. moves = state.solve()
  23. if moves:
  24. print('moves:', moves_to_keys(moves))
  25. points, newstate = state.simulate(moves)
  26. score = newstate.score(points, moves, state)
  27. print(' score:', score)
  28. print('prev score:', prev_score)
  29. empty_points, empty_state = state.simulate(())
  30. print(' () score:', empty_state.score(empty_points, (), state))
  31. print()
  32. prev_score = score
  33. print('target after moves:')
  34. newstate.print()
  35. print()
  36. press_keys(win, moves_to_keys(moves))
  37. else:
  38. print('no moves')
  39. press_keys(win, 'l')
  40. time.sleep(.1)