• ベストアンサー

明快Java入門演習問題4-27について

演習問題は以下のようになります。 数当てゲームのプレイヤーが入力出来る回数に制限を設けたプログラムを作成しなさい また制限回数内で当てられなかった場合は正解を出力してゲームを終了すること 今は答えが乗っているサイトはありますが基礎ロジック力をつけるため敢えて自力で解きます。 考えがまとまらなくて質問させていただきました キーボード入力の回数制限で行き詰まっています。どなたか宜しくお願いします。 キーボード入力の回数制限とはどういうことでしょうか?

  • Java
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 繰返し文、forやwhileを使って入力と判定を10回繰り返すということです。 入力して判定する回数が10回、マリオが穴に落っこちて良いのが10回。 // 乱数で答えを設定 // ループスタートforやwhileで繰り返す // キー入力待ち // 入力された値と答えを判定  // あっていた場合はここでループを抜けて「おめでとう」 // あっていない場合は何もしない。すなわちキー入力待ちに戻る

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 数当てゲームがどんなゲームを表しているのか定かでないので見当違いかもしれませんが、以下のようなゲームだとすると入力回数制限とは解答回数の制限と同義では無いでしょうか。 乱数で数字を設定 A.ユーザに入力してもらう A.乱数の数字と入力された数字の判定 このAのセットの回数ではないでしょうか。 例えば10回判定しても当たらなかった場合は正解を出力して終了。

skybkird
質問者

お礼

えーと・・・10回判定とは? 今までScanaerクラスですら10回打ち込んで終了するプログラム組んだことないため想像がつきません。 差し出がましいことで言い難いんですが理解して基礎ロジック力鍛えたいので10回判定とはどういうことですか? 宜しくお願いします。

関連するQ&A

  • java プログラミングについて

    独学でjavaに挑戦中ですが、書店で購入した本のソースプログラムを少し変えたいのですが、ご教授をお願いします。数当てゲームのプログラムで、一つの設問を正解すると終了するゲームですが、複数の設問を設定したいのです、質問がうまく伝わるか不安ですがよろしくお願いします、プログラムを少しだけ書いておきます。 import java.io.*; class Mojiretuate { public static void main(String[] args) throws IOException { String str = "こんにちは";  /*質問箇所*/ String str2; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("文字列当てゲームです。"); System.out.println("答えは何かのあいさつです。"); for(;;){ System.out.println("\n入力:"); str2 = br.readLine(); System.out.println("入力文字列の長さ:" + str2.length()); if(str.equals(str2)){ System.out.println("正解です!"); break; } 

    • ベストアンサー
    • Java
  • javaの超初心者です。ご教授いただけたら幸いです。

    javaの超初心者です。ご教授いただけたら幸いです。 ある書籍を元にやっているのですが、演習に答えがなく、わからないためその問題をお願い致します。 2桁の整数値(10~99)を当てさせる数当てゲームを作成せよ。という問題です。 下記は少しやってみました。 import java.util.Random; import java.util.Scanner; class Kazuate99 { public static void main(String[] args) { Random rand = new Random(); Scanner stdIn = new Scanner(System.in);    int no = rand.nextInt(); ← ここがたぶん違う System.out.println("数当てゲーム開始!!"); System.out.println("10~99の数を当てて下さい。"); int x; // プレーヤが入力した数 do { System.out.print("いくつかな : "); x = stdIn.nextInt(); if (x > no) System.out.println("もっと小さな数だよ。"); else if (x < no) System.out.println("もっと大きな数だよ。"); } while (x != no ); System.out.println("正解です。"); } } 宜しくお願い致します。

    • ベストアンサー
    • Java
  • javaの数字当てゲーム

    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 + "回目で当てました"); } } } } 直すべきところもあれば教えてください。

  • C言語の問題

    配列の問題 1.キーボードから入力したアルファベットの大文字(A~Z)の入力回数をそれぞれ数え、結果を画面出力するプログラムを作成せよ。但し、入力の終了はEOFとし、入力回数のカウントには、配列を用いるものとする。(文字ごとに回数を格納する配列を用意する) 2.キーボードから番号(数字)を入力し、その番号に該当する文字列中の文字を画面表示するプログラムを作成せよ。なお、数字以外の文字が入力した場合と、文字列の範囲外の数字が入力された場合は、任意のメッセージを出力し、再入力するようにする。また文字列はキーボードから入力するものとする。 この問題が解けなくて困ってます。どうか知恵をかしてください。

  • Java

    現在JavaでCPとじゃんけんをするゲームのプログラムを作成中で対戦回数をあらかじめ決定しその回数分のCPUの手を数値で入力すると、 プレイヤーの手にあわせてCPUとじゃんけんを複数回対戦できるというものなんですがどういったプログラムになるでしょうか? CPUの手は任意の数字を3で割った余りから決定される 余りが0のときはgu, 1のときはchoki, 2のときはpaとする 理想の出力結果は [じゃんけんゲームを何回戦実施するか入力してください] 4 [CPUの手として任意の数字をゲーム数分だけ入力してください] 10 20 33 -3 [CPUの手を並び替えますか?yes/no] no CPUの手は並び替えませんでした CPUの手を決定します 負の数は正の数に変換します [あなたの手を入力してください|gu/choki/pa] gu あなたの勝ちです [あなたの手を入力してください|gu/choki/pa] gu あなたの負けです [あなたの手を入力してください|gu/choki/pa] pa あなたの勝ちです [あなたの手を入力してください|gu/choki/pa] gu 引き分けです じゃんけんを終了します 対戦成績は2勝1敗1引き分けでした これが理想です。

  • Visual C++ error なんで?

     将来プログラマーを目指して勉強中の中学生です。    おとといC言語を始めてやさしいCを半分ぐらい読み 数当てゲームを作ってみようと思い今製作中なのですが(ランダムに数字を出すとかはできない)どうしてもエラーがでてしまうのです。 googleなどでエラーを調べてもどうしても解決につながらないので、本当は自力で見つけてバグを直さなくてはいけないのはわかっているのですが、ここで質問させていただきます。 ※ソース見にくいかもしれませんがすいません。  この数当てゲームは、100から999までの数字で入力された数字が、あらかじめ用意されている答えより小さいか大きいかを判断して 答えに近づいていくゲームです。 ------------------ソース--------------------------- /*数当てゲーム*/ //9/13日:作成開始 //9/13日:全角の空白には注意!!!エラー発生。問題解決 //9/14日:エラー #include <iostream>//本当は<stdio.h>でやっています。 int main (void) { int anser,tasu1; anser=749; printf("数当てゲームです。私があらかじめ用意しておいた数を当てる単純なゲームです。答えは100から999での間です。\n"); printf("では100から999までの数字を入力してください。\n"); scanf("%d", &tasu1); //tasu1に入力された数字を格納 if(tasu1 == anser){ printf("正解です!おめでとうございます。\n");//入力された数字がanserと一致したときここを処理 } else if(tasu1>anser){ printf("答えは入力された数字より小さいです。\n");//tasu1がanserより大きい場合ここを実行 } else if(tasu1<anser){ printf("答えは入力された数字より大きいです。\n");//入力された数字がanserより小さいときにここを処理 } else if(tasu1<100){ printf("入力された数字が許容範囲を超えています。\n");//入力された数字が100未満のときここを処理 } else if(tasu1>999){ printf("入力された数字が許容範囲を超えています。\n");//入力された数字が999より大きいときここを処理 } else{ printf("入力された数字が不正です。\n");//それ以外はここを処理 } return 0; } 見にくいですが、どうぞ回答よろしくお願いします。

  • javaの繰り上がった回数を表示するプログラム

    javaの繰り上がった回数を表示するプログラム javaの繰り上がった回数を計算するプログラム 1ケタから10ケタの足し算をし繰り上がった回数を表示するプログラムを作成したいのです。 例 入力:159 444 出力:2回 入力:6789 4321 出力:4回 このようなメソッドはあるのですが、{???}のところに入る部分が分かりません。 static private int 繰り上がり回数(long m1,long m2){ int c=0,kuri=0; while( (m1!=0) && (m2!=0) ){ kuri= {???} /10; c+=(kuri!=0)?1:0; m1/=10;m2/=10; } return c; }

  • 数当てゲーム  malloc使用?

    こんにちは。 現在、「たのしいC」という書籍でC言語を勉強中なのですが、この本に載っている課題について質問です。 「数当てゲーム」をプログラムせよ。 ・擬似乱数を用いて2つ整数を取得。数当ての範囲とする。 ・その間の整数を擬似乱数を用いて取得し、この数を当てさせる。 ・最初に取得した数の範囲に応じてプレイヤーが入力できる回数を設定すること。 というのが大筋です。 今回質問させていただきたいのは、3つ目の、数の範囲に応じて入力回数を設定する部分についてです。 コンパイル時は数の範囲がまだわかっていないので、malloc関数を使うしか僕は思いつけなかったのです。 でもこの課題が出ているのは本の最初の部分で、malloc関数についてはまだ1度も書かれていないのです。 ひょっとして、malloc関数を使わなくても実現できるのでしょうか? 可能でしたら方法を教えてください。 本では自由課題になっていて、回答が書かれておらず、ホームページでも見当たらなかったのでここで質問させていただきました。

  • javaの繰り上がった回数を表示するプログラム

    javaの繰り上がった回数を計算するプログラム 1ケタから10ケタの足し算をし繰り上がった回数を表示するプログラムを作成したいのです。 例 入力:159 444 出力:2回 入力:6789 4321 出力:4回 このようなメソッドはあるのですが、{???}のところに入る部分が分かりません。 static private int 繰り上がり回数(long m1,long m2){ int c=0,kuri=0; while( (m1!=0) && (m2!=0) ){ kuri= {???} /10; c+=(kuri!=0)?1:0; m1/=10;m2/=10; } return c; }

  • javaプログラミング

    javaプログラミングの問題わからないのでプログラム書いていただけないでしょうか。 キーボードから キーボードから 2つの実数 aと b〔double 型〕を入力し、 Math クラスのメ ソッド double pow(a, b);を用いて aの b乗を求め 画面に出力しなさい。 〔実行例〕 aの b乗を求めます 実数 aの値を入力してください 2 実数 bの値を入力してください 3 2.0 の 3.0 乗は 8.0 です

    • ベストアンサー
    • Java

専門家に質問してみよう