home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / games / 15game.zip / 15GAME.BAS
BASIC Source File  |  1985-11-18  |  4KB  |  93 lines

  1. 10 '************************************************************************
  2. 20 '* Converted from N-basic by Phillip R. Johnson (213) 881-8492, 1-1-84. *
  3. 30 '************************************************************************
  4. 40 CLEAR 300:DEF FNR(R)=INT(RND(1)*R):DIM A(16),B(15)
  5. 50 SCREEN 0,0,0:WIDTH 40:KEY OFF:COLOR 7:LOCATE 1,1,0
  6. 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)
  7. 70 VD$="    "+Z$+"    "+Z$+"    "
  8. 80 GOSUB 610
  9. 90 GOSUB 640
  10. 100 IF K>0 THEN ON K GOSUB 150,160,170,180,190,200,210:GOTO 220
  11. 110 FOR I=0 TO 15:A(I)=I:NEXT
  12. 120 FOR T=1 TO 50:SOUND 400,.03:SWAP A(FNR(16)),A(FNR(16)):NEXT
  13. 130 FOR I=1 TO 15:IF A(I)=0 THEN H=1
  14. 140 NEXT:GOTO 230
  15. 150 RESTORE 780:RETURN
  16. 160 RESTORE 790:RETURN
  17. 170 RESTORE 800:RETURN
  18. 180 RESTORE 810:RETURN
  19. 190 RESTORE 820:RETURN
  20. 200 RESTORE 830:RETURN
  21. 210 RESTORE 840:RETURN
  22. 220 FOR I=0 TO 15:READ A(I):NEXT :READ H
  23. 230 COLOR 5:PRINT CHR$(12)
  24. 240 COLOR 2:P=18:GOSUB 540:LOCATE 18,3:COLOR 5:PRINT "OK?";
  25. 250 K$=INPUT$(1):IF K$="N" OR K$="n" THEN 50 ELSE IF K$<>"Y" AND K$<>"y" THEN 250
  26. 260 'LINE(0,18)-(36,18)," "
  27. 270 FOR I=0 TO 15:B(I)=A(I):NEXT
  28. 280 FOR T=1 TO 50:SOUND 400,.03:R=FNR(4):Q=(FNR(2)*2+1+R MOD 2)MOD 4
  29. 290 J=((R+INT(H/4))MOD 4)*4+(Q+H MOD 4)MOD 4
  30. 300 SWAP A(H),A(J):H=J:NEXT
  31. 310 COLOR 1:P=0:GOSUB 540:LOCATE 18,18:COLOR 5:PRINT "Hit any key when ready.";
  32. 320 IF INKEY$="" THEN 320 ELSE TIME$="00:00:00":D=0
  33. 330 LOCATE 18,18:PRINT STRING$(16,0)
  34. 340 LOCATE 18,3:COLOR 5:PRINT USING"Moves     ###";D
  35. 350 LOCATE 17,3:COLOR 5:PRINT "Time    ";RIGHT$(TIME$,5)
  36. 360 PJ$=INKEY$:IF LEN(PJ$)<>2 THEN 360
  37. 370 IF RIGHT$(PJ$,1)="P" AND H>3 THEN J=H-4:GOTO 420
  38. 380 IF RIGHT$(PJ$,1)="K" AND H MOD 4<3 THEN J=H+1:GOTO 420
  39. 390 IF RIGHT$(PJ$,1)="M" AND H MOD 4>0 THEN J=H-1:GOTO 420
  40. 400 IF RIGHT$(PJ$,1)="H" AND H<12 THEN J=H+4:GOTO 420
  41. 410 GOTO 350
  42. 420 D=D+1:SWAP A(H),A(J):SWAP H,J
  43. 430 S=J:GOSUB 590:S=H:GOSUB 590
  44. 440 S=0:FOR I=0 TO 15:S=S+ABS(A(I)-B(I)):NEXT
  45. 450 IF S>0 THEN 340 ELSE T$=RIGHT$(TIME$,5)
  46. 460 LOCATE 16,1:PRINT STRING$(40*3,32)
  47. 470 SOUND 500,20:LOCATE 17,7:COLOR 5:PRINT "You did it!":PRINT
  48. 480 COLOR 3:PRINT "       Time    ";T$
  49. 490 COLOR 4:PRINT USING "      Moves    ###";D
  50. 500 PRINT:PRINT "Try again?";
  51. 510 K$=INPUT$(1):IF K$="Y" OR K$="y" THEN CLS:GOTO 90
  52. 520 IF K$<>"N" AND K$<>"n" THEN 510
  53. 530 SYSTEM
  54. 540 GOSUB 850
  55. 550 LOCATE 1,2+P:PRINT DJ$;
  56. 560 FOR X=2 TO 13:LOCATE X,2+P:PRINT JJ$:NEXT
  57. 570 LOCATE 14,2+P:PRINT DJ$;
  58. 580 FOR S=0 TO 15:GOSUB 590:NEXT:RETURN
  59. 590 LOCATE INT(S/4)*3+2,(S MOD 4)*4+3+P:COLOR 7:IF A(S)=0 THEN PRINT VD$:RETURN
  60. 600 PRINT USING S$;A(S);:RETURN
  61. 610 COLOR 7:PRINT CHR$(12);"         FIFTEEN GAME"
  62. 620 COLOR 6:PRINT:PRINT"Move the cards around until they display like the cards in the sample."
  63. 630 COLOR 5:PRINT:PRINT "To move cards use cursor direction keys.":RETURN
  64. 640 PRINT:PRINT
  65. 650 PRINT "Pick a Pattern
  66. 660 PRINT "  1> Left to right
  67. 670 PRINT "  2> Inverse of 1
  68. 680 PRINT "  3> Top to bottom
  69. 690 PRINT "  4> Inverse of 3
  70. 700 PRINT "  5> Clockwise
  71. 710 PRINT "  6> Counter clockwise
  72. 720 PRINT "  7> Knight pattern
  73. 730 PRINT "  0> Random arrangement
  74. 740 K=ASC(INPUT$(1))-48
  75. 750 IF K<0 OR K>7 THEN 740
  76. 760 R=VAL(RIGHT$(TIME$,2)):RANDOMIZE R ' seed
  77. 770 SOUND 500,25:RETURN
  78. 780 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,15
  79. 790 DATA 0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
  80. 800 DATA 1,5,9,13,2,6,10,14,3,7,11,15,4,8,12,0,15
  81. 810 DATA 0,12,8,4,15,11,7,3,14,10,6,2,13,9,5,1,0
  82. 820 DATA 1,2,3,4,12,13,14,5,11,0,15,6,10,9,8,7,9
  83. 830 DATA 1,12,11,10,2,13,0,9,3,14,15,8,4,5,6,7,6
  84. 840 DATA 1,12,3,8,6,9,14,11,13,2,7,4,0,5,10,15,12
  85. 850 JJ$=CHR$(219)+STRING$(16,28)+CHR$(219)
  86. 860 DJ$=STRING$(18,219)
  87. 870 RETURN
  88.  
  89. 16,28)+CHR$(219)
  90. 860 DJ$=STRING$(18,219)
  91. 870 RETURN
  92.