ロボサバ大会 道中記

10 @ARUN サバREC v1.0 20211023
20 @S:S=””+12:let[0],9000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000
30 out6,1:out0:R=0
40 R=R+1:ifR>99R=0elseifIN(1)cont
50 ifIN(9)*IN(2)list@S:?:lrun1
60 ifR?”EzoSava learns”:?else?”ガクシュウ ロボサバ”:?
70 L=13:K=L:beep5,-1
80 if!IN(9)+!IN(2)cont
90 forP=0to35:G=0:beep20,-1
100 if!LD=9:W=999:G=-W:goto@ESC
110 ifL=13D=0
120 ifL=19D=1
130 ifL=09D=2
140 ifL=11D=3
150 ifL=12D=4
160 ifL=10D=5
170 ifL=17D=6
180 ifL=18D=7
190 ifL=14D=8
200 ifL=3’up
210 ifL=5’dw
220 if R G=D*2+(D>2)*2+(D>5)*2
230 if!R G=D*4+(D>1)*4+(D>4)*4+(D>5)*16+(D>7)*4
240 outG:clt
250 gsb@KPAD:ifK=L&&tick()<999cont
260 W=tick():L=K:beep5
270 @ESC:?”Rec.”;P,”OUT”;G,”WAIT”;W
280 Q=#900+pos():?dec$(D*1000+W,4);:copyS+P*5,Q,4:?:?
290 ifD=9P=99
300 next:out0:beep0:save0:list@S:play”t400<<<$efgb”:end
310 @KPAD
320 A=ANA(2):ifA>1013rtn
330 ifA<300K=A/30elseK=A/77+6
340 ifA>897K=A/39-5
350 rtn

save0

※220行目はJAMCARの時のOUT値を求める計算式
※230行目はロボサバの時のOUT値を求める計算式
 この行を下記に置き換えると、MapleSyrupに対応する
230 if!R G=D+(D>2)*13+(D>5)*13

1000 @サバGO v1.0(save1)1010 ifR?”EzoSava! Go”:?else?”イケイケ! ロボサバ”:?
1020 ws.led8:forP=0to35
1030 if!sound()play”$o4a8a824r48a8f+8e8a8r8o5c4o4a8a824r48a8f+8e8a8r8f+4o4a8a824r48a8f+8e8a8o5c8d8d+8e8d+16e16d+16e16d+16e24r48e4e412r24e16d16c+16o4b16″
1040 D=[P]/1000:ifD==9P=99:goto@NEXT
1050 gsb@MACHINE:W=[P]%1000
1060 ?”Step.”;P,”OUT”;G,”WAIT”;W:?:outG:gsb@WAIT
1070 @NEXT:next
1080 out0:ws.led1,8:play”t999<<8999goto@DANCE
1090 ifIN(9)contELSEbeep7,30:ws.led2,4:wait180:run
1100 @DANCE:?”ダンス”:forA=-6to5:W=abs(A)*20+15:forB=0to3:ifB<2P=B*12+4elseP=B*36-60
1110 outP:waitW:out0:wait9:if!IN(9):lrun0
1120 next:next:goto@DANCE
1200 @MACHINE
1210 if R G=D*2+(D>2)*2+(D>5)*2:’ezosava
1220 if!R G=D*4+(D>1)*4+(D>4)*4+(D>5)16+(D>7)*4:’robosava
1240 rtn
1300 @WAIT
1310 clt
1320 @L
1330 iftick()>Wrtn
1340 B=ANA()/100
1350 ifB<5beep5:OUT0:?”Emergency stop”
1390 goto@L

save1

※1210行目はJAMCARの時のOUT値を求める計算式
※1220行目はロボサバの時のOUT値を求める計算式
 この行を下記に置き換えると、MapleSyrupに対応する

1230 if!R G=D+(D>2)*13+(D>5)*13:’MapleSyrup

ロボサバ動作のしくみ
debug中の実行画面

この教材は「Creative Commons — CC BY-SA 4.0」の下に提供されています。