私は、プログラムが一度に1つの数字のシーケンスを表示する推測ゲームを作ろうとしています。リストからランダムに生成されたシーケンスがありますが、リストの値を1つずつ表示することができませんでした。バインドを使ってラベルを変更したいのですが、動作させることができません。ラベルの値をリストから変更します。
public class Tutorial extends Application {
Stage window;
Scene scene1, scene2;
Label label;
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
//Scene 1
Label welcome = new Label("Welcome to the Guessing Game. Press Start to Enter");
Button start = new Button("Start");
VBox firstlayout = new VBox(10);
firstlayout.getChildren().addAll(welcome, start);
firstlayout.setAlignment(Pos.CENTER);
start.setOnAction(e -> window.setScene(scene2));
scene1 = new Scene(firstlayout, 450, 300);
window.setScene(scene1);
ArrayList<Integer> guessList = numbergen();
Label label = new Label(Integer.toString(getValues(guessList)));
label.setStyle("-fx-text-fill: red; -fx-padding: 10px; -fx-font-size: 50px");
FadeTransition fader = createFader(label);
SequentialTransition Fader = new SequentialTransition(
label,
fader
);
StackPane layout = new StackPane();
layout.getChildren().addAll(label);
scene2 = new Scene(layout, 250, 300);
Fader.play();
window.setTitle("Program Close");
window.setScene(scene1);
window.show();
}
private FadeTransition createFader(Node node) {
FadeTransition fade = new FadeTransition(Duration.seconds(5), node);
fade.setFromValue(1);
fade.setToValue(0);
return fade;
}
public ArrayList<Integer> numbergen(){
ArrayList<Integer> numb = new ArrayList<Integer>();
Random rand = new Random();
for(int i = 0; i<4; i++){
int n = rand.nextInt(5) + 1;
numb.add(n);
}
return numb;
}
public boolean result(ArrayList<Integer> solnList, ArrayList<Integer> guessList){
if(solnList.size() != guessList.size()){
return false;
}else{
for(int i = 0; i<solnList.size(); i++){
if(solnList.get(i) != guessList.get(i)){
return false;
}
}
return true;
}
}
public int getValues(ArrayList<Integer> list){
for(int i = 0; i<list.size(); i++){
return list.get(i);
}
return 0;
}
}
なぜシーケンスリストを作成するのはなぜですか?必要なときに新しい乱数を生成して使用するのはなぜですか? – jewelsea
必要なときに乱数をどのように生成すればよいですか?私はJavaでかなり新しいので、これは私をたくさん混乱させています。 –
現在乱数を生成しているのと同じ方法です。 'rand.nextInt(5)+ 1'を呼び出しますが、必要なときにだけ行います。私はそれがいつあるかわからない、あなたはそれを決定しなければならないだろう。 Javaの初心者である私のアドバイスは、UIの作成やバインディングの使用から始めるのではなく、最初にJavaを学び、基本的なJavaに習熟した後で初めてUIを作成しようとします。あなたの数を推測するゲームでは、コアエンジンとオブジェクトをjunitテストコードを使ってプレーンJavaに書き込んで検証します。エンジンが動作しているときは、コマンドラインコンソールベースのインターフェイスを追加します。 – jewelsea