Removed blocking input

This commit is contained in:
2025-12-15 10:56:57 +01:00
parent fcd6f5a41b
commit 58e19bca64

View File

@@ -4,6 +4,16 @@ from board_mate_client import ApiClient, Configuration
from controllers.board_mate_controller import ApiController from controllers.board_mate_controller import ApiController
from models.clock import Clock from models.clock import Clock
from scripts.timer.grove_rgb_lcd import setRGB, setText 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__": if __name__ == "__main__":
config = Configuration( config = Configuration(
@@ -21,9 +31,8 @@ if __name__ == "__main__":
black_clock = Clock(time_value, increment) black_clock = Clock(time_value, increment)
print("Creating the party...") print("Creating the party...")
game_id = controller.create_party(white_name, black_name, time_value, increment) game_id = controller.create_party(white_name, black_name, time_value, increment)
if game_id is None : if game_id is None:
print("An error occurred while creating the party. Exiting...") print("An error occurred while creating the party. Exiting...")
exit() exit()
@@ -31,17 +40,28 @@ if __name__ == "__main__":
currentPlayer = 0 currentPlayer = 0
white_clock.start() white_clock.start()
move_queue = queue.Queue()
input_thread = threading.Thread(target=get_move, args=("", move_queue), daemon=True)
input_thread.start()
while True: while True:
message = None setText(f"W {white_clock.clock_to_str()}\n B {black_clock.clock_to_str()}")
if currentPlayer == 0 :
message = "White to play" 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 currentPlayer = 1
white_clock.stop() white_clock.start()
else : black_clock.stop()
message = "Black to play" else:
currentPlayer = 0 currentPlayer = 0
black_clock.start() black_clock.start()
white_clock.stop()
except queue.Empty:
pass
move = input(f"{message} : ") time.sleep(1)
setText(f"W ${white_clock.clock_to_str()}\n B ${black_clock.clock_to_str()}")
controller.add_move(game_id, move)