#!/usr/bin/env python3 from board_mate_client import ApiClient, Configuration from controllers.board_mate_controller import ApiController from models.clock import Clock from scripts.timer.grove_rgb_lcd import setRGB, setText import threading import queue import time def get_move(prompt, move_queue): while True: move = input(prompt) move_queue.put(move) if __name__ == "__main__": config = Configuration( host="http://192.168.15.120:8000" ) setRGB(255, 255, 255) controller = ApiController(config) white_name = input("White Name: ") black_name = input("Black Name: ") time_value = int(input("Time value: ")) increment = int(input("Increment: ")) white_clock = Clock(time_value, increment) black_clock = Clock(time_value, increment) print("Creating the party...") game_id = controller.create_party(white_name, black_name, time_value, increment) if game_id is None: print("An error occurred while creating the party. Exiting...") exit() print("Party Created!") currentPlayer = 0 white_clock.start() move_queue = queue.Queue() input_thread = threading.Thread(target=get_move, args=("", move_queue), daemon=True) input_thread.start() while True: setText(f"W {white_clock.clock_to_str()}\n B {black_clock.clock_to_str()}") try: move = move_queue.get_nowait() message = "White to play" if currentPlayer == 0 else "Black to play" controller.add_move(game_id, move) if currentPlayer == 0: currentPlayer = 1 white_clock.start() black_clock.stop() else: currentPlayer = 0 black_clock.start() white_clock.stop() except queue.Empty: pass time.sleep(1)