dポイントプレゼントキャンペーン実施中!

javaで数字当てゲーム作りたいです。
ここまで出来ています。

しかし、もう一度やりますか?というオプションで、yと入力すればもう一回、 nと入力すれば終わるようにしたいです。

それから、最後に何回ゲームを遊んだか、トータルで数字を何回予想したか、という情報も出力したいです。
できれば、正解するまでに平均で何回かかったかと、一番少なかった数も出力したいです。

よろしくお願いします





import java.util.*;

public class NumberGuess {
public static void main(String args[]) {

boolean b = true;
int computer = (int) (Math.random() * 100) + 1;
int player = 0;
int count = 0;
System.out.println("1~100の数当てゲーム");
if (computer < 0) { computer *= -1;}

while (b) {
count++;
Scanner keyboard = new Scanner(System.in);
System.out.print("1~100の数字を入力してください ");
player = keyboard.nextInt();
if (computer > player) {
System.out.println("CPUが作成した数字はもっと大きいです");
} else if (computer < player) {
System.out.println("CPUが作成した数字はもっと小さいです");
} else if (computer == player) {
System.out.println( count + "回目で当てました");
}
}
}
}

直すべきところもあれば教えてください。

A 回答 (2件)

例えば、こんな感じでしょうか。


http://pastebin.com/MsJqcw1i
    • good
    • 0

変数 computer は必ず 0 以上なので、正負逆転は不要


参考) http://docs.oracle.com/javase/jp/7/api/java/lang …

繰り返し処理 while(b){} の終了条件がない
おそらく「当てました」あたりで処理追加が必要

ランダム数を決めるから、当てましたまでの処理を、
一つのメソッドとして分離すべき
例) /* @return 正解するまでの回数 */ protected int playGameOnce()

メソッド main にて、ゲームの制御を行う
1. 統計情報の変数を初期化
2. 上記のメソッドを呼ぶ
3. 正解するまでの回数を取得して、統計情報を更新する
4. 続行の質問をして、"y" なら 2 に戻る
5. 統計情報を表示しておしまい
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!