Исправление ошибки
Утро. 02:07(AM), 13 ноября 2025 года.
Я столкнулся с ошибкой в ситуации, когда в игре было 6 игроков (5 ботов и я). 3 игрока остались в игре (я и 2 бота). Я был игроком номер 4, также был игрок 3 с одним влиянием и игрок 6 с одним влиянием. Итак, поток был таким - у меня было 7 монет, и я "СОУП" игрока номер 1, убив его последнее влияние. Затем была очередь игрока 6, и он заявил "НАЛОГ", я оспорил его действие (и это означает, что я прервал решение, принятое игроком 3, потому что игрок 3 был следующим игроком после игрока 6), затем КАЖЕТСЯ, даже если мой вызов действия "НАЛОГ" игрока 6 был успешным, все равно последнее влияние, которое он потерял, оказалось ДЮКОМ, и игрок 3 (бот) замерз. Я полагаю, что игрок 3 замерз, потому что я прервал его действие, поэтому я должен посмотреть на код, почему это произошло, но также мне нужно посмотреть на журналы, чтобы увидеть, каким-то образом мой вызов прошел успешно, даже если игрок 6 имел дюка, заявляя "НАЛОГ". Журнал этой игры находится здесь, если вас интересует файл. И скриншот состояния игры выглядит так:
И только что я смог исследовать и понять эту ситуацию, которая заняла около 88 минут. Во-первых, вызов, который я выполнил, был обработан правильно, потому что игрок 6 имел мертвого ДЮКА до того, как я его оспорил, и он должен был раскрыть контессу. Это стало очевидным из журналов. Но проблема с замерзшим ботом произошла из-за ошибочной логики, которая не правильно фильтровала действие "ВОР" из доступных действий, потому что она считала мертвых игроков, которые имели больше нуля монет, игроками, против которых можно было выполнить действие "ВОР", и я исправил эту проблему здесь и написал юнит-тест, который покрывает эту ситуацию здесь.
Мои большое спасибо за ваше время и участие в этом проекте.
Император защищает.