質問: 1~10までの数字のひとつに地雷をしこんで、当てたら負けというゲームをつくろうとしていますがうまくいきません。 例えば4が地雷だった場合。 ↓ 【1 2 3 4 5 6 7 8 9 10】(←残っている数字一覧) 1(←キーボード入力) セーフ(←判定) 【2 3 4 5 6 7 8 9 10】 8 セーフ 【2 3 4 5 6 7 9 10】 4 地雷です ↑ このように表示させたいです。 一番わからないところは、キーボードで入力した数字を、次の選択肢【】から除外する(表示させない)ところです。 最近勉強を始めたばかりなので、知識がほぼなく、どのように書いていけば良いのかもわかっていないところがあります... どなたか教えてくだされば幸いです。 よろしくお願い致します。
回答: 実際にこのプログラムを作成してみました。 問題簡略化の為、[ 1 2 3 4 5 6 7 8 9 10]と、 先頭の数字の前に空白をつけましが、 そこで私が使った知識は、 System.out.println() System.out.print() 変数 文字入力 int boolean if文 while文(for文) break String:equalsメソッド Math.randomメソッド(爆弾配置を行うための、ランダムな数字の取得に使われた。) BufferedReader(文字入力) import(上のBufferedReaderを使う為) try-catch節(BufferedReaderに必須) System.exit(0)(プログラム終了) です。これらの知識があるならば、個人的には挑戦してみても良いと思われます。 ○Math.randomはまだ学んでいないと思われるため答えを言うと、 「int answer = (int) (Math.random() * 10 + 1);」 で変数「answer」に1から10のランダムなintを代入できます。 ○BufferedReaderとtry-catch節とimportを学んでいないならば、 一番上の行(class等書いてある行よりも上)に「import java.util.Scanner;」と入力し、 String inputString = (new Scanner(new InputStreamReader(System.in))).nextLine(); で、変数「inputString」にStringの入力が出来、 int inputNumber = (new Scanner(new InputStreamReader(System.in))).nextInt(); で、変数「inputNumber」にintの入力が出来ますので、それで代用が可能です。 特定の文字の入力をしないヒントは、押されたか否かでやる場合は、 「[」「 1」「 2」「3」「 4」「 5」「 6」「 7」「 8」「 9」「 10」「]」 を分けて出力することと、出力するかどうかのif文を使うことです。 がんばってください!