home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…ids, Adults, Educational / RocelcoInc-ExploreTheWorldOfSoftware-KidsAdultsEducational-Vol2-Shareware.iso / educate / disk053 / rever.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  3.8 KB  |  164 lines

  1. 1  REM REVERSE
  2. 2  REM
  3. 3  REM ARRANGE DIGITS IN CORRECT SEQUENCE      BY REVERSING
  4. 4  REM 
  5. 5  REM 32K
  6. 6  REM  
  7. 7  REM AUTHOR UNKNOWN
  8. 8  REM  
  9. 9  REM TRANSLATED BY Guy B. Purcell
  10. 10  REM   
  11. 11  REM 
  12. 12  REM  **************************
  13. 13  REM  *                        *
  14. 14  REM  *    SAN MATEO COUNTY    *
  15. 15  REM  *   OFFICE OF EDUCATION  *
  16. 16  REM  *            &           *
  17. 17  REM  *COMPUTER-USING EDUCATORS*
  18. 18  REM  *                        *
  19. 19  REM  *        SOFTSWAP        *
  20. 20  REM  *                        *
  21. 21  REM  *     333 MAIN STREET    *
  22. 22  REM  *      REDWOOD CITY      *
  23. 23  REM  *        CA 94063        *
  24. 24  REM  *    (415) 363-5472      *
  25. 25  REM  *                        *
  26. 26  REM  **************************
  27. 27  REM
  28. 28  REM
  29. 29  REM  **************************
  30. 30  REM  * PROGRAM MAY BE COPIED  *
  31. 31  REM  * FOR EDUCATIONAL USE &  *
  32. 32  REM  * MAY NOT BE SOLD. COPY- *
  33. 33  REM  * RIGHT 1983 CUE,INC     *
  34. 34  REM  **************************
  35. 100  REM
  36. 110  GOTO 1200
  37. 120  REM INITIALIZATION ROUTINE
  38. 130  :
  39. 140  SCREEN 0,1: WIDTH 40
  40. 150  CLS: LOCATE , 16: PRINT "REVERSE"
  41. 160  PRINT : PRINT : PRINT
  42. 170  DIM A(10)
  43. 180  DIM A$(255),N$(255),R$(255)
  44. 190  REM  N= NUMBER OF NUMBERS
  45. 200  N=0:T=0
  46. 210  PRINT"NOTE: REMEMBER TO PRESS <RETURN> AFTER"
  47. 220  PRINT"EACH ANSWER."
  48. 240  GOSUB 1100
  49. 250  RETURN
  50. 260  REM INSTRUCTIONS ROUTINE
  51. 270  :
  52. 280  CLS
  53. 290  PRINT"To win, all you have to do is arrange":PRINT
  54. 300  PRINT"a list of numbers in order, lowest to":PRINT
  55. 310  PRINT"highest, left to right. To move, you":PRINT
  56. 320  PRINT"tell me how many numbers you want to":PRINT
  57. 330  PRINT"reverse, beginning at the left.":PRINT
  58. 340  PRINT"For example: if the list is":LOCATE ,7:PRINT"2 3 4 5 1 6 7 8 9":PRINT
  59. 350  PRINT"reverse 4 numbers and get":LOCATE ,7:PRINT"5 4 3 2 1 6 7 8 9":PRINT
  60. 360  PRINT"Now, reversing 5 numbers will get":LOCATE,7:PRINT"1 2 3 4 5 6 7 8 9":PRINT
  61. 370  PRINT"which wins the game."
  62. 380  GOSUB 1100: REM CONTINUE
  63. 390  RETURN
  64. 400  REM HOW MANY NUMBERS ROUTINE
  65. 410  :
  66. 420  CLS
  67. 430  LOCATE 9,1
  68. 440   PRINT"How many numbers do you want to play":PRINT
  69. 450   PRINT"with (2 to 9): ";
  70. 460   INPUT N$
  71. 470  IF N$="" THEN 400
  72. 480  IF ASC(N$)-48<2 OR ASC(N$)-48>9 THEN CLS:LOCATE 12: PRINT"Try again, please." :GOTO 430
  73. 490  N=ASC(N$)-48
  74. 500  RETURN
  75. 510  REM GET RANDOM NUMBERS ROUTINE
  76. 520  :
  77. 530  FOR K=1 TO N
  78. 540  A(K)= 1+INT(RND*(N))
  79. 550  IF A(K)<0 OR A(K)>9 THEN 540
  80. 560  NEXT K
  81. 570  FOR K=1 TO N
  82. 580  FOR J=1 TO N
  83. 590  IF A(J)=A(K) AND J<>K THEN A(K)=1+ INT(RND*(N)):GOTO 570
  84. 600  NEXT J
  85. 610  NEXT K
  86. 620  RETURN
  87. 630  REM PRINT LIST
  88. 640  :
  89. 650  LOCATE 5,5
  90. 660  FOR K=1 TO N
  91. 670  PRINT A(K);" ";
  92. 680  NEXT K
  93. 690  RETURN
  94. 700  REM HOW MANY TO REVERSE
  95. 710  :
  96. 720  LOCATE 9,1
  97. 730  PRINT"How many shall I reverse?":PRINT:PRINT"Press '0' to quit. :";
  98. 740  LOCATE 11,22:PRINT"       ":LOCATE 11,20
  99. 750  INPUT R$
  100. 760  IF R$="" THEN 720
  101. 770  R=ASC(R$)-48
  102. 780  IF R=0 THEN CLS: GOTO 1030
  103. 790  IF R<0 OR R>N THEN PRINT:PRINT"I can reverse no more than ";N:GOTO 720
  104. 800  RETURN
  105. 810  REM REVERSE NUMBERS
  106. 820  :
  107. 830  FOR K=1 TO R/2
  108. 840  Z=A(K)
  109. 850  A(K)=A(R-K+1)
  110. 860  A(R-K+1)=Z
  111. 870  NEXT K
  112. 880  T=T+1
  113. 890  RETURN
  114. 900  REM CHECK FOR WIN
  115. 910  :
  116. 920  FOR K=1 TO N-1
  117. 930  IF A(K+1)>A(K) THEN QQ=QQ+1
  118. 940  NEXT K
  119. 950  RETURN
  120. 960  REM WIN
  121. 970  :
  122. 980  CLS
  123. 990  LOCATE 9,16
  124. 1000  PRINT"YOU WIN!":PRINT
  125. 1010  PRINT"You only took ";T;" tries.":PRINT
  126. 1020  RETURN
  127. 1030  REM END
  128. 1040  :
  129. 1050  LOCATE 15,1
  130. 1060  PRINT"Do you want to play again";:INPUT A$
  131. 1070  IF A$="Y" OR A$="y" THEN T=0:GOTO 1230
  132. 1080  IF A$<>"N" AND A$<>"n" THEN CLS:LOCATE 15:GOTO 1060
  133. 1090  GOTO 1160: REM CHAIN TO MENU
  134. 1100  REM CONTINUE ROUTINE
  135. 1110  :
  136. 1120  LOCATE 23,5
  137. 1130  PRINT"PRESS <RETURN> TO CONTINUE"
  138. 1140  A$=INKEY$:IF A$<>CHR$(13) THEN 1140
  139. 1150  CLS:RETURN
  140. 1160  REM CHAIN TO MENU ROUTINE
  141. 1170  :
  142. 1180  LOCATE 20,10: COLOR 14,0: PRINT "Loading menu...";: FOR I=1 TO 6: PRINT CHR$(2);: NEXT
  143. 1190  CHAIN "menu",170: RUN
  144. 1200  REM COMMAND ROUTINE
  145. 1210  :
  146. 1220  GOSUB 120:REM INITIALIZATION
  147. 1230  CLS
  148. 1240  LOCATE 9,1
  149. 1250  PRINT"Do you want instructions (Y/N)";:INPUT Q$
  150. 1260  IF Q$="Y" OR  Q$="y" THEN GOSUB 260:GOTO 1280:REM INSTRUCTIONS
  151. 1270  IF Q$<>"N" AND Q$<>"n" THEN 1240
  152. 1280  GOSUB 400: REM HOW MANY NUMBERS
  153. 1290  CLS:LOCATE 9,3 :PRINT"I'm making the list; please wait."
  154. 1300  GOSUB 510: REM GET NUMBERS
  155. 1310  CLS
  156. 1320  PRINT"Here we go with ";N;" numbers":PRINT"The list is:"
  157. 1330  GOSUB 630: REM PRINT LIST
  158. 1340  GOSUB 700: REM HOW MANY TO REVERSE
  159. 1350  GOSUB 810: REM REVERSE NUMBERS
  160. 1360  QQ=0
  161. 1370  GOSUB 900: REM CHECK FOR WIN
  162. 1380  IF QQ=N-1 THEN GOSUB 960:GOTO 1030: REM WIN AND END
  163. 1390  GOTO 1330
  164.