This is my move tracker:
def thueMorse(n: int) -> int:
return bin(n).count('1')%2
thueMorse_move = 0
move_number_to_thueMorse_move = ""
thueMorse_sequence = ""
for i in range(10000):
if (i%2 == thueMorse(thueMorse_move)):
if i%2:
thueMorse_sequence += 'W'
move_number_to_thueMorse_move += "W"
else:
thueMorse_sequence += "B"
move_number_to_thueMorse_move += "B"
thueMorse_move += 1
else:
move_number_to_thueMorse_move += "_"
def on_move(msg):
game_id = msg["game_id"]
move_number = msg["move_number"]
game = active_games.get(game_id, None)
move_numbers[game_id] = move_number
if game is None:
return
# Thue-Morse
if "Thue-Morse" in game["name"] and game["handicap"] == 0:
is_black = (game["black"] == player_id)
is_white = (game["white"] == player_id)
if (is_black and (move_number % 2 == 0)) or (is_white and (move_number % 2 == 1)):
if move_number_to_thueMorse_move[move_number] == "_":
game_pass(game_id)
if move_number % 10 == 0:
game_chat(game_id, "next 30 moves: " + move_number_to_thueMorse_move[move_number:move_number + 30],
move_number)