ランダムな1~100の数字の中から、プレイヤーが指定した値とそこから+-の範囲を選択して範囲を絞っていき、
最終的にピンポイントでランダムな数字を当てるゲームを作っています。
ゲーム自体はほぼ出来たのですが、プレイヤーが続けるを選択した時に、もう一度ランダムな値を生成し直して最初からゲームを繰り返す方法がわかりません。
特にMath.randomを繰り返し処理の中に入れるとゲームの最中に値が変わってしまうなど、困っております。
どなたか先輩エンジニアの方、教えて頂けると助かります。
import lib.Input; public class Rader2 { public static void main(String[] args) { System.out.println("ターゲットとして1~100のうちの1つの数が設定されています。"); System.out.println("探索する位置と範囲を入力してターゲットを見つけてください。"); System.out.println("ターゲットと探索位置の差が探索範囲内であればヒットです。"); System.out.println("探索範囲より大きければはずれです"); System.out.println("探索位置とターゲットが一致すれば終了です"); system.out.println("") System.out.println("ゲーム開始"); System.out.println("ターゲットが設定されました"); int position = 0; //1~100の間で指定した値を入れる変数 int range = 0; //指定した値から+-の値を入れる変数 int number = 0; //指定と範囲を何回繰り返したかカウントする変数 int choice = 0; //もう一度ゲームをやるか決める変数 int target = (1 + (int)(Math.random() * 100)); //1~100の間でランダムで数字を決める do { position = Input.getInt("位置を入力してください"); //1~100の中で指定する値を代入 range = Input.getInt("範囲を入力してください"); //指定した値から+-いくつの値まで調べるか代入 if((target >= position - range) && (target <= position + range)) { //範囲の中にランダムな値があるか判定 System.out.println("ヒットしました"); number++; //繰り返すごとに回数をカウント }else { System.out.println("はずれです"); number++; } }while(target != position); //ランダムな値と指定した値が一緒ならwhileを抜ける System.out.println("おめでとうございます!" + number + "回目で成功です"); choice = Input.getInt("もう一度やりますか?(はい=1 : いいえ=2)"); //もう一度やるか選択 if(choice == 1) { System.out.println("ターゲットが設定されました"); //ここでランダムな値を入れなおしてゲームを繰り返したい } } }
回答2件
あなたの回答
tips
プレビュー