Есть несколько вещей, которые следует учитывать.
Во-первых, это тот случай, когда не осталось ходов.
Для этого после нажатия на пробел выполните проверку каждого пробела и, если все заняты, то предупредите пользователя. Это было бы очень наивным решением, и вы можете оптимизировать его по своему усмотрению (возможно, отслеживать количество ходов, а если количество ходов равно 9, то это ничья.
Также, когда игра закончится, вы можете захотеть установить переменную playing = false
или что-то в этом роде. Затем по клику вы можете проверить эту переменную. Если это неверно, просто вернитесь. Таким образом, когда игра заканчивается, вы больше не можете играть.
Есть много способов реализации этих вещей, это всего лишь предложения для решения проблем, которые у вас возникают.