home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib10.dsk / SCOREKEEPER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  120 lines

  1. 10  REM  ****************************
  2. 20  REM  *   << SCOREKEEPER >>      *
  3. 30  REM  *   BY THORNE D HARRIS III *
  4. 40  REM  *    COPYRIGHT (C) 1982    *
  5. 50  REM  *    BY MICRO-SPARC INC    *
  6. 60  REM  *    LINCOLN, MA. 01773    *
  7. 70  REM  ****************************
  8. 98  REM 
  9. 100  REM  MENU
  10. 105  POKE 34,0
  11. 106  CLEAR 
  12. 110 D$ =  CHR$(4)
  13. 120  PRINT D$;"NOMON I,C,O"
  14. 130  TEXT : HOME 
  15. 140  HTAB 17: INVERSE : PRINT "SCOREKEEPER": NORMAL 
  16. 150  PRINT : PRINT  TAB( 13)"BY HHH ENTERPRISES"
  17. 160  PRINT : PRINT : PRINT : INVERSE : HTAB 18: PRINT "MENU": NORMAL 
  18. 170  PRINT 
  19. 180  PRINT "PRESS <S> TO START NEW SCORECARD AND"
  20. 185  PRINT  TAB( 11)"ERASE OLD ONE."
  21. 190  PRINT "PRESS <E> TO ENTER NEW SCORES."
  22. 200  PRINT "PRESS <V> TO VIEW OLD SCORES."
  23. 202  PRINT "PRESS <Q> TO QUIT."
  24. 210  INPUT A$
  25. 220  IF A$ = "E"  THEN 300
  26. 230  IF A$ = "V"  THEN 3000
  27. 240  IF A$ = "S"  THEN 5000
  28. 242  IF A$ = "Q"  THEN  HOME : END 
  29. 250  GOTO 100
  30. 260  END 
  31. 300  REM 
  32. 310  REM  INPUT ROUTINE
  33. 320  DIM A$(20),B$(20),C$(20),D$(20)
  34. 330 I = 0
  35. 340  PRINT "TYPE 'STORE' FOR 'GAME' TO STORE SCORES": PRINT :I = I +1: PRINT : PRINT 
  36. 350  INPUT "GAME     : ";A$(I)
  37. 360  IF A$(I) = "STORE"  THEN  GOTO 420
  38. 370  INPUT "SCORE    : ";B$(I)
  39. 380  INPUT "INITIALS : ";C$(I)
  40. 390  INPUT "DATE     : ";D$(I)
  41. 400  PRINT 
  42. 410  GOTO 340
  43. 420  REM  WRITE ROUTINE
  44. 430 I = I -1
  45. 440  PRINT D$;"OPEN SCORE#"
  46. 450  PRINT D$;"READ SCORE#"
  47. 460  INPUT S:S1 = S +I
  48. 470  PRINT D$;"CLOSE SCORE#"
  49. 480  PRINT D$;"OPEN SCORE#"
  50. 490  PRINT D$;"WRITE SCORE#"
  51. 500  PRINT S1
  52. 510  PRINT D$;"CLOSE SCORE#"
  53. 520  PRINT D$;"APPEND SCORECARD"
  54. 530  PRINT D$;"WRITE SCORECARD"
  55. 540  FOR X = 1 TO I
  56. 550  PRINT A$(X)
  57. 560  PRINT B$(X)
  58. 570  PRINT C$(X)
  59. 580  PRINT D$(X)
  60. 590  NEXT X
  61. 600  PRINT D$;"CLOSE SCORECARD"
  62. 610  CLEAR : GOTO 100
  63. 3000  REM  VIEW SCORES
  64. 3010  PRINT D$;"OPEN SCORE#"
  65. 3020  PRINT D$;"READ SCORE#"
  66. 3030  INPUT I
  67. 3040  PRINT D$;"CLOSE SCORE#"
  68. 3050  DIM A$(I),B$(I),C$(I),D$(I)
  69. 3060  HOME : INVERSE 
  70. 3070  HTAB 16: PRINT "SCORECARD": NORMAL : PRINT  TAB( 17)"BY  TDH"
  71. 3080  PRINT : PRINT : HTAB 4: INVERSE : PRINT "GAME";: HTAB 16: PRINT "SCORE";: HTAB 26: PRINT "INT";: HTAB 35: PRINT "DATE": NORMAL : PRINT 
  72. 3090  PRINT D$;"OPEN SCORECARD"
  73. 3100  PRINT D$;"READ SCORECARD"
  74. 3110  FOR J = 1 TO I
  75. 3120  INPUT A$(J),B$(J),C$(J),D$(J)
  76. 3140  NEXT J
  77. 3150  PRINT D$;"CLOSE SCORECARD"
  78. 3152  IF I = 1  THEN 3160
  79. 3155  GOSUB 4000
  80. 3160 X% = 0
  81. 3165  FOR J = 1 TO I
  82. 3166  POKE 34,5
  83. 3170 X% = X% +1
  84. 3175  IF X% = 9  THEN  GOSUB 6000
  85. 3180  PRINT A$(J);: HTAB 16: PRINT B$(J);: HTAB 26: PRINT C$(J);: HTAB 33: PRINT D$(J)
  86. 3190  IF X% = 9  THEN X% = 1
  87. 3200  NEXT J
  88. 3210  INVERSE : PRINT "THAT'S ALL. HIT ANY KEY FOR MENU.": NORMAL 
  89. 3230  GET ANY$
  90. 3240  GOTO 100
  91. 4000  REM  SORT ENTRIES
  92. 4001  REM 
  93. 4005  FOR P = 1 TO I -1
  94. 4010  FOR Q = P +1 TO I
  95. 4020  IF A$(P) <A$(Q)  THEN 4060
  96. 4030 ZA$ = A$(P):ZB$ = B$(P):ZC$ = C$(P):ZD$ = D$(P)
  97. 4040 A$(P) = A$(Q):B$(P) = B$(Q):C$(P) = C$(Q):D$(P) = D$(Q)
  98. 4050 A$(Q) = ZA$:B$(Q) = ZB$:C$(Q) = ZC$:D$(Q) = ZD$
  99. 4060  NEXT Q
  100. 4070  NEXT P
  101. 4080  RETURN 
  102. 4999  END 
  103. 5000  REM  INITIALIZE - OPEN SCORECARD & SCORE#
  104. 5010  PRINT D$;"OPEN SCORECARD"
  105. 5020  PRINT D$;"DELETE SCORECARD"
  106. 5030  PRINT D$;"OPEN SCORECARD"
  107. 5040  PRINT D$;"CLOSE SCORECARD"
  108. 5050  PRINT D$;"OPEN SCORE#"
  109. 5060  PRINT D$;"DELETE SCORE#"
  110. 5070  PRINT D$;"OPEN SCORE#"
  111. 5080  PRINT D$;"WRITE SCORE#"
  112. 5090  PRINT 0
  113. 5100  PRINT D$;"CLOSE SCORE#"
  114. 5110  PRINT "NOW PRESS <E> TO ENTER NEW SCORES."
  115. 5120  GOTO 210
  116. 6000  REM  DISPLAY ONLY 10 LINES
  117. 6010  VTAB 23: PRINT "HIT ANY KEY TO CONTINUE."
  118. 6020  GET ANY$
  119. 6025  VTAB 23: CALL  -958
  120. 6030  RETURN