2013年1月26日土曜日

jsコードゴルフ,その2(迷路)

あけましておめでとうございます。
晴々しく迎えた2013年、かれこれ1か月の時が過ぎようとしています。2014年はがんばりましょう。

-------------------------------------

挑戦者求む!コードゴルフ:迷路byクロノス・クラウン合同会社 http://bit.ly/ThB7NS @codeiqさんから

おわりました。
実のところクリスマスに開催された直後は、あまりやる気が起きませんでしたが、
年度が変わって2週間ほど経った頃、ようやくモチベが出まして、それから5,6日ほど浸かっておりました。

というのも、ProjectEulerなるサイトにも少々触れておりまして、今回のゴルフに使えるロジックを偶然組んでおり、「ハッこれ使えるじゃん!」などと流用と共に当ゴルフに打ち込み始める・・・という経緯がありました。
(数学自体は苦手ですが、だからこそとちまちま触ってます。 問題はこちら→ http://projecteuler.net/problem=24 )

pythonコードだったそれをjsとして移植、改良を加えた所、ようやく階乗の都合うんぬんなど徐々に見えてきまして、よく楽しむ事が出来ました。楽しかった!

結果については、提出時(18日)の時点は13位まで食い込めていたのですが、流石の競争率と言いましょうか、締切には19位まで追い越されてしまいました。

しかしながら、個人的な満足度は非常に高い結果となりました。
前回のゴルフが始まるまで、実のところjsの仕様など何処吹く風であった割には、
(言語仕様程度ではありますが)よく勉強でき、そして楽しさを知る事が出来ました事、十分すぎる成果だと思います。

クロノス・クラウンさん、ProjectEulerさん、そしてCodeIQさんに感謝いたします。

結果:
19位/108
258バイト

解答:
s=[]
w=56
for(t=w*35;t--;)s[t]=~t%w?t%w%54&&t/w%34|0?"■":e=" ":"\n"
function p(x){for(var j=4;j--;s[o=x+k*2]<e&&(s[o]=s[o-k]=e,p(o)))for(a=7*(x%w+3)*~~(x/w+5)%24,h=[-1,-w,1,w],b=4;b-->j;k=h[i=0|a/c],a%=c,h[i]=e,h.sort())c=b<3?b:6}p(274)
return s.join("")

(整形はこの辺でどぞ: http://www.enjoyxstudy.com/misc/20060911/code_paste.html)
(これ使った: ソースコード HTML化 コンバーター「唐辛子」)

---------------


まじめか!!!!!!!


0 件のコメント:

コメントを投稿