【学習57日】Ruby練習問題_ズンドコ キ★ヨ★シ問題【応用19日】
Rubyの練習問題「ズンドコ キ★ヨ★シ問題」を自力で解けた!
端から見れば
「ただの練習問題で喜ばれても困るわ」
と言われそうだけれども、
自力で仮説を立て調べながら解けたのが
多少なりとも成長として感じられたので
記録しておきます!
勉強を頑張る駆け出しエンジニアの皆様も箸休めに是非🙇♀️
練習問題
「ズン」「ドコ」のいずれかをランダムで出力し続けて
「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら
「キ・ヨ・シ!」と出力させてプログラムを終了させる。
■期待する出力
ズン・ズン・ズン・ズン・ドコ・キヨシ!!と出力させる。
■条件
・条件を満たすまでループする。
・条件を満たせばプログラムを終了させる。
・出力させるのは「ズン・ドコ」の2つ
自分の回答
song = ["ズン","ドコ"] input = [] i = 0 while true hensu = song.sample input.push(hensu) puts input[i-1] if input.length >=4 and input[i-1]=="ドコ" and input[i-2]=="ズン" and input[i-3]=="ズン" and input[i-4]=="ズン" and input[i-5]=="ズン" break end i += 1 end puts " ★ キ ★ ヨ ★ シ ★ "
■メモ
・配列に入った値をランダムで表示させる
配列.sample
・配列に要素を追加する
配列.push( 追加したい要素 )
■反省
・変数の名前の付け方
・繰り返しを抜ける条件式が力技
■参考記事
はじめてのRuby!配列をランダムに取得・入れ替え|sample・shuffle | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
【Ruby入門】ifやif elseの基本からANDやORを使う応用まで完全解説!! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
模範回答
array = ["ズン", "ドコ"] str1, str2, str3, str4, str5 ,str6= "" while true do num = rand(0..1) str6,str5, str4, str3, str2, str1 =str5, str4, str3, str2, str1, array[num] puts str1 if str6 == "" || str6 == "ドコ" if str5 == "ズン" && str4 == "ズン" && str3 == "ズン" && str2 == "ズン" && str1 == "ドコ" puts " ★ キ ★ ヨ ★ シ ★ " exit end end gets end
■メモ
・乱数を発生させる
puts rand(100) → 0~100の乱数を生成
puts rand(10..20) → 10~20までの乱数を生成
num = rand(0..1) → 0~1のどちらかを変数numに入れる
■参考記事
Rubyで乱数を生成する方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン