Big / Smallゲーム

id:hrkt0115311さんの作られていたBig/Smallゲームのソースを拝見して、なるほど、こういうものもつくれるのだなあ、と自らの想像力の貧しさを反省。

いろいろ作ってるつもりだけど、こういうものを作る柔軟な発想力がほしいなあ。

嘆いていても仕方がないので、作られていたソースを少し焼き直してみた。もう少しシンプルにできそうな感じもするのだけど、こういうのでどうだろうか。

#ゲーム開始のメッセージ表示
puts <<MESSAGE
ひとつ、運試しをしませんか?
これから2枚のカードを引きます
最初のカードが大きければあなたの負け、逆ならあなたの勝ちです。
それでははじめましょう。
MESSAGE

#カード種別と数字表示用変数定義
cards = %w!エース 2 3 4 5 6 7 8 9 10 J Q K!
card_type = %w!ハート クラブ クローバー スペード!

#メッセージ表示後の停止
sleep 2

#1枚目のカード情報
r = rand(5) #4はジョーカー扱い
if r == 4
  puts "残念ジョーカーです。あなたの負けです。"
  puts "でも、ジョーカーをいきなり引当るなんて、"
  puts "逆に、ついてるかもしれませんね!"
  puts "どうぞよい一日を!!"
  exit 
else
  @roll = rand(13)
  puts "%sの%sです。" % [card_type[r],cards[@roll]]
  puts "次のカードを引きます。"
  puts "このカードより大きければあなたの勝ちです。"
end

#初期表示したので停止
sleep 2

#2枚目のカード情報
second_roll = rand(13)
puts "%sの%sです。" % [card_type[rand(4)],cards[second_roll]]

#結果表示
if @roll == second_roll
   puts "引き分けです。今日もよい一日を!"
elsif @roll == 0
   puts "エースには勝てないですよね。お疲れさまでした。今日もよい一日を!"
elsif second_roll == 0 or second_roll > @roll
   puts "あなたの勝ちです。今日もよい一日を!"
else
   case @roll
   when 12
     puts "キングに負けました。お疲れさまでした。今日もよい一日を!"
   when 11
     puts "クイーンに負けました。お疲れさまでした。今日もよい一日を!"
   when 10
     puts "惜しい! ジャックに負けました。お疲れさまでした。今日もよい一日を!"
   else
     puts "あなたの負けです。お疲れさまでした。今日もよい一日を!"
   end
end