home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / library / gwbasic / friendly / golf.bas < prev    next >
Encoding:
BASIC Source File  |  1994-05-25  |  15.8 KB  |  179 lines

  1. 10 CLS
  2. 20 WIDTH 80:SCREEN 0,0,0:KEY OFF:LOCATE 1,1,0:COLOR 15,0,0:RANDOMIZE(VAL(RIGHT$(TIME$,2))):DEFSTR Z:DIM Z(10),A(10):GOSUB 1350
  3. 30 DIM A%(22):FOR I=0 TO 21:READ A%(I):NEXT
  4. 40 DATA &h8b55,&hb8ec,&h0600,&h07b7,&h768b,&h8a0c,&h8b2c
  5. 50 DATA &h0a76,&h0c8a,&h768b,&h8a08,&h8b34,&h0676,&h148a
  6. 60 DATA &hcdfe,&hc9fe,&hcefe,&hcafe,&h10cd,&hca5d,&h8,&h0
  7. 70 ON KEY(10) GOSUB 1430:KEY(10) ON:GOSUB 960:COLOR 15,0:CLS:LOCATE 5,20:PRINT"What Is Your Name? ":LOCATE 23,18:PRINT"***** Enter Your Name And Strike Enter *****":LOCATE 5,38:PRINT" ";:GOSUB 1670:P$=" "+LEFT$(ZA,7)
  8. 80 LOCATE 7,20:PRINT"What Is Your Handicap "P$"? ";:LOCATE 23,16:PRINT"***** Enter Your Handicap And Strike Enter *****":LOCATE 7,20:PRINT"What Is Your Handicap "P$"? ";:GOSUB 1670:A=VAL(ZA)
  9. 90 IF A<0 OR A>30 THEN CLS:LOCATE 4,16:PRINT"Please Enter An Amount Between 0 And 30 Inclusive":GOTO 80
  10. 100 CLS:IF A<4 THEN LOCATE 4,25:PRINT"You Should Be On The Tour!!":LOCATE 6,20:PRINT"DIFFICULTIES AT GOLF INCLUDE THE FOLLOWING:":COLOR 10,0
  11. 110 LOCATE 7,30:PRINT"0 = HOOK":PRINT TAB(30)"1 = SLICE":PRINT TAB(30)"2 = POOR DISTANCE":PRINT TAB(30)"3 = PERFECT PLAYER":PRINT TAB(30)"4 = SAND TRAP PLAY":PRINT TAB(30)"5 = POOR PUTTING"
  12. 120 LOCATE 14,30:COLOR 15,0:PRINT"Pick One:";:COLOR 3,0
  13. 130 GOSUB 930:IF Z<"0" OR Z>"5" THEN GOSUB 940:GOTO 120 ELSE B=VAL(Z):HOLE=1:GOSUB 970
  14. 140 IF HOLE=19 THEN GOSUB 1190:RUN ELSE GOSUB 1230:GOSUB 1010:B1=1
  15. 150 KEY(1) ON:Z1="":GOSUB 930:IF Z>"0" AND Z<="9" THEN F=VAL(Z) ELSE IF Z="P" THEN Z1=Z ELSE 150
  16. 160 R1%=14:C1%=1:R2%=17:C2%=40:GOSUB 1780:LOCATE 14,10:PRINT Z;:IF Z1="P" THEN 180
  17. 170 LOCATE 16,2:COLOR 15:PRINT"Choose `I' For Iron Or `W' For Wood":COLOR 7:LOCATE 14,11
  18. 180 GOSUB 930:IF Z1="P" THEN 200 ELSE IF Z="W" THEN PRINT" WOOD";:GOTO 220
  19. 190 IF Z="I" THEN PRINT" IRON";:F=F+9.5:GOTO 220
  20. 200 IF Z="W" THEN PRINT CHR$(29)"PITCHING WEDGE";:F=20:GOTO 220
  21. 210 GOSUB 1030:GOTO 150
  22. 220 IF F>4 AND Z="W" AND Z1<>"P" THEN GOSUB 1030:GOTO 150
  23. 230 IF F<8 THEN GOSUB 950:GOTO 340
  24. 240 LOCATE 16,1:PRINT SPC(40):LOCATE 16,1:COLOR 15:PRINT"Select % Of Swing  <from 11 to 100>";:Z2="":COLOR 7:LOCATE 14,25
  25. 250 GOSUB 930:IF Z=CHR$(8) THEN 280
  26. 260 IF LEN(Z)>1 THEN IF MID$(Z,2,1)=CHR$(75) THEN 280 ELSE 250
  27. 270 IF Z<"0" OR Z>"9" THEN 250 ELSE 300
  28. 280 IF LEN(Z2)<1 THEN 250
  29. 290 PRINT CHR$(29)" "CHR$(29);:Z2=LEFT$(Z2,LEN(Z2)-1):GOTO 250
  30. 300 PRINT Z;:Z2=Z2+Z:IF LEN(Z2)>1 THEN SWING=VAL(Z2) ELSE 250
  31. 310 IF SWING=10 THEN PRINT"0 %":SWING=SWING*10 ELSE PRINT" %"
  32. 320 IF SWING <1 OR SWING >100 THEN LOCATE 16,1:PRINT SPC(40):GOSUB 1030:GOTO 150
  33. 330 GOSUB 950:SWING=SWING/100:IF B1=5 THEN 470 ELSE F=F-5:GOTO 360
  34. 340 SWING=1:IF B1=2 OR B1=3 THEN 510
  35. 350 IF F=1 AND STK>0 AND PENALTY=0 THEN 540
  36. 360 DIST=INT(((30-A)*2.5+230-((30-A)*.25+20)*F/2)+(RND*20)):DIST=INT(DIST*SWING)
  37. 370 OF=(RND/.6)*(2*A+16)*ABS(TAN(DIST*.003)):GRN=INT(SQR(OF^2+ABS(YARDS-DIST)^2))
  38. 380 IF YARDS-DIST<0 THEN IF GRN>=20 THEN LOCATE 8,1:COLOR 15:PRINT"Too Much Club, You're Over The Green":COLOR 7:LOCATE 1,1
  39. 390 HOLD=YARDS:YARDS=GRN
  40. 400 IF GRN>25 THEN 410 ELSE IF GRN>15 THEN B1=5:GOSUB 1040:GOTO 150 ELSE IF GRN>1 THEN 500 ELSE GRN=0:GOTO 550
  41. 410 IF OF<DIFF+(A*1.1)-(SWING*20) THEN B1=1:GOTO 460 ELSE LOCATE 1,1:ON B+1 GOTO 430,440
  42. 420 GOTO 460
  43. 430 PRINT"You Hooked ";:B1=LEFT:GOTO 450
  44. 440 PRINT"YOU Sliced ";:B1=RIGHT
  45. 450 IF OF>50 THEN PRINT"Outa SIGHT.
  46. 460 GOSUB 1040:GOTO 150
  47. 470 LOCATE 1,1:IF B=4 THEN X=(RND*100-A) ELSE X=(RND*150-A)
  48. 480 IF X<13 THEN PRINT"You Dubbed It. Shot Still In The Trap." ELSE 500
  49. 490 B1=5:DIST=0:GOSUB 1040:GOSUB 1030:GOTO 150
  50. 500 B1=1:GRN=INT(GRN*(RND*4)):GOTO 550
  51. 510 LOCATE 5,1:X=INT(RND*50-A):IF X<18 THEN IF B1=3 THEN PRINT"You Hit A Tree. Try Again.":GOTO 530 ELSE 520 ELSE 360
  52. 520 PRINT"You Dubbed It.":PRINT"What Did You Say Your Handicap Was ?
  53. 530 DIST=INT(RND*35):GOTO 370
  54. 540 LOCATE 5,1:PRINT"Where Did You Learn To Play Golf, HUH??":PRINT"You Don`t Hit A Driver In The Fairway":GOTO 530
  55. 550 FF=1:CY=2:CLS:COLOR 2,0:LOCATE 23,1:PRINT STRING$(78,176);:COLOR 3:LOCATE 23,40:PRINT CHR$(32);
  56. 560 Z=INKEY$:GOTO 700
  57. 570 Z=INKEY$:LOCATE 1,21:COLOR 0,7:PRINT" You're On The Green"GRN"Feet From The Pin "
  58. 580 LOCATE 25,26:PRINT"Strike <F10> To Leave This Game";:LOCATE 3,38:PRINT" Par"PAR:LOCATE 5,36:PRINT" Strokes"STK:COLOR 15,0:LOCATE 9,28:PRINT" Strike Space Bar To Putt ":LOCATE 8,22:PRINT" Enter A Putt Factor Between .5 and 10  "
  59. 590 LOCATE 10,40:Z2=""
  60. 600 GOSUB 930:IF Z=" " OR Z=CHR$(13) THEN PUTT=VAL(Z2):GOTO 660
  61. 610 IF LEN(Z)>1 THEN IF MID$(Z,2,1)=CHR$(75) THEN Z=CHR$(8) ELSE 600
  62. 620 IF LEN(Z2)<1 AND Z=CHR$(8) THEN 600
  63. 630 IF Z=CHR$(8) THEN PRINT CHR$(29)" "CHR$(29);:Z2=LEFT$(Z2,LEN(Z2)-1):GOTO 600
  64. 640 IF (Z<"0" OR Z>"9") AND Z<>"." THEN 600
  65. 650 LOCATE 10:PRINT Z;:Z2=Z2+Z:GOTO 600
  66. 660 LOCATE 10,30:PRINT SPC(30):LOCATE 5,43:PRINT"       ":IF PUTT<0 OR PUTT>10 THEN 580
  67. 670 HP=HP+1
  68. 680 IF HP>6 OR STK-1>(A*.75)+2 THEN 730
  69. 690 IF B=5 THEN GRN=GRN-PUTT*(4+1*RND)+1 ELSE GRN=GRN-PUTT*(4+2*RND)+1.5
  70. 700 IF GRN<-40 OR GRN>40 THEN GRN=40
  71. 710 IF GRN<-1.4 THEN IF FF=-1 THEN CX=CX+GRN*2:GOTO 740 ELSE CX=40-GRN:GOTO 740
  72. 720 IF GRN>1.4 THEN CX=40-GRN:GOTO 740
  73. 730 GRN=0:CX=40
  74. 740 STK=STK+1
  75. 750 IF CY<2 THEN CY=2
  76. 760 IF CX>79 THEN CX=77
  77. 770 GRN=INT(GRN+.4)
  78. 780 LOCATE 22,CY-1:PRINT"   ";
  79. 790 IF CX<2 THEN CX=3
  80. 800 COLOR 31:FOR CZ=CY TO CX-1 STEP FF:IF FF=1 THEN GOTO 820
  81. 810 LOCATE 22,CZ:PRINT" ";:LOCATE 22,CZ-1:PRINT CHR$(2);:GOTO 830
  82. 820 LOCATE 22,CZ-1:PRINT" ";:LOCATE 22,CZ:PRINT" ";:LOCATE 22,CZ+1:PRINT CHR$(2);
  83. 830 NEXT:COLOR 7
  84. 840 IF GRN<0 THEN FF=-FF:GRN=-GRN
  85. 850 IF GRN=0 THEN LOCATE 22,1:PRINT SPC(39);:LOCATE ,41:PRINT SPC(39):LOCATE 23,40:PRINT CHR$(2);
  86. 860 CY=CX:GRN=INT(GRN)
  87. 870 COLOR 12
  88. 880 LOCATE 22,40:PRINT"█";:LOCATE 21,40:PRINT"█";:LOCATE 20,40:PRINT"█";:LOCATE 19,40:PRINT"█";:LOCATE 18,40:PRINT"█";"▓▓▓▓";:LOCATE 17,40:PRINT"█";"▓▓▓▓";
  89. 890 COLOR 7
  90. 900 IF GRN<>0 THEN 570
  91. 910 GOSUB 1110
  92. 920 GOSUB 1080:GOTO 140
  93. 930 DEF SEG=&H40:POKE &H17,(PEEK(&H17) OR 96):DEF SEG:Z=INKEY$:IF Z="" THEN RANDOMIZE VAL(RIGHT$(TIME$,2)):GOTO 930 ELSE RETURN
  94. 940 LOCATE 20,23:PRINT"That Is Not A Choice. Please Try Again.":FOR XX=1 TO 2000:NEXT:LOCATE 20,1:PRINT SPC(79):RETURN
  95. 950 R1%=1:C1%=1:R2%=9:C2%=40:GOSUB 1780:RETURN
  96. 960 FOR A=1 TO 7:READ Z(A):NEXT:RETURN
  97. 970 CLS:COLOR 0,7:LOCATE 10,25:PRINT" Please Pick A Course To Play ":LOCATE 12,15:PRINT" 1 Amateur Green Grass Country Club     <Rating 65> ":LOCATE 13,15:PRINT" 2 Down Hill Country Club               <Rating 69> "
  98. 980 LOCATE 14,15:PRINT" 3 Swamp Grass USA                      <Rating 72> ":COLOR 7,0
  99. 990 GOSUB 930:IF Z<"1" OR Z>"3" THEN GOSUB 940:GOTO 990 ELSE C=VAL(Z):IF C=1 THEN RETURN
  100. 1000 FOR D=1 TO ((C-1)*126):READ E:NEXT:RETURN
  101. 1010 LOCATE 20,1:COLOR 0,7:PRINT P$" This Is Your Bag Of Clubs: ":PRINT TAB(5)"Woods 1 thru 4"TAB(20)"300 to 250 Yards ":PRINT TAB(5)"Irons 1 thru 9"TAB(20)"250 to   0 Yards ":PRINT TAB(5)"Pitching Wedge"TAB(20)"100 to   0 Yards ":COLOR 7,0
  102. 1020 COLOR 0,7:LOCATE 25,25:PRINT" Strike <F10> To Leave This Game ";:COLOR 3,0
  103. 1030 COLOR 15:LOCATE 14,5:PRINT"Choose Your Club.              ":LOCATE 15,5:PRINT"1-9 For Irons, 1-4 For Woods,":LOCATE 16,1:PRINT SPC(40):LOCATE 16,5:PRINT"Or PW For Pitching Wedge.":COLOR 7:RETURN
  104. 1040 LOCATE 2,1:STK=STK+1:IF B1>5 THEN 1070
  105. 1050 PRINT"Shot Went"DIST"Yards.":PRINT"It`s";:COLOR 15,0:PRINT GRN;:COLOR 3,0:PRINT"Yards From The Green
  106. 1060 PRINT"And Is"INT(OF)"Yards Off Line In "Z(B1):GOSUB 1030:RETURN
  107. 1070 PRINT"Shot Went Into "Z(B1):STK=STK+1:PRINT"Penalty Stroke Accessed. ":PRINT"Hit From Same Location":PENALTY=1:J=J+1:B1=1:YARDS=HOLD:DIST=0:OF=0:GRN=HOLD:GOTO 1040
  108. 1080 PS=0:HP=0:S=S+1:J=0
  109. 1090 R1%=1:C1%=1:R2%=9:C2%=70:GOSUB 1780:STKS=STKS+STK:HOLE=HOLE+1:LOCATE 1,28:PRINT"Your Score On Hole";HOLE-1;"Was"STK:LOCATE 3,30:PRINT"Total Par So Far Is"TOTAL:LOCATE 4,29:PRINT"Your Current Score Is "STKS:STK=0
  110. 1100 LOCATE 25,25:COLOR 15,0:PRINT"    Strike Any Key To Continue  ";:COLOR 3,0:GOTO 930
  111. 1110 LOCATE 10,15:COLOR 15:IF STK=PAR+2 THEN DOUBLEBOGEY=DOUBLEBOGEY+1:PRINT"  A Double Bogey. Let The Next Foursome Play Through ":FOR X=1 TO 8:SOUND 100,1:SOUND 50,1:NEXT
  112. 1120 IF STK=PAR+1 THEN BOGEY=BOGEY+1:PRINT"      A Bogey. Maybe The Next Hole Will Be Better.":FOR X=1 TO 5:SOUND 500,2:SOUND 100,2:NEXT
  113. 1130 IF STK=PAR THEN PARS=PARS+1:PRINT"            A Par. Keep Up The Good Work.":SOUND 2000,15
  114. 1140 IF STK>PAR+2 THEN BAD=BAD+1:PRINT"       Maybe You Had Better Get Your Money Back.":SOUND 100,19
  115. 1150 IF STK=PAR-1 THEN BIRDIE=BIRDIE+1:PRINT"                Alright ! A Birdie.":FOR X=1 TO 5:SOUND 2000,1:SOUND 1000,1:SOUND 2000,1:SOUND 1000,1:NEXT
  116. 1160 IF STK=PAR-2 THEN IF PAR=3 THEN HOLEINONE=HOLEINONE+1:PRINT"A Hole In One !!!!":FOR X=1 TO 7:SOUND 2000,1:SOUND 1000,1:NEXT ELSE EAGLE=EAGLE+1:PRINT"      An Eagle. WOW !! You Should Be On The Tour.":FOR X=1 TO 7:SOUND 3000,1:SOUND 500,1:NEXT
  117. 1170 IF STK=PAR-3 THEN DOUEAG=DOUEAG+1:PRINT"YEE-HAA!!! A Double Eagle !!! Your Name Must Be JACK":FOR XX=1 TO 7:SOUND 3000,1:SOUND 1000,1:SOUND 5000,2:SOUND 500,1:NEXT
  118. 1180 COLOR 7:RETURN
  119. 1190 CLS:COLOR 2,0:LOCATE 1,27:PRINT"Your Score Is As Follows:":LOCATE 3,30:PRINT BAD"Awful Shots":PRINT TAB(30);DOUBLEBOGEY"Double Bogeys":PRINT TAB(30);BOGEY"Bogeys":PRINT TAB(30);PARS"Pars":PRINT TAB(30);BIRDIE"Birdies":PRINT TAB(30);EAGLE"Eagles
  120. 1200 PRINT TAB(30);DOUEAG"Double Eagle":PRINT TAB(30);HOLEINONE"Hole In One":LOCATE 12,27:PRINT"Par For This Course Is"TOTAL:LOCATE 13,31:PRINT"Your Score Was"STKS
  121. 1210 COLOR 0,7:LOCATE 15,23:PRINT" Would You Like To Play Again? <Y/N> ";:COLOR 7,0
  122. 1220 GOSUB 930:IF Z="Y" THEN RETURN ELSE IF Z<>"N" THEN 1220 ELSE 1450
  123. 1230 CLS:READ PAR,YARDS,LEFT,RIGHT,DIFF,LNG,FAC
  124. 1240 LNG=LNG+4
  125. 1250 GOSUB 1490
  126. 1260 LOCATE 1,1:PRINT"╔"STRING$(26,205)"╗":LOCATE 2,1:PRINT"║    You Are At No."HOLE"Tee":LOCATE 2,28:PRINT"║":LOCATE 3,1:PRINT"║"SPC(5)"Distance";:COLOR 15,0:PRINT YARDS;:COLOR 3,0:PRINT"Yards":LOCATE 3,28:PRINT"║"
  127. 1270 LOCATE 4,1:PRINT"║"SPC(9)"Par"PAR:LOCATE 4,28:PRINT"║":LOCATE 5,1:PRINT"╚"STRING$(26,205)"╝":PRINT:PRINT"On Your Left Is "Z(LEFT):PRINT"On Your Right Is "Z(RIGHT):TOTAL=TOTAL+PAR:RETURN
  128. 1280 DATA Fairway,Deep Rough,Trees,Adjacent Fairway,Sand Trap,A Big Lake,Out Of Bounds
  129. 1290 DATA 5,501,2,3,60,6,3,3,165,2,6,60,6,1,5,475,3,3,50,7,3,4,289,3,3,35,8,2,4,340,7,2,80,6,2,4,365,7,6,80,4,2,3,185,7,2,80,4,1,4,330,7,2,80,6,2,4,412,7,2,80,2,2
  130. 1300 DATA 4,440,7,3,80,8,3,4,420,7,4,80,9,3,3,145,2,6,85,8,1,5,535,7,2,80,5,3,4,340,3,3,45,5,2,4,380,6,6,85,4,2,3,165,3,3,34,6,1,4,410,7,2,85,2,2,5,450,3,3,45,8,3
  131. 1310 DATA 4,412,6,6,80,2,2,4,446,3,3,25,8,2,5,630,3,3,35,2,3,3,210,6,6,75,2,1,4,315,3,1,40,7,2,4,454,3,6,85,7,3,3,154,6,6,85,7,1,5,625,3,6,85,2,3,4,444,3,3,25,8,3
  132. 1320 DATA 3,215,1,7,85,12,2,5,556,2,2,30,4,3,4,413,3,6,85,2,2,4,450,4,4,25,8,3,4,465,3,7,85,7,3,5,630,2,2,15,2,3,3,147,6,6,85,8,1,4,432,2,3,35,8,3,4,472,7,6,85,7,3
  133. 1330 DATA 5,628,3,3,10,2,3,3,235,6,6,75,10,2,4,531,3,6,65,5,3,4,465,2,7,65,7,3,4,543,6,2,60,4,3,3,312,6,6,85,7,2,5,622,2,3,25,2,3,4,476,2,2,35,7,3,4,465,3,2,40,7,3
  134. 1340 DATA 3,197,6,3,75,3,1,4,345,6,2,70,5,2,5,623,3,2,30,2,3,4,456,2,3,35,7,3,4,398,3,3,35,3,2,3,300,6,7,75,8,2,5,621,2,3,45,2,3,4,467,3,3,44,7,3,4,489,2,2,32,6,3
  135. 1350 FOR XX=2 TO 22:LOCATE XX,1:PRINT"│":LOCATE XX,80:PRINT"│":NEXT:LOCATE 1,1:PRINT"┌"STRING$(78,196)"┐":LOCATE 23,1:PRINT"└"STRING$(78,196)"┘";:LOCATE 2,2:COLOR 3,0:COLOR 15,0:PRINT  TAB(33)"P C   G O L F"
  136. 1360 LOCATE 10,23,0:PRINT"Would You Like Instructions? <Y/N>";:COLOR 3,0:GOSUB 930:IF Z="N" THEN RETURN ELSE IF Z<>"Y" THEN 1360
  137. 1370 LOCATE 4,13:PRINT"Welcome to the first tee.  When asked,  you will need to":LOCATE 5,13:PRINT"tell the starter your handicap (1 to 30) and indicate if":LOCATE 6,13:PRINT"your game is affected by any of the problem areas listed.
  138. 1380 LOCATE 7,13:PRINT"It will be to your benefit to be honest in answering, as":LOCATE 8,13:PRINT"it will emulate your golfing abilities.":LOCATE 10,13:PRINT"Before each shot, the scene will be set for you. Respond
  139. 1390 LOCATE 11,13:PRINT"by  choosing the right club from your bag and indicating":LOCATE 12,13:PRINT"how hard you wish to swing   11 to 100 % .":LOCATE 13,13:PRINT"Wood shots are always full hits.
  140. 1400 LOCATE 15,13:PRINT"The  game is  programmed to mix  pre-set  club  distance":LOCATE 16,13:PRINT"with your  indicated ` % ' of full swing to produce your":LOCATE 17,13:PRINT"results.
  141. 1410 LOCATE 19,13:PRINT"Obviously, the more you  play  and  learn the subtleties":LOCATE 20,13:PRINT"of `club swing %,' the  better  you  will score.":LOCATE 22,18:PRINT"WHAT? YOU THOUGHT THIS WAS GOING TO BE EASY?
  142. 1420 LOCATE 25,27:COLOR 15,0:PRINT"Strike Any Key To Continue";:GOTO 930
  143. 1430 KEY(10) OFF:COLOR 15,0:LOCATE 25,20:PRINT"Do You Wish To Leave This Game? <Y/N>    ";:COLOR 3,O
  144. 1440 GOSUB 930:IF Z="N" OR Z="n" THEN LOCATE 25,1:PRINT SPC(70);:LOCATE 25,22:COLOR 0,7:PRINT"Strike <F10> To Leave This Game";:COLOR 3,0:KEY(10) ON:RETURN ELSE IF Z<>"Y" AND Z<>"y" THEN 1440
  145. 1450 CLS:LOCATE 12,27:COLOR 15:PRINT"Thank You For Playing
  146. 1460 CLEAR:ON ERROR GOTO 1470:RUN"MENU2"
  147. 1470 CLEAR:ON ERROR GOTO 1480:RUN"MENU1"
  148. 1480 RUN"MENU3"
  149. 1490 CLS:LOCATE 1,41:PRINT"┌"STRING$(37,196)"┐":FOR E=2 TO 22:LOCATE E,41:PRINT"│";:LOCATE E,79:PRINT"│":NEXT
  150. 1500 LOCATE 23,41:PRINT"└"STRING$(17,196)"┘°└"STRING$(17,196)"┘":LOCATE 22,59:PRINT"├─┤":LOCATE 21,58:PRINT"└┐ ┌┘":LOCATE 20,58:PRINT"\   /":LOCATE 19,57:PRINT"\     /":LOCATE 18,56:PRINT"\       /"
  151. 1510 FOR E=17 TO LNG STEP -1:LOCATE E,55:PRINT"│":LOCATE E,65:PRINT"│":NEXT:LOCATE LNG-1,56:PRINT"/       \":COLOR 2,0:LOCATE LNG-2,57:PRINT" ▓▓▓▓▓ ":LOCATE LNG-3,58:PRINT"▓▓▓▓▓":COLOR 3,0
  152. 1520 ON RIGHT-1 GOSUB 1540,1550,1580,1560,1590,1600
  153. 1530 ON LEFT-1 GOSUB 1610,1620,1580,1630,1650,1660:RETURN
  154. 1540 COLOR 6,0:LOCATE 20,62:PRINT"▒":LOCATE 19,63:PRINT"▒▒▒":LOCATE 18,64:PRINT"▒▒▒▒":FOR E=17 TO LNG+1 STEP-1:LOCATE E,65:PRINT"▒▒▒▒▒":NEXT:LOCATE LNG,65:PRINT"▒▒▒▒":LOCATE LNG-1,64:PRINT"▒▒▒▒":GOTO 1580
  155. 1550 COLOR 2,0:LOCATE 20,62:PRINT CHR$(5):LOCATE 19,63:PRINT STRING$(3,5):LOCATE 18,64:PRINT STRING$(4,5):FOR E=17 TO LNG+1 STEP-1:LOCATE E,65:PRINT STRING$(4,5):NEXT:LOCATE LNG,65:PRINT STRING$(4,5):LOCATE LNG-1,64:PRINT STRING$(4,5):GOTO 1580
  156. 1560 COLOR 14,0:LOCATE 17,65:PRINT"████":LOCATE 16,65:PRINT"████":LOCATE 15,65:PRINT"████":LOCATE 14,65:PRINT"████":IF LNG>8 THEN 1580
  157. 1570 LOCATE 11,65:PRINT"████":LOCATE 10,65:PRINT"████":LOCATE 9,65:PRINT"████":LOCATE 8,65:PRINT"████":LOCATE 7,65:PRINT"████"
  158. 1580 COLOR 3,0:RETURN
  159. 1590 COLOR 3,0:FOR E=16 TO LNG+1 STEP-1:LOCATE E,64:PRINT"»»»»»»»":NEXT:LOCATE 17,65:PRINT"»»»»»":LOCATE LNG,65:PRINT"»»»»»":RETURN
  160. 1600 X=0:Z="OUT OF BOUNDS":FOR E=7 TO 21:X=X+1:LOCATE E,70:PRINT MID$(Z,X,1):NEXT:RETURN
  161. 1610 COLOR 6,0:LOCATE 20,58:PRINT"░":LOCATE 19,55:PRINT "░░░":LOCATE 18,53:PRINT "░░░░":FOR E=17 TO LNG+1 STEP-1:LOCATE E,51:PRINT "░░░░░":NEXT:LOCATE LNG,53:PRINT "░░░░":LOCATE LNG-1,54:PRINT "░░░░":GOTO 1580
  162. 1620 COLOR 2,0:LOCATE 20,58:PRINT CHR$(5):LOCATE 19,55:PRINT STRING$(3,5):LOCATE 18,53:PRINT STRING$(4,5):FOR E=17 TO LNG+1 STEP-1:LOCATE E,52:PRINT STRING$(4,5):NEXT:LOCATE LNG,52:PRINT STRING$(4,5):LOCATE LNG-1,53:PRINT STRING$(4,5):GOTO 1580
  163. 1630 COLOR 15,0:LOCATE 17,54:PRINT"████":LOCATE 16,54:PRINT"████":LOCATE 15,54:PRINT"████":LOCATE 14,54:PRINT"████":IF LNG>8 THEN 1580
  164. 1640 LOCATE 11,54:PRINT"████":LOCATE 10,54:PRINT"████":LOCATE 9,54:PRINT"████":LOCATE 8,54:PRINT"████":LOCATE 7,53:PRINT"████":GOTO 1580
  165. 1650 COLOR 3,0:FOR E=16 TO LNG+1 STEP-1:LOCATE E,50:PRINT"»»»»»»»":NEXT:LOCATE 17,51:PRINT"»»»»»":LOCATE LNG,51:PRINT"»»»»»":RETURN
  166. 1660 X=0:Z="OUT OF BOUNDS":FOR E=7 TO 21:X=X+1:LOCATE E,50:PRINT MID$(Z,X,1):NEXT:RETURN
  167. 1670 ZH="":IF INKEY$<>"" THEN 1670
  168. 1680 ZI=INKEY$:IF ZI="" THEN 1680
  169. 1690 IF ZI=CHR$(13) THEN ZA=SPACE$(8):LSET ZA=ZH:RETURN
  170. 1700 IF ZI=CHR$(8) THEN 1760
  171. 1710 IF LEN(ZI)>1 THEN IF RIGHT$(ZI,1)=CHR$(75) THEN 1760 ELSE 1680
  172. 1720 IF LEN(ZH)>10 THEN 1680
  173. 1730 IF ZI<"a" OR ZI>"z" THEN 1750
  174. 1740 ZI=CHR$(ASC(ZI)-32)
  175. 1750 ZH=ZH+ZI:PRINT ZI;:GOTO 1680
  176. 1760 IF LEN(ZH)<1 THEN 1680
  177. 1770 PRINT CHR$(29)" "CHR$(29);:ZH=LEFT$(ZH,LEN(ZH)-1):GOTO 1680
  178. 1780 DEF SEG:SUBRT%=VARPTR(A%(0)):CALL SUBRT%(R1%,C1%,R2%,C2%):RETURN
  179.