編写 1、纯字母 -个控制台打字程序,要求可选择以下4种模式,目结束后可以品示打字速度(150字/分)、打字正锦率 (98%),
时间: 2024-02-29 17:53:21 浏览: 64
打字游戏,控制字母下落速度和数目,可选择是否区分大小写
3星 · 编辑精心推荐
好的,以下是一个 Java 控制台打字程序的示例代码,它支持 4 种模式,并可以统计打字速度和打字正确率:
```java
import java.util.Scanner;
public class TypingGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 选择游戏模式
System.out.println("请选择游戏模式:");
System.out.println("1. 纯字母 - 简单");
System.out.println("2. 纯字母 - 中等");
System.out.println("3. 纯字母 - 困难");
System.out.println("4. 纯字母 - 极难");
int mode = scanner.nextInt();
// 根据游戏模式生成随机字符串
String text = generateRandomText(mode);
// 输出随机字符串并开始计时
System.out.println("请在 60 秒内输入以下字符串:");
System.out.println(text);
long startTime = System.currentTimeMillis();
// 读取用户输入并进行比较
String input = scanner.next();
int correctCount = 0;
for (int i = 0; i < text.length(); i++) {
if (i < input.length() && text.charAt(i) == input.charAt(i)) {
correctCount++;
}
}
// 统计打字速度和打字正确率并输出结果
long endTime = System.currentTimeMillis();
double timeElapsed = (endTime - startTime) / 1000.0;
double typingSpeed = input.length() / (timeElapsed / 60);
double typingAccuracy = (double) correctCount / text.length() * 100;
System.out.printf("打字速度:%.2f 字/分\n", typingSpeed);
System.out.printf("打字正确率:%.2f%%\n", typingAccuracy);
}
/**
* 根据游戏模式生成随机字符串
*/
private static String generateRandomText(int mode) {
String[] texts = {
"abcdefghijklmnopqrstuvwxyz",
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()_+{}:\"<>?,./;'[]\\-="
};
int[] lengths = {10, 20, 30, 40};
String text = texts[mode - 1];
int length = lengths[mode - 1];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int index = (int) (Math.random() * text.length());
sb.append(text.charAt(index));
}
return sb.toString();
}
}
```
在这个程序中,我们使用 `Scanner` 类来读取用户输入。首先,我们让用户选择游戏模式,然后根据游戏模式生成随机字符串,并输出它。接着,我们使用 `System.currentTimeMillis()` 函数获取当前时间戳,作为开始计时的时间。然后,我们读取用户输入,并与随机字符串进行比较,统计打字正确的字符数量。最后,我们使用开始计时的时间和结束计时的时间来计算打字速度和打字正确率,并输出结果。
阅读全文