バグフィックス
朝です。2025年11月13日、02:07(AM)。
6人のプレイヤー(5人のボットと私)がゲームに参加している状況でバグに遭遇しました。(私と2人のボットが残り、)3人のプレイヤーがゲームに残っていました。私はプレイヤー番号4でした。また、1人の影響力が残っているプレイヤー番号3と、1人の影響力が残っているプレイヤー番号6がいたので、流れは次のようになりました。私は7コインを持っていて、プレイヤー番号1を「クー」して彼の最後の影響力を消滅させました。次に、プレイヤー番号6のターンで、彼は「税金」を主張しましたが、私はその行動に異議を唱えました。(これにより、私はプレイヤー番号6の後の次のプレイヤーであるプレイヤー番号3の決定を中断しました。)しかし、プレイヤー番号6の「税金」行動への私の異議申し立てが成功したにもかかわらず、彼が失った最後の影響力は「公爵」であったため、プレイヤー番号3(ボット)がフリーズしました。私は、プレイヤー番号3がフリーズしたのは、私が彼の行動を中断したからであると考えます。そこで、私はその理由を調べるためにコードを見て、ログを確認して、私の異議申し立てが成功したにもかかわらず、プレイヤー番号6が「税金」を主張したときに「公爵」を持っていたことを確認する必要があります。そのゲームのログは、ここにあります。 ファイル。 そして、ゲームの状態のスクリーンショットは次のようになります:
そして、ちょうど今、私はその状況を調査して解決することができましたが、約88分かかりました。まず、私が行った異議申し立ては、プレイヤー番号6が私が彼に異議を唱える前にすでに死んだ「公爵」を持っていたため、正常に処理されました。ログからそれが明らかになりました。ただし、ボットのフリーズ問題は、STEALアクションを利用可能なアクションから適切にフィルタリングしていないバグのあるロジックのため発生しました。なぜなら、STEALアクションが実行できるプレイヤーとして、0より大きいコインを持つ死んだプレイヤーを考慮していたからです。そこで、私はその問題を修正しました:ここ。 そして、この状況をカバーするユニットテストを書きました:ここ。
このプロジェクトに参加してくださり、ご協力ありがとうございます。
皇帝は私たちを守ってくださいます。