どうも! 職業訓練生のがっちゃんです!
50歳にして、長期人材育成「情報セキュリティ管理者資格」2年コースを絶賛受講中です!
今回は、JAVAの授業の最初で学ぶ「ジャンケン」プログラムのお話しです。お話といっても、もう基本となる「do while」「switch」「case」 「if」文を使って作成していきます。
プログラムの条件
・対戦する人の名前を入力してもらって、その名前を表示
・グーは0、チョキは1、パーは2、とする。
・終了する時は9を入力。
・「do while」文の間に「switch」「case」「if」文を駆使して、条件ごとに表示をさせていく。
・対戦する人の名前を入力してもらって、その名前を表示
・グーは0、チョキは1、パーは2、とする。
・終了する時は9を入力。
・「do while」文の間に「switch」「case」「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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
/** * ジャンケンプログラム * @author がっちゃん */ public class Janken { public static void main(String[] args) { //↑予約語です。これがないとプログラムが動きません。 // TODO 自動生成されたメソッド・スタブ //ここにプログラムを書いていくようにします。 System.out.println(); System.out.println("じゃんけん大会始まるよ~!(*´ω`*)"); System.out.println("僕に勝ったら素敵な景品がもらえるお(*´▽`*"); System.out.println("じゃんけんするまえに、まずは名前を教えてちょ"); java.util.Scanner input = new java.util.Scanner(System.in); System.out.println( "きみは" + input.nextLine( ) + "さん、って言うんだね"); do{ System.out.println(); System.out.println("ルールを説明するよ!"); System.out.println("グーは0だよ!"); System.out.println("チョキは1だよ!"); System.out.println("パーは2だよ!"); System.out.println("終わりたいときは9だよ!"); System.out.println( "それじゃぁ、いっくよぉ!ジャンケン・ポン!"); int hand = input.nextInt(); System.out.println("きみは" + hand +"を出したね!"); if( hand == 9 ) { System.out.println("やめまっせー!"); break; } java.util.Random rand = new java.util.Random(); int com = rand.nextInt(3); System.out.println( "ぼくは" + com + "を出したよ!"); switch( (3 + hand - com) % 3) { case 0:{ System.out.println("引き分けだね!"); } break; case 1:{ System.out.println("負けてるぞ!"); } break; case 2:{ System.out.println("勝ってるぞ!"); } break; } switch( com) { case 0:{ System.out.println("ぼくはグーを出しました!"); switch( hand) { case 0:{ System.out.println("きみはグーを出しました!"); } break; case 1:{ System.out.println("きみはチョキを出しました!"); } break; case 2:{ System.out.println("きみはパーを出しました!"); } break; } } break; case 1:{ System.out.println("ぼくはチョキを出しました!"); switch( hand) { case 0:{ System.out.println("きみはグーを出しました!"); } break; case 1:{ System.out.println("きみはチョキを出しました!"); } break; case 2:{ System.out.println("きみはパーを出しました!"); } break; } } break; case 2:{ System.out.println("ぼくはパーを出しました!"); switch( hand) { case 0:{ System.out.println("きみはグーを出しました!"); } break; case 1:{ System.out.println("きみはチョキを出しました!"); } break; case 2:{ System.out.println("きみはパーを出しました!"); } break; } } break; } //じゃんけんの条件を書くよ!(場合によって処理を色々と変更できるようにするね!) if( hand == com ) { System.out.println("あいこだねっ!"); } if( com == 0 ) { if( hand == 1 ) { System.out.println("ブッブー!きみの負けだよ!"); } if( hand == 2 ) { System.out.println("ピンポーン!きみの勝ちだよ!"); } } if(com == 1 ) { if( hand == 0 ) { System.out.println("ピンポーン!きみの勝ちだよ!"); } if( hand == 2 ) { System.out.println("ブッブー!きみの負けだよ!"); } } if( com == 2 ) { if( hand == 0 ) { System.out.println("ブッブー!きみの負けだよ!"); } if( hand == 1 ) { System.out.println("ピンポーン!きみの勝ちだよ!"); } } }while( true ); } //←メインメソッドの終わり } //←クラスの終わり |
どうですか!?エラーなくプログラムを入力できたら実行してみましょう。実行結果は以下のような感じです。
次は、上のプログラムに勝敗結果を出力できるようにプログラムを追加します。5回ジャンケンしてその勝敗結果を出すプログラムになります。勝負回数が少ないな、と思った人は変数TOTALを5から10とかに変更してね。
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
public class Janken2 { public static void main(String[] args) { //↑予約語です。これがないとプログラムが動きません。 // TODO 自動生成されたメソッド・スタブ //ここにプログラムを書いていくようにします。 System.out.println(); System.out.println("じゃんけん大会始まるよ~!(*´ω`*)"); System.out.println("僕に勝ったら素敵な景品がもらえるお(*´▽`*"); System.out.println("じゃんけんするまえに、まずは名前を教えてちょ"); java.util.Scanner input = new java.util.Scanner(System.in); System.out.println( "きみは" + input.nextLine( ) + "さん、って言うんだね"); final int TOTAL = 5; //勝負回数の設定はここ!(定数:大文字で書くこと) int won =0; //勝ち数 int lose =0; //負け数 勝ち負けだけの判定なので「あいこ」は作らない //int count = 0; //回数を数えるところを準備(変数count を0で初期化) // for(初期条件;繰り返し条件;繰り返し時処理) for( int i = 0; i < TOTAL; i = i + 1 ){ // ↓上書き保存していくよ、という意味 //count = count + 1; //1増やす。 = 演算子の優先順位は最低 System.out.println(); System.out.println("ルールを説明するよ!"); System.out.println("グーは0だよ!"); System.out.println("チョキは1だよ!"); System.out.println("パーは2だよ!"); System.out.println( "それじゃぁ、いっくよぉ!ジャンケン・ポン!"); int hand = input.nextInt(); System.out.println("きみは" + hand +"を出したね!"); java.util.Random rand = new java.util.Random(); int com = rand.nextInt(3); System.out.println( "ぼくは" + com + "を出したよ!"); switch( (3 + hand - com) % 3) { case 0:{ System.out.println("引き分けだね!"); } break; case 1:{ System.out.println("負けてるぞ!"); lose = lose + 1; } break; case 2:{ System.out.println("勝ってるぞ!"); won = won + 1; } break; } switch( com) { case 0:{ System.out.println("ぼくはグーを出しました!"); switch( hand) { case 0:{ System.out.println("きみはグーを出しました!"); } break; case 1:{ System.out.println("きみはチョキを出しました!"); } break; case 2:{ System.out.println("きみはパーを出しました!"); } break; } } break; case 1:{ System.out.println("ぼくはチョキを出しました!"); switch( hand) { case 0:{ System.out.println("きみはグーを出しました!"); } break; case 1:{ System.out.println("きみはチョキを出しました!"); } break; case 2:{ System.out.println("きみはパーを出しました!"); } break; } } break; case 2:{ System.out.println("ぼくはパーを出しました!"); switch( hand) { case 0:{ System.out.println("きみはグーを出しました!"); } break; case 1:{ System.out.println("きみはチョキを出しました!"); } break; case 2:{ System.out.println("きみはパーを出しました!"); } break; } } break; } //じゃんけんの条件を書くよ!(場合によって処理を色々と変更できるようにするね!) if( hand == com ) { System.out.println("あいこだねっ!"); } if( com == 0 ) { if( hand == 1 ) { System.out.println("ブッブー!きみの負けだよ!"); } if( hand == 2 ) { System.out.println("ピンポーン!きみの勝ちだよ!"); } } if(com == 1 ) { if( hand == 0 ) { System.out.println("ピンポーン!きみの勝ちだよ!"); } if( hand == 2 ) { System.out.println("ブッブー!きみの負けだよ!"); } } if( com == 2 ) { if( hand == 0 ) { System.out.println("ブッブー!きみの負けだよ!"); } if( hand == 1 ) { System.out.println("ピンポーン!きみの勝ちだよ!"); } } } // while( count < 10 ); //勝負の結果は、ここらあたりで表示できるようにするよ! System.out.println("10回勝負の結果だよ!!"); System.out.println("勝ち数は" + won + "回だよ"); System.out.println("負け数は" + lose + "回だよ"); //総勝負数 勝ち数 負け数 の計算であいこが算出できます System.out.println("あいこは" + ( TOTAL - won - lose ) + "回だよ"); } } |
プログラムの実行結果は以下の通りです。
いかがでしたか!?プログラマーさんなら、こんなの屁みたいなもので、もっと効率の良いプログラムを作っちゃうんでしょうね。Java初心者は、こんなプログラムも必死です。こんなプログラムをたくさん作っていけば、少しずつ難しいプログラムに挑戦していけると思います。
無理しなくていいですが、楽しく練習していけば、きっと一人前のプログラマーさんになれますよ。とかなんとか言ってますが4分の一人前のプログラマーな私なのですた。
それでは本日も最後までお付き合いいただき、ありがとうございました!