どう書く
yhpg
ツインテールdeエンジェルモード!!
スクリプト言語AIR

十字の壁がそそり立つ世界の中を君は螺旋状に歩く (規則性、AIR-lang)

問題
http://nabetani.sakura.ne.jp/hena/ord28spirwa/

シミュレーション (Python/Ruby/C++)
http://qiita.com/cielavenir/items/8c77a158136bd668a27b

規則性 (Python/Ruby/C/C#/Java)
http://qiita.com/cielavenir/items/a285b0cea4a26ff886b8

規則性 (D/Go/Swift/PHP/ Vala )
http://qiita.com/cielavenir/items/edb1daff9ea861a418ec

規則性 (VB/F#/Perl)
http://qiita.com/cielavenir/items/0c84af4049ab161f82c1

規則性 (PowerShell)
http://qiita.com/cielavenir/items/d9ef9f12068e99e888f2

規則性 ( AIR-lang )
http://qiita.com/cielavenir/items/d804f61412fb4f07ba06

規則性 (Crystal/Perl6)
http://qiita.com/cielavenir/items/13896a662b05da8b77a2

Rubyの多次元配列で最初の要素を加工して返したい
(tap/break等について)
http://qiita.com/cielavenir/items/3f209351b924e2615f5e

スクリプト言語AIRとして公開され、今はツインテールdeエンジェルモード!!と言う名前になっている謎言語。

このたびさくらサーバー上に導入したLinuxBrew上でビルドすることに成功しましたので、その記念にyhpgの過去問1つをば。

文法自体はかなりまともで、Perlに近いです。mapとかreverseとかないですが…

そういえば、flushしなくても正しく採点できるようです。どういう実装になってらっしゃるんだろう…

#!/usr/bin/env tt

# http://qiita.com/Nabetani/items/23ebddb44f0234e7fb15
# http://nabetani.sakura.ne.jp/hena/ord28spirwa/

dir="ESWN"
while(line=gets()){
_=split(line,':')
days=int(_[1])+1
_=split(_[0],',')
l={int(_[1]),int(_[2]),int(_[3]),int(_[0])}
f=TRUE
for(i=0;f;i++){
x={l[i%4]+(i%4==0),(i/4*2)+2,l[i%4]-(i%4==3)}
for(j=0;j<3;j++){
if(days-x[j]<0){
print("%c\n",subchr(dir,(i+j)%4))
f=FALS
break
}
days-=x[j]
}
}
}