Если ваша программа состоит только из одного потока выполнения, то нет необходимости использовать механизмы синхронизации потоков. Вместо этого можно просто записать логику вашего приложения так, чтобы функция turn1() вызывала startShoot() только после вызова endMove(). Например: ```python def turn1(): startMove() endMove() startShoot() ``` Таким образом, startShoot() будет вызываться только после выполнения endMove(), без каких-либо дополнительных механизмов синхронизации.
1. Сделайте индекс для каждого сделанного хода и печатайте его в консоли
2. После каждого хода добавьте функцию, которая будет выполняться в конце хода
3. Используйте промис, чтобы дождаться окончания конкретного хода
4. Создайте функцию, которая будет вызываться после каждого хода
5. Последовательно вызывайте функции начала хода и стрельбы
6. Создайте функцию для начала хода
7. Создайте функцию для окончания хода
8. Проверьте, есть ли активные ходы перед вызовом функции окончания хода
9. Выведите сообщение об ошибке, если нет активных ходов
10. Создайте функцию для начала стрельбы
11. Вызовите функцию поворота
12. Установите таймер на вызов функции окончания хода
13. Улучшите архитектуру вашего кода, если вы столкнулись с проблемой
14. Прочитайте книги о разработке игр, чтобы получить больше информации