10 'REVERSE 20 CLS:CLV:N=8:X=2:M=2 30 [1]=RND(N-1)+2 40 FOR I=2 TO N :J=0 50 [I]=RND(N)+1 60 J=J+1 70 IF[I]=[J] J=0:GOTO50 80 IF J<I-1 GOTO60 90 NEXT 100 LC0,0:FORI=1TON:?[I];:NEXT 110 LCX-1,1:?CHR$(94):GOTO 400 200 K=INKEY() 210 IF K=SPACE BEEP:S=S+1:GOTO 300 220 X=X+(X<N)*(K=RIGHT)-(X>2)*(K=LEFT) 230 IF M=X GOTO200 240 LC M-1,1:?" ";:M=X 250 GOTO110 300 FOR I=1 TO M/2 310 [N+1]=[I]:[I]=[M-I+1]:[M-I+1]=[N+1] 320 NEXT 330 GOTO100 400 G=0:FORI=1TON 410 IF [I]<>I I=N:G=200 420 NEXT 430 IF G<>0 GOTO G 440 LC 0,1:?DEC$(S,4);"STEP" 450 IF INKEY()<>SPACE GOTO450ELSEGOTO20
む、むずかしい! 私の頭では解ける気がしません……。 ところで、一番左でSPACEを押すと止まってしまいました(IchigoJam1.2.2で確認)。行番号210でGOTO 300を実行する条件として、Mの値も加味するのが良さそうです。