gpt4 book ai didi

java - JAVAFX 骰子的最后值

转载 作者:行者123 更新时间:2023-11-30 06:12:02 25 4
gpt4 key购买 nike

我通常不会访问此类网站,但我遇到了一个严重的菜鸟问题,并且无法真正找到如何解决此问题。

所以我有一个简单的骰子,当你按下按钮时它就会滚动。它在控制台中打印出所有骰子数字。现在我想保存最后一个 int,这样我就可以用它进行计算等。现在的问题是我严重不知道如何获取骰子的最后一个整数并将其在控制台中打印出来。有谁有这方面的经验并且可以帮助我吗?这是我的代码:

btn.setText("Roll Die");
btn.setOnAction((ActionEvent event) -> {
btn.setDisable(true);//Disable Button
Random random = new Random();
int gekozen = Integer.parseInt(tf3.getText());

Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(.3), (actionEvent) -> {
int tempRandom = random.nextInt(6) + 1;
System.out.println(tempRandom);
die.setDieFace(tempRandom);

}));

timeline.setCycleCount(random.nextInt(20) + 1);
timeline.play();
timeline.setOnFinished(actionEvent -> {
btn.setDisable(false);//Enable Button

});


});

最佳答案

最好的选择是将值存储在某个地方。您的 Die 类(或 die 所属的任何类)似乎是一个很好的候选者。在设计良好的类中,如果将值传递给 set 方法,例如 setXyz(x),然后调用 getXyz(),则不会对同一对象进行任何操作同时,将返回相同的值x。因此,如果您按照标准 Java 模式设计了类,那么您可以这样做

timeline.setCycleCount(random.nextInt(20) + 1);
timeline.play();
timeline.setOnFinished(actionEvent -> {
btn.setDisable(false);//Enable Button
int dieValue = die.getDieFace();
System.out.println(dieValue);
});

另一种选择是提前计算所有临时骰子值:

btn.setText("Roll Die");
btn.setOnAction((ActionEvent event) -> {
btn.setDisable(true);//Disable Button
Random random = new Random();
int gekozen = Integer.parseInt(tf3.getText());

int numTempValues = random.nextInt(20) + 1 ;
int[] tempValues = random.ints(1, 7).limit(numTempValues).toArray();
int finalDieValue = tempValues[numTempValues - 1];
Timeline timeline = new Timeline() ;
for (int i = 0 ; i < tempValues.length ; i++) {
KeyFrame keyFrame = new KeyFrame(Duration.seconds(0.3).multiply(i+1), actionEvent -> {
System.out.println(tempValues[i]);
die.setDieFace(tempValues[i]);
});
timeline.getKeyFrames().add(keyFrame);
}

timeline.setOnFinished(actionEvent -> {
btn.setDisable(false);//Enable Button
System.out.println("You rolled: "+finalDieValue);
});

timeline.play();


});

关于java - JAVAFX 骰子的最后值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50030597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com