javafx记忆力测试代码及解释
时间: 2023-08-10 14:09:36 浏览: 94
以下是一个简单的 JavaFX 记忆力测试的示例代码,它使用了一个简单的网格布局和一些按钮来测试用户的记忆力:
```java
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class MemoryGame extends Application {
private int numButtons = 6;
private Button[] buttons = new Button[numButtons];
private int[] buttonValues = {1,2,3,4,5,6};
private boolean[] buttonStates = new boolean[numButtons];
@Override
public void start(Stage primaryStage) throws Exception {
GridPane grid = new GridPane();
grid.setPadding(new Insets(10, 10, 10, 10));
grid.setVgap(10);
grid.setHgap(10);
// Add buttons to the grid
for (int i = 0; i < numButtons; i++) {
Button button = new Button("?");
button.setPrefSize(50, 50);
final int index = i;
button.setOnAction(event -> {
button.setText(String.valueOf(buttonValues[index]));
buttonStates[index] = true;
checkWin();
});
grid.add(button, i % 3, i / 3);
buttons[i] = button;
}
Scene scene = new Scene(grid, 200, 200);
primaryStage.setScene(scene);
primaryStage.show();
// Show the values for a few seconds, then hide them again
showValues();
}
private void showValues() {
for (int i = 0; i < numButtons; i++) {
buttons[i].setText(String.valueOf(buttonValues[i]));
buttonStates[i] = false;
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i < numButtons; i++) {
buttons[i].setText("?");
buttonStates[i] = false;
}
}
private void checkWin() {
boolean allTrue = true;
for (boolean state : buttonStates) {
if (!state) {
allTrue = false;
break;
}
}
if (allTrue) {
System.out.println("You win!");
}
}
public static void main(String[] args) {
launch(args);
}
}
```
这个示例代码实现了一个简单的记忆力测试,用户需要在一定时间内记住被隐藏的数字,并在显示时点击正确的按钮。程序首先使用一个网格布局和按钮数组来创建一个 3x2 的按钮网格。每个按钮都可以显示一个数字,并且在点击时会显示其对应的数字。如果用户成功地记住了所有数字并点击了正确的按钮,则游戏结束。
在 `showValues()` 方法中,程序会将所有的按钮显示为其对应的数字,并设置相应的按钮状态为 `false`。然后程序会等待两秒钟,再将所有按钮的文本设置为 "?",并将所有按钮状态设置为 `false`。
在 `checkWin()` 方法中,程序会检查所有按钮是否都被点击过,如果是,则游戏结束。
这个简单的记忆力测试程序只是一个示例,你可以根据自己的需求来实现更复杂的记忆力测试游戏。
阅读全文