ICFP programming contest 2012
http://shinh.skr.jp/dat_dir/icfp12.tgz
二日目から遊んでました。
<vp0"L"2p0"F"0p0"E"0p0"D"*55p0"C"0p0"B"*25p0"A"0 p"d"00 v< >0"J"0p 0"M"0p v > >00g"F"0g2p 10g"F"0g1+2p :"F"0g2+ v v p0"N"0 < > "G"0p ^ > :"*"- #v_^ 2 v < ^ +1g0"G" _^#!-"@": < > :"\"- #v_ "G"0g v p > 010p 000p > #^~:00g 10g"e" +p:"R"-#^_00g 50p10g 60pv v p0"G"+1 < v< ^p00+1g00 _v#-5-5 < < p0"F"+3g0"F" < ^p01+1g01p000_v#g00< v < > ~$~$~$~$~$ "B" v >#v~:"W"-#v_$~$~$~$~$~ " "- #^_ "A" v >:"F"-#v_ $~$~$~$~$~$~$~$~$ "C" v v$~$~$~ -"A"< >:"G"-#v_ $~$~$~$~$~$~$ "D" v >~$~$~$~$~$v >:"R"-#v_ $~$~$~$~$~$~$ "E" v v v p3\~$~< >:"T"-!#v_ > v^~ $~$~$~$~$~$~$~$~$~$~$< >"???" ,,,~,~,~,@ ^_^#!-5-5 ~v#< p 0 \ &v# < > > "B"0g"I"0p 10g"="0p "E"0g">"0p 0 > ::0g \ "="0g"e"+ p v v$_^# ! -"K" : +1 < > 000p 10g 1+ 10p v >0 > ::2g \ "="0g"e"+1+ p v v_^# ! +1-g0"=" g01 < v$_^# !-1-g0"F" : +1 < >"="0g+ p 5-5- !#^_ 00g 1+ 00p v >0 > ::3g \ "="0g"e"+2+ p v ^+3+"e"g01 g00 : g +"e"g01 g00 < p010 p000 $_^# ! -6-6 : +1 < > "H"0g "2"* "J"0g - : "M"0g 5*5* "N"0g - `! #v_ $ "H"0g2*"M"0p "J"0g"N"0p 0 v v _v# ` 0 +"d" - g0"J" *"2" g0"H" $<$$S#g0"J" p"c"\ _v# !:g"d" :: < timeout >\"c"p 1+ ^ > 3 v v0 p0"N"g0"J" p0"M"*3g0"H" _v# ` - g0"N" *5*5 g0"M" : - g0"J" *"K" g0"H" < > :: "d"g: #v_ \"c"p $ #S > $ v ^ +1 p "c"\ < v p0 \ g+"e"g0"=" :: < 0 g0"L"<_^# < v< > 1+ : "K"- #^_$v v p2 \ g+1+"e"g0"=" :: < 0< # > 000p 10g 1+ 10p v > 1+ : "F"0g-1- #^_$v v^_^#! +1-g0"=" g01 < v p3 \ g+2+"e"g0"=" :: < 0< > "e"+ p 5-5- !#^_ 00g 1+ 00p v > 1+ : 6-6- #^_$ v ^ g01 g00 : g+3+g0"="+"e"g01 g00 < p010 p000 p0"L" < # V >> v > "U" v exit > "L"0g1g:88*`#v_$>??"W"v > #v? "R" v >, @ > , 1+ v v p0"L"+1g0"L"< >> ^ v"L"<> "D" v ^*52,"A"_^#!:g"c": < v < < < 0 v> : "J"0g "d" p 0 "J"0g1+ "d" p "K"0g 1+:"K"0p 9/9/9/9/9/ #^_ v < v p +"e"+g0 6 -1%3 \+ g0 5 -1/3 :g07 " "< v _^# -"W" g +"e"+g0 6 < > 70g:1- 70p !#^_ > 70g: 3/1- 50g + \ 3%1- ^ > "J"0g1+"J"0p:"A"-#v_ @<-abrt > 870p ^ >:"R"-#v_10> 60g+10p:v v< $$$ < >:"W"-#v_ $ ^ >:"L"-#^_01-0 > ^vp00+g0 5< goal | -g0"H"g0"G" < >:"S"-#v_ $ ^ >:"D"-#^_01 > ^ v< >00g10g v 0$$$< > ^ >:"U"-#^_001- ^ |-"\":g+"e"<^ v$_v#`"I": _^#-"O": _^#-"L": _v#-"@":_v#-"*": _v#-" ": _v#-".":<> "H"0g v >:"@"` #v_ v$< > v v $$ < < p0"H" +1 < v$$ _v# -"!"< |-" "g+"e"g01::+g00\< > "<"0p $$ > " " 50g 60g"e"+p "R" 00g : 50p v > ">"0g 1+ ">"0p $ ^ $$ < p01 g08 < >$$^ $$$ < > 70g 00p ^ > "A"-3g 070p080p :"0"`! #^_ > 80g"="0g- !#^_ : 70g 80g"e"+g : v > " " 00g10g"e"+ p v ^ p07+1g07 _^# - _v#-5-5< ^ < ^ $$ p08 +1g08 p070 < v $ p+"e" p0 6: g01 < 0 > > v > :"F"0g-!#v_ :2g 00p :1+2g10p 3+ 00g 50g - #^_ 10g 60g- #^_ "<"0g 00p v v _v#-"@": _v#-"*": _v#-"\": _v# -" ":g+1+"e"g01g00< < #< vg+"e"g01+1g00< < < > 10g1+ 10p v >" "-#v_00g1+10g"e"+1+g" "-#v_ 00g1+ 00p ^ < v v_ ^#-"\": < < > # 00g1-10g"e"+g" "- #v_ 00g1-10g"e"+1+g" "- #v_ 00g1- 00p ^ # > > v ^ p "b"-2 \ g01 : p "b"-3 \ g00 : $ < > > :3-\! #v_ ::"b"g\ 2g - #v_ :1+:"b"g\ 2g - #v_ v < > >:" "\:2g\1+2g"e"+p v vp+"e"g01 g00 p2 \ g01 +1 p01 g"b"+1: p2 \ g00 : p00 g"b":\ g2+2::< $ > 00g 50g- #v_ 10g 60g-1+ #v_ $ 1 ^ ^ v+"e"g01g00< < *death* >1+g " "-!#v_ :2+2g"@"- #v_ "\" 00g10g"e"+p :01-\"b"p :01-\2p v ^ < < < water-> 2 ^ v _^#!`\0 p0"I":-1g0"I" < > "R" 50g 60g"e"+p "C"0g:!#v_ "J"0g \/ "A"0g+1+ "="0g 60g- ` | v $ < 0 p0"I"g0"B" < ^ < v p00 +1 g00 << ^ > "J"0g "D"0g % #^_ 000p 010p > 00g 10g "e"+ g: 5-5- !#v_ "W"- | v $ p071 p08 < > 10p ^ v p010 p000 $ _^# ! -g0"=" :+1 g01 p000$< > 80g1- :2+ #^_ $$ ^ v _^# +2: -1g07 < _v# -" " g +"e"+g01g08 +g00g07 < p081 p071 < > "w" 70g00g+ 80g10g+"e"+ p v > 70p v ^ < > > ^ v p00 +1 g00 < < > 00g 10g"e"+ g: 5-5-! #v_ "w"- #^_ "W" 00g 10g"e"+ p ^ ^p01 _v# - g0"=" :+1g01 p000$< ^ $ <
Befunge で書いたソルバ。一応確認した範囲では正しくシミュレーションできてると思う。出した答えはちゃんと正の点数出るし。
遊んでた理由はマラソンチックなコーディング飽きてるっていうのと、ちょうどネタ的にいい問題だなーと思ったから。一度こういうのやってみたかったんですよね。二度とやりたくないですが。メモリダンプするだけでビジュアライザが完成するのがえらい。
ちなみにシミュレータ完成が終了6時間前という、未だかつてないスタートラインの遠さでした。一応答え吐くものができたのは終了1時間前くらいで、ホントできてよかったです…
結果。つっても毎回変わるけど。
contest1.map 191 contest2.map 158 contest3.map 145 contest4.map 360 contest5.map 531 contest6.map 46 contest7.map 735 contest8.map 389 contest9.map 696 contest10.map 531 flood1.map 180 flood2.map 142 flood3.map 565 flood4.map 173 flood5.map 236 beard1.map 421 beard2.map 981 beard3.map 487 beard4.map 531 horock1.map 228 horock2.map 217 horock3.map 848 trampoline1.map 266 trampoline2.map 821 trampoline3.map 288
Lightening division の結果。こっちはほぼ決定的に動く。
contest1.map 210 contest2.map 143 contest3.map 271 contest4.map 573 contest5.map 806 contest6.map 745 contest7.map 863 contest8.map 1241 contest9.map 3023 contest10.map 2145 flood1.map 521 flood2.map 274 flood3.map 800 flood4.map 310 flood5.map 573
実行のようす。普段はもっと大きいフォントで見てましたが。