この記事は【完走したい】楽しくいろいろやる Advent Calendar 2023の3日目です。
おみくじ
ランダムな数字の生成の仕方を学んだので、おみくじを作ります。
せっかくなので、運勢だけでなくランダムにメッセージが出るようにします。
配列
配列は、[]でくくって、中に「,」区切りで入れたいものを入れます。
例)
Test1=["a","b","c"]
Test1には、aとbとcの文字列がそれぞれ入っています。
ほかの言語と大体同じでした。
中身を一つ取り出すときは
puts Test[0]
これで0番目のaを取り出せました。
Rubyも、配列は0から始まるようです。
ランダムに文字を出すようにしてみます。
Test1=["a","b","c"]
A=rand(0..2)
puts Test1[A]
これでaからcが出てきます。
3行目のputsするTest1の[]の中に直接rand(0..2)を入れても動きました。
switchがない
おみくじのメッセージを作る際、運勢ごとに選ばれるメッセージを変えるようにします。
こんな時、C#ではswitchとかと使うとスマートにかけました。
Rubyでは、caseを使うようです。
↓使ってみた
Unsei=["超大吉","大吉","中吉","小吉","吉","末吉","凶"]
Test1=rand(0..6)
case Test1
when 0 then
puts Unsei[0]
when 1 then
puts Unsei[1]
when 2 then
puts Unsei[2]
when 3 then
puts Unsei[3]
when 4 then
puts Unsei[4]
when 5 then
puts Unsei[5]
when 6 then
puts Unsei[6]
end
こんな感じで動きました。
最後にendが必須です。
おみくじを作る
1.超大吉
2.大吉
3.中吉
4.小吉
5.吉
6.末吉
7.凶
とします。
メッセージの中身はコードを見てください
↓実際に書いたもの
Unsei=["超大吉","大吉","中吉","小吉","吉","末吉","凶"]
Msg=["やったね!超大吉","今日はいいことあるかも?","やったー、大吉","おめでとう大吉だよ","中吉、まあまあだね","それなりにいいことがあるかも?","小吉か。まあ、凶よりはましだよね","ちょっといいことあるかも","吉、いい方なんじゃない?","それなりにいい感じのことがありそう","末吉...","わずかにいことがあるかも","凶です、悲しい","もう一回占っとく?"]
# Unseiを占う
Omi1=rand(0..6)
# メッセージを選ぶ
case Omi1
when 0 then
RandMsg=rand(0..1)
when 1 then
RandMsg=rand(2..3)
when 2 then
RandMsg=rand(4..5)
when 3 then
RandMsg=rand(6..7)
when 4 then
RandMsg=rand(8..9)
when 5 then
RandMsg=rand(10..11)
when 6 then
RandMsg=rand(12..13)
end
puts "今日の運勢は" + Unsei[Omi1] + "だよ。" + Msg[RandMsg]
できた。
まとめ
Rubyの配列の使いかたを学びました。
お正月にどうぞ。
参考