帮我用java开发一个小游戏,要求是 练习阶段: (1)出示指导语。“屏幕中央将会出现一个向上或者向下的三角形,如果三角形向上,请用食指按J键;如果三角形向下,不要按键;请尽可能在三角形消失前且又快又准地做出反应。按空格键继续。 (2)首先呈现注视点(即白色十字)100-300ms。 (3)然后在屏幕中央呈现一个向上或者向下的三角形,呈现500ms。如果三角形向上,被试用食指按N键为正确反应;如果三角形向下,被试不按键为正确反应。每个试次都有正确或错误的反馈。箭头向上或向下各随机呈现20个试次。 (4)呈现注视点(即白色十字)1700-1900ms。 (5)反馈按键结果(反馈字体为红色)。当箭头向上时,如果按键反应时为0-100ms或按其他键(Y),反馈“错”;如果按键反应时在100-500ms之间反馈“对”;如果按键反应时大于500ms或者不按键,反馈“慢”。当箭头向下时,如果按键反馈“错”;如果不按键反馈“对”。
时间: 2023-11-28 12:49:16 浏览: 30
好的,我可以为您提供一个简单的Java代码来实现这个小游戏。以下是代码:
```java
import java.util.Random;
import java.util.Scanner;
public class ReactionTimeGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
System.out.println("屏幕中央将会出现一个向上或者向下的三角形,如果三角形向上,请用食指按J键;如果三角形向下,不要按键;请尽可能在三角形消失前且又快又准地做出反应。按空格键继续。");
scanner.nextLine();
int correctUp = 0;
int correctDown = 0;
int wrongUp = 0;
int slowUp = 0;
int wrongDown = 0;
int totalTrials = 40;
for (int i = 1; i <= totalTrials; i++) {
// Show fixation point
System.out.println("+");
waitTime(random.nextInt(200) + 100);
// Show triangle
boolean isUp = random.nextBoolean();
if (isUp) {
System.out.println("/\\");
} else {
System.out.println("\\/");
}
long startTime = System.currentTimeMillis();
// Get user input
String input = scanner.nextLine();
long reactionTime = System.currentTimeMillis() - startTime;
// Determine if input is correct
if (isUp) {
if (input.equalsIgnoreCase("J") && reactionTime >= 100 && reactionTime <= 500) {
System.out.println("对");
correctUp++;
} else if (input.equalsIgnoreCase("J") && reactionTime < 100 || !input.equalsIgnoreCase("J")) {
System.out.println("错");
wrongUp++;
} else {
System.out.println("慢");
slowUp++;
}
} else {
if (input.isEmpty()) {
System.out.println("对");
correctDown++;
} else {
System.out.println("错");
wrongDown++;
}
}
// Show fixation point
waitTime(random.nextInt(200) + 1700);
System.out.println("+");
}
// Show results
System.out.println("上箭头:");
System.out.println("正确:" + correctUp + " 错误:" + wrongUp + " 慢:" + slowUp);
System.out.println("下箭头:");
System.out.println("正确:" + correctDown + " 错误:" + wrongDown);
scanner.close();
}
private static void waitTime(int milliseconds) {
try {
Thread.sleep(milliseconds);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
代码使用了Java的Scanner和Random类来读取用户输入和生成随机数。首先,程序会提示用户按下空格键来开始游戏。然后,程序会循环40个试次,每次试次包括一个注视点、一个三角形、用户的反应和一个反馈点。根据用户的反应和箭头的方向,程序会给出相应的反馈。最后,程序会显示用户的游戏结果,包括正确、错误和慢的反应次数。