bot_example.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/python3
  2. """
  3. Competitive tetris bot example
  4. """
  5. import time
  6. import random
  7. import zmq
  8. import flatbuffers
  9. import wire_protocol.Command
  10. import wire_protocol.CommandRequest
  11. import wire_protocol.CommandResponse
  12. import wire_protocol.CommandResponseError
  13. def main():
  14. context = zmq.Context()
  15. socket = context.socket(zmq.REQ)
  16. res = socket.connect("tcp://localhost:5555")
  17. print(f"connected: {res}")
  18. while True:
  19. builder = flatbuffers.Builder()
  20. wire_protocol.CommandRequest.Start(builder)
  21. wire_protocol.CommandRequest.AddCommand(
  22. builder,
  23. random.choice([
  24. wire_protocol.Command.Command.ShiftLeft,
  25. wire_protocol.Command.Command.ShiftRight,
  26. wire_protocol.Command.Command.Rotate,
  27. wire_protocol.Command.Command.Land,
  28. ]))
  29. req = wire_protocol.CommandRequest.End(builder)
  30. builder.Finish(req)
  31. socket.send(builder.Output())
  32. rsp_buf = socket.recv()
  33. rsp = wire_protocol.CommandResponse.CommandResponse.GetRootAs(rsp_buf)
  34. time.sleep(0.24)
  35. if __name__ == "__main__":
  36. main()