/*-------------------- Ex10_2.java Typing 意味あり文章版 ---------------------*/ package jp_bunkyo; import java.util.Scanner; import java.util.Random; public class Ex10_2 { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); Random rnd = new Random(); int sel, i, num; String que = "", ans = ""; String msg0 = "東京特許許可局"; String msg1 = "隣の客はよく柿食う客だ"; String msg2 = "生麦生米生卵"; String msg3 = "赤巻紙青巻紙黄巻紙"; String msg4 = "隣の竹に竹立てかけた。竹立てかけたら竹掛け替えた"; String msg5 = "一富士二鷹三茄子"; String msg6 = "文教大学情報学部経営情報学科"; String msg7 = "タイピングって難しいよね!?"; String msg8 = "土曜日に授業なんてやってられっかー!"; num = 0; // 正解数の初期化 while ( true ) { // タイピングが正しい限り繰り返し sel = rnd.nextInt(9); // 0,1,..,6の乱数を生成 switch ( sel ) { // 生成された乱数に応じて問題文を選択,queに代入 case 0: que = msg0; break; case 1: que = msg1; break; case 2: que = msg2; break; case 3: que = msg3; break; case 4: que = msg4; break; case 5: que = msg5; break; case 6: que = msg6; break; case 7: que = msg7; break; case 8: que = msg8; break; default: break; } System.out.println(" Q: " + que); // 問題文:que を表示 System.out.print(" A: "); // 回答を促す ans = stdin.nextLine(); // ユーザーの回答を取得 if ( que.length() != ans.length() ) { // 正解判定1:文字数をチェック System.out.println("ぶっぶー。タイピングミス。。。正解数は " + num + " でした。"); return; } for (i = 0; i < ans.length(); i++) { // 正解判定2:文字照合 if ( que.charAt(i) != ans.charAt(i) ) { System.out.println("ぶっぶー。タイピングミス。。。正解数は " + num + " でした。"); return; } } System.out.println("★正解★"); // 正解判定1&2に合格したら正解なのでメッセージ表示 num++; // 正解数を更新 } } }