4桁の正の整数を2つ発生させ,それらを小さい順に表示するプログラムを作成しましょう.
2 numbers with 4 digits: 5525, 6477 |
1から3の整数のどれかを乱数により3回発生させ,2つ同じものが出たら One pair と,3つが全部同じ数だったら Miracle! と表示するプログラムを作成しましょう.
Random numbers: 3 3 3 Miracle! |
Random numbers: 2 1 1 One pair |
Random numbers: 2 3 1 |
サイコロ2つで遊ぶ野球ゲームの基礎的な部分を作ってみましょう.以下の表のようにサイコロの目に従って安打か凡打が決まるとするとき,バッター一人分の打席を以下のように表現するプログラムを作成しましょう.
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
1 | Home run! | Out | Out | Out | Out | Single hit! |
2 | Out | Three base hit! | Out | Out | Single hit! | Out |
3 | Out | Out | Two base hit! | Single hit! | Out | Out |
4 | Out | Out | Single hit! | Two base hit! | Out | Out |
5 | Out | Single hit! | Out | Out | Two base hit! | Out |
6 | Single hit! | Out | Out | Out | Out | Single hit! |
Dices: 6 1 Result: Single hit! |
なるべく条件が簡単になるように規則性を見つける工夫をしてください.
トランプ (Playing cards) は52枚のカードと1枚の Joker で構成されています.以下のように番号とカードを組み合わせるとしたとき,乱数により 0 から 52 までの整数を一つ発生させ,何のカードかを答えるプログラムを作成しましょう.
乱数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 絵 (suite) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
札 (Mark) | Ace | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Jack | Queen | King | spades |
乱数 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 絵 (suite) |
札 (Mark) | Ace | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Jack | Queen | King | diamonds |
乱数 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 絵 (suite) |
札 (Mark) | Ace | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Jack | Queen | King | hearts |
乱数 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 絵 (suite) |
札 (Mark) | Ace | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Jack | Queen | King | clubs |
乱数 | 52 | Joker |
Random number: 51 King of clubs |
Random number: 52 Joker |
剰余と除算をうまく利用して,できるだけ少ない条件分岐で処理を考えましょう.決め手は13という数字です.
サンフレッチェ広島とリバプールの夢の対戦が実現しました.ということで,以下のように前半と後半の得点を表示して,結果も最後に表示するプログラムを作成しましょう.発生させる乱数は0から3の範囲とします.
Liverpool Sanfrecce 1st half 3 - 1 2nd half 1 - 2 --------------------------------- Total 4 - 3 Liverpool won! |
Liverpool Sanfrecce 1st half 1 - 3 2nd half 2 - 1 --------------------------------- Total 3 - 4 Sanfrecce won! |
Liverpool Sanfrecce 1st half 1 - 2 2nd half 1 - 0 --------------------------------- Total 2 - 2 Draw |
||
リバプール勝利 | サンフレッチェ勝利 | 引き分け |
合計得点を保存するための変数が必要です.また,ちょっと先取りになりますが,教科書の p.92 で紹介されている類纂代入演算子の += を使うと簡単になります.