私はスイングでカードゲームをやっています (java)
ユーザーは自分の順番を待って、カードを取り、確認を押す必要があります。自分の番ではないとき、彼はカードを取ることができません。
次のように始まります。
this.cardTaken = false;
board.canTakeCards(!cardTaken);
次に、ボードクラスで次のアクションが発生します。
public void canTakeCards(boolean can) {
if (can) {
this.btnConfirm.setEnabled(false);
this.pnlCards.setCanTake(true);
} else {
this.btnConfirm.setEnabled(true);
this.pnlCards.setCanTake(false);
}
(これはelse
、ユーザーがカードを取ったときに発生します)。
そう。Comparison method violates its general contract
アットラインを取得しましたboard.canTakeCards(!cardTaken);
それは 1 回だけで、私は自分のゲームを約 8 回「テスト」しました。私はこれについて本当に混乱し、恐れています。
私の理論の 1 つは、コードの 2 つの異なる部分から同時にこの関数を呼び出し、同時に and を受け取るというtrue
ものfalse
です。しかし、コードを修正しましたが、それは不可能だと思います。
何かアドバイス?ありがとう