どうも! 職業訓練生のがっちゃんです!
50歳にして、長期人材育成「情報セキュリティ管理者資格」2年コースを絶賛受講中です!
今回は、Javaの授業の最初で学ぶ「数字当てゲーム」プログラムを作成したときのお話しです。ジャンケンプログラムよりもう少し凝ったゲームができれば、ということで作成しました。
とはいっても「do while」と「if」構文だけでできているようなもの。こんな構文だけでいろいろなゲームができるんですから、プログラムを学ぶたび、「そんな難しいプログラムはないんだよなぁ。結局それらをどのように配置して思い通りに動かすことができるのか!?」というプログラマの想像力の差で、面白いゲームができるんかな!?」って思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
/** * 数字当てゲームを作るよ * @author がっちゃん */ public class Numbers { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ // 数あてゲーム //数あてゲームが始まることを画面に表示する System.out.println("さぁ!今から数あてゲームをはじめるお!!"); System.out.println("コンピュータがあらかじめ考えてた数字が何かを予想してください!"); System.out.println("じゃぁ、0~9までの数字をひとつだけ入力してネ!(*´▽`*)"); System.out.println("5回以内に当てるようにしないとゲーム終了だよ!"); //数あての こたえを決める int ans = 5; なら5のみが答えとなります。 //乱数発生装置の準備(初めにやりたいことをやってもらえる仕組みを作る) java.util.Random rand = new java.util.Random(); int ans = rand.nextInt(10); //0~9の10種類のいずれかを発生させてください。 //プレイヤーの入力(数値)を待つ //入力されたら、その数字を記録する java.util.Scanner input = new java.util.Scanner(System.in); //勝負回数を覚えるための場所を準備 int count = 0; do{ int num = input.nextInt(); count = count + 1; //count = 1; countの中に入っている情報を1に書き換えます。 // count = count+1; にすれば、ここを通過するたびに1足していく、というカウントシステムになります。 System.out.println( count + "回目の勝負!"); //正解を画面に表示(最終的にはこれを非表示にして、当たっているか外れているかを表示します。 //System.out.println("コンピュータがあらかじめ考えていた数字は" + ans + "でした~!"); //プレイヤーの入力を画面に表示 //System.out.println("あなたは" + num + "と入力したんだね!"); //入力された数値が 当たっているか、はずれているか を表示(条件分岐) if( ans == num ) { // ↑同じ数字だったら System.out.println("すごいや!大当たり!"); System.out.println("やったね!"); System.out.println("うぉおおおおお!"); break; //当たった時は、繰り返しから脱出できるようにするコマンド。 } else { // ↑そうじゃなかったら[エルス]と読みます。 System.out.println("残念!はずれやで~(・_・)"); // 入力された数字のほうが大きかったとき if( num > ans ) { System.out.println("正解よりでっかい数字やったで!"); System.out.println("より小さく控えめにいこうや"); } // そうでなかったとき(数字が小さかったとき else { System.out.println("正解よりちっさい数字やったで!"); System.out.println("もっと大胆にデカクいこうな!"); } } //}while( true ); //永久に繰り返してください、という命令文。trueはどんな時でも、という意味 } while( count < 5 ); // 5回を超えたらゲーム終了。5回までなら繰り返しゲーム続行。 System.out.println("これでゲーム終了!"); } } |
実行結果は以下のような感じです。設定を変更して難易度をあげて遊ぶと、なかなかのものですよ。
それでは本日も最後までお付き合いいただき、ありがとうございました!