いつもお世話になっております。
開発環境
MacOS:Mojave バージョン10.14.1
Eclipse:Version: Photon Release (4.8.0)
言語:Java
現在、数当てゲームを作成しています。
自分なりの改良としては、
1) ユーザーが回答したあと、ヒントがほしい場合は”y”、いらない場合は”n”を入力して、”y”の場合、入力された数より大きいか小さいかを教えてくれる
2) ユーザーが"q"を入力したら、ゲームを終了する
この2つを加えようとしています。
Java
1import java.util.Random; 2import java.util.Scanner; 3 4public class Lottery { 5 public static void main(String[] args) { 6 // TODO 自動生成されたメソッド・スタブ 7 Scanner kb = new Scanner(System.in); 8 9 Random random = new Random(); 10 11 int ans = random.nextInt(101); 12 int count = 0; 13 int userAns = 0; 14 15 System.out.println("0~100の数字を入力してください"); 16 17 18 String str = new java.util.Scanner(System.in).next(); 19 while(!str.equals("q")) { 20 //String str = new java.util.Scanner(System.in).next();s 21 System.out.printf("%d> ", count + 1); 22 int getNumberInput = kb.nextInt(); 23 userAns = getNumberInput; 24 25 System.out.printf("\t%d ..... ", userAns); 26 if (ans == userAns) { 27 System.out.println("YOU WIN!"); 28 System.out.println("You took " + count + "tries"); 29 break; 30 } else if (ans < userAns) { 31 32 System.out.println("違います! ヒントがほしいですか?y|n"); 33 String yes = "y"; 34 String yn = kb.next(); 35 36 if (yes.equals(yn)) { 37 38 System.out.println("答えより大きいです"); 39 } else { 40 41 System.out.println("数字を入力してください"); 42 } 43 } else { 44 45 System.out.println("違います! ヒントがほしいですか?y|n"); 46 String yes = "y"; 47 String yn = kb.next(); 48 if (yes.equals(yn)) { 49 50 System.out.println("答えより小さいです"); 51 } else { 52 53 System.out.println("数字を入力してください"); 54 } 55 } 56 count++; 57 str = new java.util.Scanner(System.in).next(); 58 } 59 if (ans != userAns) { 60 System.out.println("Game Over! The correct answer is " + ans + " actually!! "); 61 System.out.println("You took " + count + " tries"); 62 } 63 64 } 65} 66 67
この赤い部分で囲まれたところは数字を入力しないと次の処理に移ってくれないのですが、どのような解決策がありますか?
おそらく、緑色の部分で囲まれたところが数字でも機能することから、y|nで答えるところと数字で答えるところがダブっているので、コンピューターに正しく命令できていないのだと予想して、解決に努めています。
同じような問題に直面した経験がある方、解決策をご存知の方、ぜひご教授をお願いいたします。
回答2件
あなたの回答
tips
プレビュー