Я строю простую игру из 21. Все идет хорошо, но когда я нажимаю на кнопку, назначенную моей функции «Стенд», ни один из операторов if не блокирует событие, хотя я выполняю условия одна или другая в зависимости от того, какие карты уже были сданы. Я проверил все варианты утверждений, и я хочу иметь некоторое понимание или вторую пару глаз, чтобы увидеть то, чего я не вижу.
Я проверял функцию несколько раз и переписывал ее несколько раз. Я протестировал функцию только с этим оператором, и он все еще не срабатывает.
Это рассматриваемая функция:
//when player hits stand button
public void Stand(TextField playerNum, TextField dealerNum, TilePane b, Button hit, Button stand, Button deal, TextField handsLostNum, TextField handsWonNum) {
//obtain current final scores when player stands
playerFinal = Integer.parseInt(playerNum.getText());
dealerFinal = Integer.parseInt(dealerNum.getText());
if (playerFinal > dealerFinal) {
hit.setVisible(false);
stand.setVisible(false);
deal.setVisible(true);
playerNum.setText("YOU WIN!");
dealerNum.setText("YOU WIN!");
handsWon += 1;
String temp = Integer.toString(handsWon);
handsWonNum.setText(temp);
}
if (dealerFinal > playerFinal) {
hit.setVisible(false);
stand.setVisible(false);
deal.setVisible(true);
playerNum.setText("YOU LOSE!");
dealerNum.setText("YOU LOSE!");
handsLost += 1;
String temp = Integer.toString(handsLost);
handsLostNum.setText(temp);
}
if (dealerFinal == playerFinal) {
playerNum.setText("DRAW! PLAY AGAIN!");
dealerNum.setText("DRAW! PLAY AGAIN!");
hit.setVisible(false);
stand.setVisible(false);
deal.setVisible(true);
}
handsWon = 0;
handsLost = 0;
} //END STAND METHOD
И условие, которое помогает удовлетворить это, здесь:
//method to add scores to text fields
public void addScores(int pScore, int dScore, TextField playerNum, TextField dealerNum) {
//ADD PLAYER SCORE
String playerScore = playerNum.getText();
int playerCurrent = Integer.parseInt(playerScore);
int newCurrent = playerCurrent + dScore;
String newScore = Integer.toString(newCurrent);
playerNum.setText(newScore);
//ADD DEALER SCORE
String dealerScore = dealerNum.getText();
int dealerCurrent = Integer.parseInt(dealerScore);
int newDealCurrent = dealerCurrent + pScore;
String newDealScore = Integer.toString(newDealCurrent);
dealerNum.setText(newDealScore);
}
Я добавляю оценки в текстовые поля, а затем снова их извлекаю в проекте. Тем не менее, даже когда значения соответствуют условиям, превышающим значение оппонента, утверждение не срабатывает.
Ожидаемый результат - когда я нажимаю кнопку «Стенд», оператор запускается, а затем активируется переменная, которая добавляет к общему количеству.