home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug054.ark / REVRSE.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  2.2 KB  |  63 lines

  1. 80 REM *** REVERSE WRITTEN BY BOB ALBRECHT, PEOPLE'S COMPUTER CO
  2. 90 REM *** MODIFIED AND CONVERTED TO BASIC-PLUS BY DAVID AHL
  3. 100 PRINT:PRINT "REVERSE -- A GAME OF SKILL":PRINT
  4. 120 RANDOMIZE
  5. 130 DIM A(20)
  6. 140 REM *** N=NUMBER OF NUMBERS
  7. 150 N=9:G=0:T1=0
  8. 160 INPUT "DO YOU WANT THE RULES (YES OR NO)";A$
  9. 180 IF A$="NO" THEN 210
  10. 190 GOSUB 710
  11. 200 REM *** MAKE A RANDOM LIST A(1) TO A(N)
  12. 210 A(1)=INT((N-1)*RND)+2
  13. 220 FOR K=2 TO N
  14. 230 A(K)=INT(N*RND)+1
  15. 240 FOR J=1 TO K-1
  16. 250 IF A(K)=A(J) THEN 230
  17. 260 NEXT J:NEXT K
  18. 280 REM *** PRINT ORIGNIAL LIST AND START GAME
  19. 290 PRINT:PRINT "HERE WE GO ... THE LIST IS:"
  20. 310 T=0
  21. 320 GOSUB 610
  22. 330 INPUT "HOW MANY SHALL I REVERSE";R
  23. 340 IF R=1 THEN ?"OOPS!  ONE DOESN'T DO ANYTHING.  AGAIN...":GOTO 330
  24. 350 IF R=0 THEN 530
  25. 360 IF R<=N THEN 390
  26. 370 PRINT "OOPS! TOO MANY - I CAN REVERSE AT MOST"N:GOTO 330
  27. 390 T=T+1
  28. 400 REM *** REVERSE R NUMBERS AND PRINT NEW LIST
  29. 410 FOR K=1 TO INT(R/2)
  30. 420 Z=A(K)
  31. 430 A(K)=A(R-K+1)
  32. 440 A(R-K+1)=Z
  33. 450 NEXT K
  34. 460 GOSUB 610
  35. 470 REM *** CHECK FOR A WIN
  36. 480 FOR K=1 TO N
  37. 490 IF A(K)<>K THEN 330
  38. 500 NEXT K
  39. 510 PRINT "YOU WON IT IN"T"MOVES !!!":PRINT
  40. 520 G=G+1:T1=T1+T
  41. 530 INPUT "TRY AGAIN (YES OR NO)";A$
  42. 550 IF A$="YES" THEN 210
  43. 555 IF G=0 THEN G=1
  44. 560 ?:?"YOU PLAYED"G"GAMES AND REVERSED THE LISTS IN AN"
  45. 570 ?"AVERAGE OF"T1/G"MOVES PER GAME.  HOPE YOU HAD FUN!":GOTO 999
  46. 600 REM *** SUBROUTINE TO PRINT LIST
  47. 610 PRINT:FOR K=1 TO N:PRINT A(K);:NEXT K
  48. 650 PRINT:PRINT:RETURN
  49. 700 REM *** SUBROUTINE TO PRINT THE RULES
  50. 710 PRINT:PRINT "THIS IS THE GAME OF 'REVERSE'. TO WIN, ALL YOU HAVE"
  51. 720 PRINT "TO DO IS ARRANGE A LIST OF NUMBERS (1 THROUGH"N")"
  52. 730 PRINT "IN NUMERICAL ORDER FROM LEFT TO RIGHT. TO MOVE, YOU"
  53. 740 PRINT "TELL ME HOW MANY NUMBERS (COUNTING FROM THE LEFT) TO"
  54. 750 PRINT "REVERSE. FOR EXAMPLE, IF THE CURRENT LIST IS:"
  55. 760 PRINT:PRINT "2 3 4 5 1 6 7 8 9"
  56. 770 PRINT:PRINT "AND YOU REVERSE 4, THE RESULT WILL BE:"
  57. 780 PRINT:PRINT "5 4 3 2 1 6 7 8 9"
  58. 790 PRINT:PRINT "NOW, IF YOU REVERSE 5, YOU WIN!"
  59. 800 PRINT:PRINT "1 2 3 4 5 6 7 8 9":PRINT
  60. 810 PRINT "NO DOUBT YOU WILL LIKE THIS GAME OF SKILL, BUT"
  61. 820 PRINT "IF YOU WANT TO QUIT, REVERSE 0 (ZERO).":PRINT:RETURN
  62. 999 END
  63.