10 WIDTH20,8:MEMSET&HB00:DEFINTA-Z 20 OPTIONBASE1:DIMCARD(16),DECK(16),TILE(4,4) 30 A=VAL(RIGHT$(TIME$,2)):RANDOMIZEA:POKE&H11E,&HA:POKE&H11F,&H40 40 FORI=&HA40 TO&HA9F:READJ$:J$="&H"+J$:J=VAL(J$):POKEI,J:NEXTI 50 FORI=1TO16:DECK(I)=I:NEXTI:CARD(16)=16 60 FORI=15TO1STEP-1 70 K=INT(RND*I)+1:CARD(16-I)=DECK(K) 80 FORJ=K TOI-1:DECK(J)=DECK(J+1) 90 NEXTJ:NEXTI 100 FORI=1TO4:FORJ=1TO4:TILE(I,J)=CARD(J*4+I-4):NEXTJ,I:X=4:Y=4 110 FORJ=1TO4:FORI=1TO4:LOCATEI+7,J-1:PRINTCHR$(223+TILE(I,J));:NEXTI,J 120 A$=INPUT$(1):A=ASC(A$):IFA<28ORA>31THEN120ELSEA=A-27 130 ONA GOSUB170,220,270,320 140 FLAG=0:FORI=1TO4:FORJ=1TO3 150 IFTILE(I,J)<>J*4+I-4THENFLAG=1 160 NEXTJ,I:IFFLAG=0THEN370ELSE120 170 IFX=1THENSOUND1,1:RETURN 180 SWAPTILE(X,Y),TILE(X-1,Y) 190 LOCATEX+7,Y-1:PRINTCHR$(223+TILE(X,Y)); 200 LOCATEX+6,Y-1:PRINTCHR$(32); 210 X=X-1:SOUND20,1:RETURN 220 IFX=4THENSOUND1,1:RETURN 230 SWAPTILE(X,Y),TILE(X+1,Y) 240 LOCATEX+7,Y-1:PRINTCHR$(223+TILE(X,Y)); 250 LOCATEX+8,Y-1:PRINTCHR$(32); 260 X=X+1:SOUND20,1:RETURN 270 IFY=4THENSOUND1,1:RETURN 280 SWAPTILE(X,Y),TILE(X,Y+1) 290 LOCATEX+7,Y-1:PRINTCHR$(223+TILE(X,Y)); 300 LOCATEX+7,Y:PRINTCHR$(32); 310 Y=Y+1:SOUND20,1:RETURN 320 IFY=1THENSOUND1,1:RETURN 330 SWAPTILE(X,Y),TILE(X,Y-1) 340 LOCATEX+7,Y-1:PRINTCHR$(223+TILE(X,Y)); 350 LOCATEX+7,Y-2:PRINTCHR$(32); 360 Y=Y-1:SOUND20,1:RETURN 370 IFTILE(1,4)=13ANDTILE(4,4)=16THEN380ELSE120 380 IFTILE(2,4)=14ANDTILE(3,4)=15THEN390ELSE400 390 FORI=1TO3:FORJ=56TO51STEP-1:SOUNDJ,1:SOUND51,1:SOUND56,1:NEXTJ,I:LOCATE0,0:END 400 FORI=1TO2:FORJ=56TO1STEP-4:SOUNDJ,1:SOUNDJ+1,1:NEXTJ,I:LOCATE0,0:END 410 DATA 00,00,44,7E,40,00,FF,BB,9D,AD,B3,FF,00,22,4A,4E,32,00,FF,CF,D7,DB,81,FF 420 DATA FF,D1,B5,B5,CD,FF,00,3C,4A,4A,30,00,FF,FD,8D,F5,F9,FF,00,34,4A,4A,34,00 430 DATA 00,0C,52,52,3C,00,FF,81,FF,81,BD,81,00,04,7E,00,04,7E,FF,81,FF,8D,B5,B3 440 DATA FF,81,FF,BD,B5,C9,00,7E,00,38,24,7E,FF,81,FF,B1,B5,8D,00,00,00,00,00,00