/*----------- Ex8_5.java Typing Game ------------*/ package jp_bunkyo; import java.util.Scanner; import java.util.Random; public class Ex8_5 { public static void main(String[] args) { Random rnd = new Random(); Scanner stdin = new Scanner(System.in); String msg = "abcdefghijklmnopqrstuvwxyz", ans, que; char flg = 'y'; int i; System.out.println("-------------"); System.out.println(" Typing Game "); System.out.println("-------------"); while ( flg == 'y' ) { // flg が 'y' である限り繰り返し que = ""; // 問題文 que 初期化 for (i = 0; i < rnd.nextInt(5)+15; i++) { que += msg.charAt( rnd.nextInt( msg.length() ) ); } System.out.println(" Q: " + que); // 問題文表示 System.out.print("\n A: "); // ユーザーにタイピングを促す ans = stdin.nextLine(); // ユーザーが入力した1行を取得し,ansに代入 // 正解判定 if ( que.length() != ans.length() ) { // 長さが違えば不正解 System.out.println("--- ぶっぶー。間違いだよ ---"); return; } for (i = 0; i < ans.length(); i++) { // 1文字ずつ「問題文」と「ユーザー入力文字」を照合 if ( que.charAt(i) != ans.charAt(i) ) { // 1文字でも違えば不正解 System.out.println("--- ぶっぶー。間違いだよ ---"); return; } } System.out.println(" 正解!やるね "); // 上記どちらの判定も通ったら正解なのでメッセージ表示 System.out.print(" もう一度やりますか? (y / n) > "); flg = stdin.nextLine().charAt(0); } System.out.println("さよなら。また来てね"); } }