1

私はスイングでカードゲームをやっています (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です。しかし、コードを修正しましたが、それは不可能だと思います。

何かアドバイス?ありがとう

4

1 に答える 1