はじめに
この記事は、@kjunichiの2014年パーソナルアドベントカレンダーの22日目の記事です。
なる素晴らしい投稿を見つけて、WebRubyで動かして、Jsdo.itの投稿さぼり気味だから、今年最後の作品かもなぁ。と作業を始めた。
コードは短いが
WebRubyでさっそく試したら、 配列に対しての#sampleメソッドがwebrubyに入っていなかった。
なんと、今回も
前回
今回
@kjunichi mruby-random mrbgemを組み込めばArray#sample使えるようになります。
— Yukihiro Matsumoto (@yukihiro_matz) 2014, 12月 19
途中であきらるわけにはいかない
Chromebook買ったばかりで、いろいろ試したいのもあり、一旦WebRubyで動かすことは 潔く諦め、mrubyで動かすことに
mrubyの最新版ではデフォルトで、#sampleが使えるようにmrbgemがコンパイルされていた。
bin/mirb mirb - Embeddable Interactive Ruby Shell > [1,-1,2].sample => 1 > [1,-1,2].sample => 1 > [1,-1,2].sample => -1 > [1,-1,2].sample => -1 > [1,-1,2].sample => 1 > [1,-1,2].sample => 1 > [1,-1,2].sample => 1 > [1,-1,2].sample => 1 > [1,-1,2].sample => 2
sleepがない!
のモジュールを追加するだけでよかった
が、どうも、CRubyのスリープとは異なり、小数点指定だと、動かないようで、整数で指定する必要がある模様。
-> usleepだと1秒未満のスリープを指定できた。
# Use mrbgems # conf.gem 'examples/mrbgems/ruby_extension_example' # conf.gem 'examples/mrbgems/c_extension_example' do |g| # g.cc.flags << '-g' # append cflags in this gem # end # conf.gem 'examples/mrbgems/c_and_ruby_extension_example' # conf.gem :github => 'masuidrive/mrbgems-example', :checksum_hash => '76518e8aecd131d047378448ac8055fa29d974a9' # conf.gem :git => 'git@github.com:masuidrive/mrbgems-example.git', :branch => 'master', :options => '-v' conf.gem :github => 'matsumoto-r/mruby-sleep' # include the default GEMs conf.gembox 'default'
mrubyで今回のGemを動かすには、
gem install enjoy_markov
でインストールして、enjoy_markov.rbを取出し、以下を追加
range, speed = 20, 1 EnjoyMarkov.start!(range, speed)
mrubyでこの編集したenjoy_markov.rbを実行。
出来た!
mruby/bin/mruby enjoy_markov.rb | *| | | * | | | *| | | * | | |* | | * | | *| | | * |