Je fais un jeu de cartes en balançoire (java)La méthode de comparaison enfreint son contrat général. Simple comparaison
L'utilisateur doit attendre son tour, prendre une carte et appuyer sur confirmer. Quand ce n'est pas son tour, il ne peut prendre aucune carte.
Il commence ainsi:
this.cardTaken = false;
board.canTakeCards(!cardTaken);
Puis, en classe bord, il vient l'action suivante:
public void canTakeCards(boolean can) {
if (can) {
this.btnConfirm.setEnabled(false);
this.pnlCards.setCanTake(true);
} else {
this.btnConfirm.setEnabled(true);
this.pnlCards.setCanTake(false);
}
(le else
se produit lorsque l'utilisateur prend une carte).
Donc. J'ai obtenu le à la ligne board.canTakeCards(!cardTaken);
Cela ne s'est produit qu'une seule fois et j'ai "testé" mon jeu pendant environ 8 fois. Je suis vraiment confus et j'ai peur de ça. Une de mes théories est que j'appelle cette fonction de 2 parties différentes du code à la même heure d'exécution, et il reçoit un true
et false
en même temps. Mais j'ai révisé mon code et je pense que c'est impossible.
Un conseil? Merci
Je suppose que vous avez besoin de poster du code pertinent comme où appelez-vous 'board.canTakeCards (! CardTaken);'. – NINCOMPOOP
Votre code affiche aucune comparaison. Pouvez-vous nous donner les détails intérieurs de 'canTakeCards'? Quels objets personnalisés sont impliqués ici? – Howard
Vous avez "reçu" le message? Qui vous l'a donné? IDE? Compilateur? Runtime? Est-ce une exception? –