home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
games
/
15game.zip
/
15GAME.BAS
Wrap
BASIC Source File
|
1985-11-18
|
4KB
|
93 lines
10 '************************************************************************
20 '* Converted from N-basic by Phillip R. Johnson (213) 881-8492, 1-1-84. *
30 '************************************************************************
40 CLEAR 300:DEF FNR(R)=INT(RND(1)*R):DIM A(16),B(15)
50 SCREEN 0,0,0:WIDTH 40:KEY OFF:COLOR 7:LOCATE 1,1,0
60 Z$=CHR$(31)+STRING$(4,29):S$=CHR$(201)+CHR$(205)+CHR$(205)+CHR$(187)+Z$+CHR$(186)+"##"+CHR$(186)+Z$+CHR$(200)+CHR$(205)+CHR$(205)+CHR$(188)
70 VD$=" "+Z$+" "+Z$+" "
80 GOSUB 610
90 GOSUB 640
100 IF K>0 THEN ON K GOSUB 150,160,170,180,190,200,210:GOTO 220
110 FOR I=0 TO 15:A(I)=I:NEXT
120 FOR T=1 TO 50:SOUND 400,.03:SWAP A(FNR(16)),A(FNR(16)):NEXT
130 FOR I=1 TO 15:IF A(I)=0 THEN H=1
140 NEXT:GOTO 230
150 RESTORE 780:RETURN
160 RESTORE 790:RETURN
170 RESTORE 800:RETURN
180 RESTORE 810:RETURN
190 RESTORE 820:RETURN
200 RESTORE 830:RETURN
210 RESTORE 840:RETURN
220 FOR I=0 TO 15:READ A(I):NEXT :READ H
230 COLOR 5:PRINT CHR$(12)
240 COLOR 2:P=18:GOSUB 540:LOCATE 18,3:COLOR 5:PRINT "OK?";
250 K$=INPUT$(1):IF K$="N" OR K$="n" THEN 50 ELSE IF K$<>"Y" AND K$<>"y" THEN 250
260 'LINE(0,18)-(36,18)," "
270 FOR I=0 TO 15:B(I)=A(I):NEXT
280 FOR T=1 TO 50:SOUND 400,.03:R=FNR(4):Q=(FNR(2)*2+1+R MOD 2)MOD 4
290 J=((R+INT(H/4))MOD 4)*4+(Q+H MOD 4)MOD 4
300 SWAP A(H),A(J):H=J:NEXT
310 COLOR 1:P=0:GOSUB 540:LOCATE 18,18:COLOR 5:PRINT "Hit any key when ready.";
320 IF INKEY$="" THEN 320 ELSE TIME$="00:00:00":D=0
330 LOCATE 18,18:PRINT STRING$(16,0)
340 LOCATE 18,3:COLOR 5:PRINT USING"Moves ###";D
350 LOCATE 17,3:COLOR 5:PRINT "Time ";RIGHT$(TIME$,5)
360 PJ$=INKEY$:IF LEN(PJ$)<>2 THEN 360
370 IF RIGHT$(PJ$,1)="P" AND H>3 THEN J=H-4:GOTO 420
380 IF RIGHT$(PJ$,1)="K" AND H MOD 4<3 THEN J=H+1:GOTO 420
390 IF RIGHT$(PJ$,1)="M" AND H MOD 4>0 THEN J=H-1:GOTO 420
400 IF RIGHT$(PJ$,1)="H" AND H<12 THEN J=H+4:GOTO 420
410 GOTO 350
420 D=D+1:SWAP A(H),A(J):SWAP H,J
430 S=J:GOSUB 590:S=H:GOSUB 590
440 S=0:FOR I=0 TO 15:S=S+ABS(A(I)-B(I)):NEXT
450 IF S>0 THEN 340 ELSE T$=RIGHT$(TIME$,5)
460 LOCATE 16,1:PRINT STRING$(40*3,32)
470 SOUND 500,20:LOCATE 17,7:COLOR 5:PRINT "You did it!":PRINT
480 COLOR 3:PRINT " Time ";T$
490 COLOR 4:PRINT USING " Moves ###";D
500 PRINT:PRINT "Try again?";
510 K$=INPUT$(1):IF K$="Y" OR K$="y" THEN CLS:GOTO 90
520 IF K$<>"N" AND K$<>"n" THEN 510
530 SYSTEM
540 GOSUB 850
550 LOCATE 1,2+P:PRINT DJ$;
560 FOR X=2 TO 13:LOCATE X,2+P:PRINT JJ$:NEXT
570 LOCATE 14,2+P:PRINT DJ$;
580 FOR S=0 TO 15:GOSUB 590:NEXT:RETURN
590 LOCATE INT(S/4)*3+2,(S MOD 4)*4+3+P:COLOR 7:IF A(S)=0 THEN PRINT VD$:RETURN
600 PRINT USING S$;A(S);:RETURN
610 COLOR 7:PRINT CHR$(12);" FIFTEEN GAME"
620 COLOR 6:PRINT:PRINT"Move the cards around until they display like the cards in the sample."
630 COLOR 5:PRINT:PRINT "To move cards use cursor direction keys.":RETURN
640 PRINT:PRINT
650 PRINT "Pick a Pattern
660 PRINT " 1> Left to right
670 PRINT " 2> Inverse of 1
680 PRINT " 3> Top to bottom
690 PRINT " 4> Inverse of 3
700 PRINT " 5> Clockwise
710 PRINT " 6> Counter clockwise
720 PRINT " 7> Knight pattern
730 PRINT " 0> Random arrangement
740 K=ASC(INPUT$(1))-48
750 IF K<0 OR K>7 THEN 740
760 R=VAL(RIGHT$(TIME$,2)):RANDOMIZE R ' seed
770 SOUND 500,25:RETURN
780 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,15
790 DATA 0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
800 DATA 1,5,9,13,2,6,10,14,3,7,11,15,4,8,12,0,15
810 DATA 0,12,8,4,15,11,7,3,14,10,6,2,13,9,5,1,0
820 DATA 1,2,3,4,12,13,14,5,11,0,15,6,10,9,8,7,9
830 DATA 1,12,11,10,2,13,0,9,3,14,15,8,4,5,6,7,6
840 DATA 1,12,3,8,6,9,14,11,13,2,7,4,0,5,10,15,12
850 JJ$=CHR$(219)+STRING$(16,28)+CHR$(219)
860 DJ$=STRING$(18,219)
870 RETURN