LoginSignup
0
0

More than 3 years have passed since last update.

rubyで数字比較ゲームを作った

Posted at

おはようございます。

今日は数字比較ゲームを作ってみました。

仕様
一桁目が1~20の数字と二桁目が1~10の数字の2つの数字を持ったカードが複数枚ある。
一枚目を親としそれ以降を子とし、それぞれを比較していく。
一桁目が小さい方を勝ちとする。
一桁目が同じだったら二桁目を比較する。
二桁目は大きい方を勝ちとする。
子が何回勝ったかを返す

a = <<~TEXT
12  8 #親
15  9 #子
 4 11 #子
12 19 #子
12  4 #子
TEXT

=> 2

コード

FORMAT = /(\d*) (\d*)/

def high_low_check(card_number)
  card = card_number.scan(FORMAT).map { |array| array.map(&:to_i) }
  card[1..-1].map { |array|
    if array[0] < card[0][0]
      'win'
    elsif array[0] == card[0][0]
      'win' if array[1] > card[0][1]
    end
  }.count('win')
end

正規表現で各カードを配列に入れて比較していきます。
if文の中が似たような比較があってあまりDRYじゃないな〜という印象ですがどう治せばいいか分からなかったので、
もし分かる方いたら教えて頂きたいです💦

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0