タイピングの速度を計測する。以下のようなタイピングソフトを作成せよ。
[仕様]
10文字のアルファベットをランダムに表示しその通りに入力する。
これを繰り返し、3回成功するまでの時間を計測する。
もし間違えた場合はミスと表示しカウントには含めない。
[実行例1]
dyzgjkxlca dyzgjkxlca [enter] kzhxaqtbzj kzhxaqtbzj [enter] slbwmkadhm slbwmkabbh [enter] ミス qnnoekgdxw qnnoekgdxw [enter] 22840(ms)
import java.util.*;
public class Main {
public static void main(String[] args) {
final int Q_LENGTH=10,CLEAR_COUNT=3;
//char[] chars={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char[] chars=new char[26];
for(int i=0;i<26;i++){
chars[i]=(char)('a'+i);
}
char[] qs=new char[Q_LENGTH];
int correct=0;
Scanner sc=new Scanner(System.in);
long start=System.currentTimeMillis();
while(correct<CLEAR_COUNT){
makeQs(chars,qs);
String qStr=String.valueOf(qs);
System.out.println(qStr);
String input=sc.nextLine();
if(input.equals("q")){
return;
}
if(qStr.equalsIgnoreCase(input)){
correct++;
}else{
System.out.println("ミス");
}
}
long end=System.currentTimeMillis();
System.out.printf("%d(ms)%n", end-start);
}
public static void makeQs(char[] chars,char[] qs){
Random rand=new Random();
for(int i=0;i<qs.length;i++){
qs[i]=chars[rand.nextInt(chars.length)];
}
}
}
コメント