100 R=RND(-TIME)
101 IF PEEK(&H2D)=0 GOTO 10
102 GET TIME T$
103 R=VAL(RIGHT$(T$,2))
104 R=RND(-R)
110 DEFINT A-Z
120 M=16
130 S=0
140 SCREEN 1,3
150 KEY OFF
160 DIM S$(16),P(16)
170 FOR I=1 TO 16
180 PUT SPRITE I,(((I-1) MOD 4)*32+64,INT((I-1)/4)*32+32),15,I
190 P(I)=I
200 NEXT I
210 FOR I=32*1 TO 32*16-1
220 READ S$
230 VPOKE &H3800+I,VAL("&H"+S$)
240 NEXT I
250 FOR I=99 TO 0 STEP -1
260 R=RND(1)*4+1
270 ON R GOSUB 610,630,650,670
280 IF M=T GOTO 260
290 PUT SPRITE T,,,16
300 PUT SPRITE M,,,P(T)
310 SWAP P(M),P(T)
320 M=T
330 B$=RIGHT$(STR$(I),2)
340 FOR J=0 TO 7
350 VPOKE &H3800+32*16+J+4,VPEEK(ASC(MID$(B$,1,1))*8+J)/2
360 VPOKE &H3800+32*16+J+20,VPEEK(ASC(MID$(B$,2,1))*8+J)/2
370 NEXT J
380 NEXT I
390 B$=RIGHT$(" "+STR$(S),4)
400 FOR J=0 TO 7
410 VPOKE &H3800+32*16+J,VPEEK(ASC(MID$(B$,1,1))*8+J)/2
420 VPOKE &H3800+32*16+J+16,VPEEK(ASC(MID$(B$,2,1))*8+J)/2
430 VPOKE &H3800+32*16+J+8,VPEEK(ASC(MID$(B$,3,1))*8+J)/2
440 VPOKE &H3800+32*16+J+24,VPEEK(ASC(MID$(B$,4,1))*8+J)/2
450 NEXT J
460 C=16
470 IF P(C)<>C GOTO 520
480 C=C-1
490 IF C>0 GOTO 470
500 IF INKEY$<>"" GOTO 500
510 END
520 K=STICK(0)+STICK(1)
530 ON K GOSUB 610,680,630,680,650,680,670
540 IF T=M GOTO 520
550 PUT SPRITE T,,,16
560 PUT SPRITE M,,,P(T)
570 SWAP P(M),P(T)
580 M=T
590 S=S+1
600 GOTO 390
610 T=M+(M>4)*4
620 RETURN
630 T=M-(M MOD 4>0)
640 RETURN
650 T=M-(M<13)*4
660 RETURN
670 T=M+(M MOD 4<>1)
680 RETURN
690 DATA 00,7F,7F,7F,7F,7F,7F,7F,7F,7F,7F,7F,7F,7F,7F,00
700 DATA 00,FE,FE,E6,E6,E6,E6,E6,E6,E6,E6,E6,E6,FE,FE,00
710 DATA 00,7F,7F,7E,7E,7F,7F,7E,7E,7E,7E,7E,7E,7F,7F,00
720 DATA 00,FE,FE,06,06,E6,E6,06,06,7E,7E,06,06,FE,FE,00
730 DATA 00,7F,7F,7E,7E,7F,7F,7E,7E,7F,7F,7E,7E,7F,7F,00
740 DATA 00,FE,FE,06,06,E6,E6,06,06,E6,E6,06,06,FE,FE,00
750 DATA 00,7F,7F,7E,7E,7E,7E,7E,7E,7F,7F,7F,7F,7F,7F,00
760 DATA 00,FE,FE,66,66,66,66,06,06,E6,E6,E6,E6,FE,FE,00
770 DATA 00,7F,7F,7E,7E,7E,7E,7E,7E,7F,7F,7E,7E,7F,7F,00
780 DATA 00,FE,FE,06,06,7E,7E,06,06,E6,E6,06,06,FE,FE,00
790 DATA 00,7F,7F,7E,7E,7E,7E,7E,7E,7E,7E,7E,7E,7F,7F,00
800 DATA 00,FE,FE,06,06,7E,7E,06,06,66,66,06,06,FE,FE,00
810 DATA 00,7F,7F,7E,7E,7F,7F,7F,7F,7F,7F,7F,7F,7F,7F,00
820 DATA 00,FE,FE,06,06,E6,E6,E6,E6,E6,E6,E6,E6,FE,FE,00
830 DATA 00,7F,7F,7E,7E,7E,7E,7E,7E,7E,7E,7E,7E,7F,7F,00
840 DATA 00,FE,FE,06,06,66,66,06,06,66,66,06,06,FE,FE,00
850 DATA 00,7F,7F,7E,7E,7E,7E,7E,7E,7F,7F,7E,7E,7F,7F,00
860 DATA 00,FE,FE,06,06,66,66,06,06,E6,E6,06,06,FE,FE,00
870 DATA 00,7F,7F,66,66,66,66,66,66,66,66,66,66,7F,7F,00
880 DATA 00,FE,FE,06,06,66,66,66,66,66,66,06,06,FE,FE,00
890 DATA 00,7F,7F,67,67,67,67,67,67,67,67,67,67,7F,7F,00
900 DATA 00,FE,FE,E6,E6,E6,E6,E6,E6,E6,E6,E6,E6,FE,FE,00
910 DATA 00,7F,7F,66,66,67,67,66,66,66,66,66,66,7F,7F,00
920 DATA 00,FE,FE,06,06,E6,E6,06,06,7E,7E,06,06,FE,FE,00
930 DATA 00,7F,7F,66,66,67,67,66,66,67,67,66,66,7F,7F,00
940 DATA 00,FE,FE,06,06,E6,E6,06,06,E6,E6,06,06,FE,FE,00
950 DATA 00,7F,7F,66,66,66,66,66,66,67,67,67,67,7F,7F,00
960 DATA 00,FE,FE,66,66,66,66,06,06,E6,E6,E6,E6,FE,FE,00
970 DATA 00,7F,7F,66,66,66,66,66,66,67,67,66,66,7F,7F,00
980 DATA 00,FE,FE,06,06,7E,7E,06,06,E6,E6,06,06,FE,FE,00
​