プログラミング初心者にわかりやすく解説するRuby講座「おみくじゲームを作ってみよう」

スポンサーリンク
Pocket
LINEで送る

第三回プログラム初心者にわかりやすく解説するRuby講座です。今回は前回解説した、変数、条件分岐、標準出力を使っておみくじゲームを作っていきたいと思います。

前回の記事を見ていない方は以下のリンクから飛ぶことができるので見といてください。

 

おみくじゲームの処理を考える

今回作るおみくじゲームの処理の流れを書き出します。

1.プログラムを実行

2.大吉 or 中吉 or 小吉 or 吉 or 凶が出力される。

 

流れはこんな感じです。これを実現するためにもっと細かく考えてみましょう。

1.ランダムで数値を取得
0から99のランダムな数値を取得する

 

2.対応する値で分岐させる

0~19なら「凶」

20~39なら「吉」

40~59なら「小吉」

60~79なら「中吉」

80~99なら「大吉」

 

3.分岐させたものを標準出力させる

とてもシンプルな仕組みです。前回の記事を理解できていれば、問題なく作れるものです。

 

処理をプログラムにする

処理の流れが決まったのでプログラムにしていきましょう。

まず、最初に「ランダムな値を取得する」ですが、rubyの標準ライブラリにランダムな値を返す関数があるのでそれを使いましょう。

「rand(最大値)」で0から最大値に入力した数値をランダムで返してくれるものです。rand()の中身のことを引数といいます。

スポンサーリンク
kuji = rand(99)

 

これで実行する度にkujiという変数に0から99までのランダムな数値が代入されます。

 

次はこのkujiの中身に応じて条件分岐させていきます

kuji = rand(99) 
if kuji >= 0 && kuji <= 19
  puts "凶"
elsif kuji >= 20 && kuji <= 39
  puts "吉"
elsif kuji >= 40 && kuji <= 59
  puts "小吉"
elsif kuji >= 60 && kuji <= 79
  puts "中吉"
else
  puts "大吉"
end

これで設計通りの分岐になりました。実行してみて、ランダムに結果が出力されれば成功です。

応用

おみくじゲームを作ることができました。しかし、先ほど書いたコードのif文の式が見辛いとは思いませんか?
この式を見やすくしちゃいましょう!

kuji = rand(99)
if kuji.between?(0, 19)
  puts "凶"
elsif kuji.between?(20, 39)
  puts "吉"
elsif kuji.between?(40, 59)
  puts "小吉"
elsif kuji.between?(60, 79)
 puts "中吉"
else
 puts "大吉"
end

式が変わり新しく「between?」という文字が出てきました

「between?」は範囲を調べる関数です。変数をbetween?(a, b)で繋げるとその変数の範囲をチェックしてくれます。aからbの間にあればtrueをそうでなければfalseを返す便利な関数です。

これで、コードが見やすくなりましたね。

おすすめ書籍