Я пишу игру «Висельник» с помощью javaFX, но каким-то образом код предполагает, что все мои догадки неверны, и всегда считается ошибкой, даже если они верны. Таким образом, пользователь всегда проигрывает. Я думаю, это как-то связано с циклом while, который я использую, чтобы убедиться, что вся избыточность любой буквы устранена (например, в «банане», если пользователь вводит «а», текущий прогресс должен отображаться как «-а-а-а» вместо "-a----"), но я не знаю: вот мой класс контроллера, а также слово, если вам нужны другие классы, дайте мне знать!
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;
import javafx.scene.text.Text;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.List;
public class Controller {
//inject an element defined in fxml to controller!
@FXML
//pane is a form container
private Pane man;
@FXML
private Pane base1;
@FXML
private Pane base2;
@FXML
private Pane base3;
@FXML
private Pane pole;
@FXML
private Pane rod;
@FXML
private Pane rope1;
@FXML
private Pane rope2;
@FXML
private Text text;
@FXML
private Pane buttons;
@FXML
private Text winStatus;
@FXML
private Text realWord;
private int mistakes;
private int correct;
private String[] table;
private String word;
private String category;
private List myLetters;
private List answer;
public Controller(){
}
public void initialize() {
base1.setVisible(false);
base2.setVisible(false);
base3.setVisible(false);
pole.setVisible(false);
rod.setVisible(false);
rope1.setVisible(false);
rope2.setVisible(false);
man.setVisible(false);
buttons.setDisable(false);
mistakes=0;
correct=0;
table = Words.getRandomWord(2);
word=table[1];
category=table[0];
myLetters = Arrays.asList(word.split(""));
answer = Arrays.asList(new String[myLetters.size()*2]);
for(int i=0; i
Подробнее здесь: https://stackoverflow.com/questions/784 ... nt-show-up