LoginSignup
5
4

More than 5 years have passed since last update.

ズンドコキヨシ with Ruby

Last updated at Posted at 2016-03-16

最近Ruby力が落ちてきている気がするので、力試しにやってみる。

尚、@yancya さんのコードは極力見ないようにする。
http://qiita.com/yancya/items/1167e9764719151d0c80

でも、@joker1007さんのアドバイスは見てしまったのでそれは不可抗力で。

とりあえず仕様を満たす動きをサラッと書いてみる。

#coding: utf-8

zun = "ズン"
doko = "ドコ"
ary = []

while ary << [zun,doko].sample
  p ary.last
  if ary.last(5) == [zun, zun, zun, zun, doko]
    p "キ・ヨ・シ!"
    break
  end
end

で、これを最適化する。

#coding: utf-8

zun, doko = "ズン", "ドコ"

loop
  .lazy
  .map { p [zun,doko].sample }
  .each_cons(5) { |a| p "キ・ヨ・シ!"  and break if a.join == zun * 4 + doko }

2016.03.17 「ズン」が1個足りてなかったのと1個目のコードの判定がおかしかったので修正。

each_consを使えば? という@joker1007さんと、チラ見してしまった@yancyaさんのmap処理見てなければ後者は無理だったと思う。

5
4
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
5
4