octech このページをアンテナに追加 RSSフィード

2007-05-20 頭の体操3

[][]FizzBuzz, short code #3 20:09 FizzBuzz, short code #3を含むブックマーク

仕事やゲームの合間に、ちょっとshort coding。

step 6: "if"の代わりに"&&"

ここにいくつかRubyのshort codingに関するtipsが載っている。

この中にあった次の1文が面白い。

? : operator as well as using i==0&&j+=7 instead of j+=7 if i==0

三項演算子を使うべし、という説明なのだけど、その後半も結構使える感じで、if文でチェックすると、ifの後ろに空白が一つできるけど、&&なら空白は必要ない、ということなのだ。

昨日トライしたコードの最後のやつでも適用できて、次のような感じになる。

# 元のコード.
1.upto(100){|i|s=i%3==0?'Fizz':'';s+='Buzz'if i%5==0;puts s==''?i:s}
# &&に置き換えて1byte削減!
1.upto(100){|i|s=i%3==0?'Fizz':'';i%5==0&&s+='Buzz';puts s==''?i:s}

そんな感じでコードを見渡してたら、三項演算子を使えそうに見えてきたので、ちょっと考えたらさらに短く出来ました!

1.upto(100){|i|s=i%3==0?'Fizz':'';puts i%5==0?s+'Buzz':s==''?i:s}

これで65byte、23位まで上昇!

anarchy golf - FizzBuzz

f:id:octech:20070520200744j:image

参考になりそう

このあたりのリファレンスもshort codingに参考になりそうなので、URLをメモしておく。

[]レイトン教授と不思議な町 20:35 レイトン教授と不思議な町を含むブックマーク

今年の2月に発売されていて、発売前から気になっていたDSのゲーム「レイトン教授と不思議な町」を最近ようやく買いまして、今日クリアしました。

レイトン教授と不思議な町(特典無し)

レイトン教授と不思議な町(特典無し)

ちょっと期待感が高すぎたせいもあったけど、それなりにいい、という感じでした。

今は、ストーリーはクリアしたけど、ゲーム中のナゾがあと1個見つけられなくてコンプリート直前、という状態。本編のほかにも、やりこみ要素用のナゾや、WiFiで配信されるナゾもほとんど解いていないので、もうちょっと遊べそうです。

このゲームでまず目に留まるのがそのグラフィックス!

俺の大好きなアニメーション「ベルヴィル・ランデブー」を髣髴とさせる、というか、そのまんまな色味やキャラつくり。日本的なアニメのコッテリ感も混ぜつつの絶妙なバランスがとてもよかった。

ページが見つかりませんでした – クロックワークス公式サイト – THE KLOCKWORX

ベルヴィル・ランデブー [DVD]

ベルヴィル・ランデブー [DVD]

また、この魅力的なキャラを生かしたストーリー展開もいい。序盤薄味で物足りないかなー、と思っていたが、後半にグッと濃くなり、堂々とTo Be Continued と書かれた次回作に期待してしまいます。

声優大泉洋、堀北真希はピッタリ!というか、ピッタリすぎて物足りない。。ちょっと癖があるくらいがいいかもしれない。

現在まででプレイ時間が13時間弱。これぐらいが大きな区切り(本編とやりこみ要素の区切り)がくると、ちょうど良いボリュームですね。長めに見積もっても20時間といったところかな。これが「クリアまでの平均プレイ時間30時間」とかなると、先が見えなくてやる気喪失してしまいそう。

で、問題のナゾ各種。

かの有名な多湖輝が監修。監修っていうか、過去の「頭の体操」シリーズから引っ張ってくるだけでいいから楽だよなー、と思いながらゲームしていました。たまに見たことがあるナゾに懐かしさを感じたりしつつ。

むかし、本を読んでいたときはちょっと考えて分からなかったり面倒だったりしたらすぐに裏の答えを見てしまっていたけど、そういう部分は本よりも純粋に楽しめる仕組みになっていて良い。

ナゾ別に違うインターフェイスを用意しなきゃいけないところが大変そうだったけど、クレジットを見るとプログラマーは二人!しかし、ベースプログラムとかユーティリティとかは別チームからの流用もきくだろうし、まぁ妥当な人数か。

これがレベルファイブがパブリッシャーとして最初に放つゲームとなったわけですが、総じてGOODなゲームでした。

次回作が出るのも楽しみにしています!