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

  1. 10 '6/15/83
  2. 20 ON KEY(10) GOSUB 1230:WIDTH 80:SCREEN 0,0,0:COLOR 3,0,0:XX=1:YY=1:LOCATE 1,1,0
  3. 30 CLS:DEFSNG A-Y:DEFSTR Z:DIM Z(10),HIT(3,40),PAY(20,5,3),MAP(100,3),WELL(10)
  4. 40 RANDOMIZE(VAL(RIGHT$(TIME$,2))):RANDOMIZE(RND*30000):ZUM="$$########,.##":CSH=1000000!
  5. 50 GOSUB 1140:GOSUB 1050
  6. 60 CHS=0
  7. 70 GOSUB 970
  8. 80 GOSUB 1240
  9. 90 LOCATE 24,28:COLOR 14,0:PRINT"Please Pick A Drill Site.";:COLOR 3,0
  10. 100 Z=INKEY$:IF (Z<"A" OR Z>"J") AND (Z<"a" OR Z>"j") THEN 100
  11. 110 IF Z>"J" THEN Z=CHR$(ASC(Z)-32):A=ASC(Z)-65 ELSE A=ASC(Z)-65
  12. 120 PRINT"  "Z;
  13. 130 Z=INKEY$:IF Z="" THEN 130
  14. 140 IF Z<"0" OR Z>"9" THEN LOCATE 24,28:PRINT SPC(50):GOTO 90
  15. 150 B=VAL(Z):PRINT Z;
  16. 160 C=A*10+B
  17. 170 IF MAP(C,0)=2 OR MAP(C,0)=1 THEN LOCATE 24,1:PRINT SPC(79);:GOTO 90
  18. 180 GOSUB 920
  19. 190 IF YES THEN GOSUB 220
  20. 200 IF CHS<10 THEN 70
  21. 210 GOTO 1280
  22. 220 CLS:LOCATE 21,1:PRINT STRING$(80,178):COLOR 12,0:LOCATE 9,40:PRINT"║":LOCATE 10,35:PRINT"█▄▄▄▄█▄▄▄▄█":LOCATE 11,35:PRINT"  █▄ ║ ▄█":LOCATE 12,35:PRINT"  █▀█║█▀█":LOCATE 13,35:PRINT" █▀▄█║█▄▀█":LOCATE 14,35:PRINT" ██▀ ║ ▀██"
  23. 230 LOCATE 15,35:PRINT"▄█▄  ║  ▄█▄":LOCATE 16,35:PRINT"█ ▀█▄║▄█▀ █":LOCATE 17,35:PRINT"█   ███   █":LOCATE 18,34:PRINT"█▀ ▄█▀║▀█▄ ▀█":LOCATE 19,34:PRINT"█▄█▀  ║  ▀█▄█":LOCATE 20,34:PRINT"█▀    ║    ▀█":LOCATE 21,40:PRINT"║":COLOR 2,0
  24. 240 LOCATE 1,19:PRINT"Potential Pay Zone   :";
  25. 250 COLOR 15,0:PRINT SZN"To"EZN"Ft.":COLOR 2,0
  26. 260 LOCATE 2,25:PRINT"Cost To Drill Per Ft : ";
  27. 270 COLOR 15,0:PRINT USING "$$#.##";30:COLOR 2,0
  28. 280 MAP(C,0)=1:CSF=SZN*30:DT=SZN+500
  29. 290 IF CSH-CSF<0 THEN OOM=1:YRN(CHS+1)=-(CSH):GOTO 1280
  30. 300 D=1:CHS=CHS+1
  31. 310 IF CSH-CSF<0 THEN OOM=1:YRN(CHS)=-(CSH):GOTO 1280
  32. 320 COLOR 2,0:LOCATE 3,25:PRINT"Cost So Far ";
  33. 330 COLOR 15,0:PRINT USING ZUM;CSF:COLOR 2,0
  34. 340 LOCATE 4,25:PRINT"Current Depth ";
  35. 350 COLOR 15,0:PRINT DT:COLOR 3,0
  36. 360 D=D+1
  37. 370 TRY=FIX(RND*40)+1
  38. 380 PAYOFF=HIT(TYPE,TRY)
  39. 390 IF PAYOFF>1 THEN 690
  40. 400 LOCATE 23,1:PRINT SPC(79);
  41. 410 LOCATE 24,1:PRINT SPC(79);
  42. 420 LOCATE 23,32:PRINT"No Show At";:PRINT USING " ##,### ";DT;:PRINT"Feet.";
  43. 430 IF D<3 THEN 460
  44. 440 LOCATE 24,28:PRINT"You Must Try A New Well Site";
  45. 450 FOR X=1 TO 1000:AA$=INKEY$:NEXT:GOTO 480
  46. 460 COLOR 13,0:LOCATE 24,27:PRINT"Do You Wish To Go Deeper? <Y/N>";:COLOR 3,0
  47. 470 GOSUB 950:IF YES THEN 500
  48. 480 YRN(CHS)=-CSF
  49. 490 OPD=0:GSP=0:FRC=0:OPN=0:GOTO 840
  50. 500 LOCATE 23,1:PRINT SPC(79);:LOCATE 24,1:PRINT SPC(79);
  51. 510 COLOR 15,0:LOCATE 24,27:PRINT"Strike Enter Key When Ready";:LOCATE 23,27:PRINT"Enter New Test Depth : ";:COLOR 3,0
  52. 520 Z1=""
  53. 530 Z=INKEY$:IF Z="" THEN 530
  54. 540 IF Z=CHR$(13) THEN 600
  55. 550 IF RIGHT$(Z,1)=CHR$(75) OR Z=CHR$(8) THEN 580
  56. 560 IF LEN(Z1)>6 THEN 530
  57. 570 PRINT Z;:Z1=Z1+Z:GOTO 530
  58. 580 IF LEN(Z1)<1 THEN 530
  59. 590 PRINT CHR$(29)" "CHR$(29);:Z1=LEFT$(Z1,LEN(Z1)-1):GOTO 530
  60. 600 LOCATE 23,1,0:PRINT SPC(79);:COLOR 3,0:DPT=VAL(Z1)
  61. 610 IF DPT>=DT THEN 640
  62. 620 LOCATE 23,31:PRINT"You Must Go Deeper ";:FOR X=1 TO 4000:NEXT
  63. 630 LOCATE 23,1:PRINT SPC(79);:GOTO 670
  64. 640 IF DPT<=EZN THEN 680
  65. 650 LOCATE 24,1:PRINT SPC(79);
  66. 660 LOCATE 23,30:PRINT"You Are Past The Pay Zone";
  67. 670 FOR CC=1 TO 4000:NEXT:GOTO 500
  68. 680 CSF=CSF+30*(DPT-DT):DT=DPT:GOTO 310
  69. 690 LOCATE 23,1:PRINT SPC(79);
  70. 700 LOCATE 24,1:PRINT SPC(79);
  71. 710 LOCATE 23,27:PRINT"Oil And GAS Show At";:PRINT USING " ##### ";DT;:PRINT"Feet";
  72. 720 FRC=10*DT
  73. 730 LOCATE 24,27:PRINT"Fracture Cost Is";:PRINT USING ZUM;FRC;
  74. 740 LOCATE 25,1:PRINT SPC(79);
  75. 750 LOCATE 25,27:PRINT"Do You Want To Fracture? <Y/N>";
  76. 760 GOSUB 950:IF NO THEN 480
  77. 770 HIT=FIX(FIX(RND*10)*2)+1
  78. 780 OPD=PAY(HIT,PAYOFF,TYPE)
  79. 790 GSP=PAY(HIT+1,PAYOFF,TYPE)*1000
  80. 800 LOCATE 23,1:PRINT SPC(79);:LOCATE 24,1:PRINT SPC(79);:LOCATE 25,1:PRINT SPC(79);:LOCATE 23,20:PRINT"    !!  EUREKA,  WE  STRUCK  OIL  !!"
  81. 810 LOCATE 24,19:PRINT"Well Will Produce";:COLOR 15,0:PRINT USING " ### ";OPD;:COLOR 3,0:PRINT"Barrels Of Oil Per Day";:LOCATE 25,19:PRINT"";:COLOR 15,0:PRINT USING " #,###,### ";GSP;:COLOR 3,0:PRINT"Cubic Feet Of Natural Gas Per Day";
  82. 820 OPN=(FIX(RND*75)+150)*12:LOCATE 22,27:COLOR 14,0:PRINT"Strike Any Key To Continue":COLOR 3,0
  83. 830 Z=INKEY$:IF Z="" THEN 830
  84. 840 COLOR 3,0:CLS:LOCATE 1,20:PRINT STRING$(40,"▒"):FOR A=2 TO 22:LOCATE A,20:PRINT"▒":LOCATE A,59:PRINT"▒":NEXT:LOCATE 23,20:PRINT STRING$(40,"▒");:LOCATE 2,26:COLOR 3,0:PRINT"***** INCOME STATEMENT *****":LOCATE 3,21:PRINT STRING$(38,"═")
  85. 850 LOCATE 4,22:COLOR 15,0:PRINT"Well #"CHS:LOCATE 5,38:COLOR 1:PRINT"Costs":LOCATE 6,25:COLOR 3,0:PRINT"Drilling":LOCATE 7,25:PRINT"Fracture":COLOR 1:LOCATE 8,25:PRINT"1 YR. OPER.             ":TOTALCOST=OPN+FRC+CSF
  86. 860 COLOR 3,0:LOCATE 6,40:PRINT USING ZUM;CSF:LOCATE 7,40:PRINT USING ZUM;FRC:COLOR 1:LOCATE 8,40:PRINT USING ZUM;OPN:LOCATE 9,25:COLOR 15,0:PRINT"Total Cost":COLOR 15,0:LOCATE 9,40:PRINT USING ZUM;TOTALCOST:COLOR 1:LOCATE 11,34:PRINT"Gross Income"
  87. 870 COLOR 3,0:LOCATE 12,25:PRINT"Oil":COLOR 1:LOCATE 13,25:PRINT"Gas                  ":ODS=OPD*9000:GDS=GSP*2.1:GRDS=ODS+GDS:RVS=(ODS+GDS)*5:WELL(CHS)=RVS:LOCATE 13,40:PRINT USING ZUM;GDS:COLOR 3,0:LOCATE 12,40:PRINT USING ZUM;ODS
  88. 880 COLOR 15,0:LOCATE 14,25:PRINT"Total Income":LOCATE 14,40:PRINT USING ZUM;GRDS:COLOR 1:LOCATE 15,25:PRINT"Cost          -":NTP=GRDS-TOTALCOST:LOCATE 15,40:PRINT USING ZUM;TOTALCOST:COLOR 15,0:LOCATE 16,25:PRINT"Net Profit"
  89. 890 LOCATE 16,40:PRINT USING ZUM;NTP:COLOR 3,0:LOCATE 18,25:PRINT"Estimated Reserves In Ground":CSH=CSH+NTP:YRN(CHS)=NTP:COLOR 15,0:LOCATE 19,40:PRINT USING ZUM;RVS:COLOR 3,0:ADD=0:FOR A=1 TO CHS:ADD=ADD+WELL(A):NEXT
  90. 900 LOCATE 21,25:PRINT"Total Reserves So Far ":COLOR 15,0:LOCATE 22,40:PRINT USING ZUM;ADD:COLOR 3,0:COLOR 14,0:LOCATE 24,27:PRINT"Strike Any Key To Continue";
  91. 910 COLOR 3,0:Z=INKEY$:IF Z="" THEN 910 ELSE RETURN
  92. 920 CLS:LOCATE 1,28:COLOR 13,0:PRINT"╔"STRING$(22,"═")"╗":LOCATE 2,28:PRINT"║    GEOLOGY REPORT    ║":LOCATE 3,28:PRINT"╚"STRING$(22,"═")"╝":LOCATE 4,20:PRINT"╔"STRING$(39,"═")"╗":FOR X=5 TO 11:LOCATE X,20:PRINT"║":LOCATE X,60:PRINT"║":NEXT
  93. 930 LOCATE 12,20:PRINT"╚"STRING$(39,"═")"╝":COLOR 3,0:SZN=MAP(C,1):EZN=MAP(C,2):TYPE=MAP(C,3):LOCATE 6,30:PRINT"Potential Pay Zone :":LOCATE 7,29:COLOR 15,0:PRINT SZN"To"EZN"Ft.":COLOR 3,0:LOCATE 9,26:PRINT"Target Zone Starts At"SZN+500"Ft."
  94. 940 LOCATE 14,27:COLOR 15,0:PRINT"Do You Wish To Drill? <Y/N>";:COLOR 3,0
  95. 950 Z=INKEY$:IF Z="" THEN 950 ELSE IF Z="Y" OR Z="y" THEN YES=1:NO=0:RETURN ELSE IF Z="N" OR Z="n" THEN NO=1:YES=0:RETURN ELSE 950
  96. 960 FOR X=1 TO 2000:NEXT X:RETURN
  97. 970 COLOR 15,0:CLS:LOCATE 1,26:PRINT"B O O M   C O U N T Y   U S A":B1=179:B2=195:B3=197:B4=180:B5=192:B6=193:B7=217:B8=218:B9=194:B0=191:DEF SEG=0:IF (PEEK(1040) AND 48)=48 THEN DEF SEG=45056! ELSE DEF SEG=47104!
  98. 980 A=178:LOCATE A\160+1,10:PRINT STRING$(60,196):POKE A,B8:POKE A+12,B9:POKE A+24,B9:POKE A+36,B9:POKE A+48,B9:POKE A+60,B9:POKE A+72,B9:POKE A+84,B9:POKE A+96,B9:POKE A+108,B9:POKE A+120,B0:FOR A=338 TO 3058 STEP 160
  99. 990 POKE A,B1:POKE A+12,B1:POKE A+24,B1:POKE A+36,B1:POKE A+48,B1:POKE A+60,B1:POKE A+72,B1:POKE A+84,B1:POKE A+96,B1:POKE A+108,B1:POKE A+120,B1:A=A+160:LOCATE A\160+1,10:PRINT STRING$(60,196)
  100. 1000 POKE A,B2:POKE A+12,B3:POKE A+24,B3:POKE A+36,B3:POKE A+48,B3:POKE A+60,B3:POKE A+72,B3:POKE A+84,B3:POKE A+96,B3:POKE A+108,B3:POKE A+120,B4:NEXT
  101. 1010 POKE A,B1:POKE A+12,B1:POKE A+24,B1:POKE A+36,B1:POKE A+48,B1:POKE A+60,B1:POKE A+72,B1:POKE A+84,B1:POKE A+96,B1:POKE A+108,B1:POKE A+120,B1:A=A+160:LOCATE A\160+1,10:PRINT STRING$(60,196)
  102. 1020 POKE A,B5:POKE A+12,B6:POKE A+24,B6:POKE A+36,B6:POKE A+48,B6:POKE A+60,B6:POKE A+72,B6:POKE A+84,B6:POKE A+96,B6:POKE A+108,B6:POKE A+120,B7:COLOR 3,0:D=0
  103. 1030 FOR A=3 TO 21 STEP 2:C=0:FOR B=13 TO 67 STEP 6:IF MAP(D,0)=0 THEN LOCATE A,B:PRINT Z(A/2-1)  RIGHT$(STR$(C),1)
  104. 1040 D=D+1:C=C+1:NEXT:NEXT:LOCATE 23,28:PRINT"Cash Assets";:PRINT USING ZUM;CSH:RETURN
  105. 1050 LOCATE 12,30:PRINT"ONE MOMENT PLEASE";:FOR C=0 TO 100:IF RND<.6 THEN MAP(C,0)=2 ELSE IF RND<.4 THEN MAP(C,1)=4000:MAP(C,2)=7000:MAP(C,3)=1 ELSE IF RND<.6 THEN MAP(C,1)=7500:MAP(C,2)=10000:MAP(C,3)=2 ELSE MAP(C,1)=10500:MAP(C,2)=15000:MAP(C,3)=3
  106. 1060 NEXT
  107. 1070 FOR A=1 TO 10:READ Z(A):NEXT:FOR B=1 TO 3:FOR A=1 TO 40:READ HIT(B,A):NEXT A,B:FOR C=1 TO 3:FOR B=1 TO 5:FOR A=1 TO 20:READ PAY(A,B,C):NEXT A,B,C:RETURN
  108. 1080 DATA A,B,C,D,E,F,G,H,I,J,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,5,5,5,5
  109. 1090 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,13,240,0,370,112,0,41,600,0,514,70,112,95,0,0,301,62,98
  110. 1100 DATA 37,0,12,128,0,131,19,50,0,167,6,114,42,0,36,20,0,185,39,11,0,75,15,32,21,0,7,39,0,78,3,67,17,0,0,59,0,133,22,11,0,22,8,11,2,0,6,13,0,61,3,36,8,2,0,60,4,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  111. 1110 DATA 0,461,123,0,78,502,124,120,270,0,0,960,41,581,108,333,0,1333,121,380,0,197,51,0,22,142,37,65,51,0,17,131,0,233,41,69,19,158,65,0,0,141,13,88,30,0,6,106,15,53,28,0,21,50,0,137,25,83,49,0,7,0,4,34,0,47,9,25,17,0,11,30,2,6,11,0,3,0,4,13
  112. 1120 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,276,620,29,1500,282,0,0,4400,241,1200,35,1400,860,0,80,997,240,0,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  113. 1130 DATA 0,200,40,0,23,90,41,33,0,187,32,104,0,202,43,0,0,281,27,104,0
  114. 1140 CLS:LOCATE 1,1:PRINT STRING$(80,219):FOR A=2 TO 22:LOCATE A,1:PRINT"█":LOCATE A,80:PRINT"█":NEXT:LOCATE 23,1:PRINT STRING$(80,219);:LOCATE 3,24:COLOR 15,0:PRINT"* * * W I L D C A T T E R * * *"
  115. 1150 LOCATE 12,23:PRINT"Would You Like Instructions? <Y/N>":COLOR 3,0:GOSUB 950:IF NO THEN CLS:RETURN
  116. 1160 LOCATE 5,15:PRINT"In this game,  you own an  independent  oil and gas":LOCATE 6,15:PRINT"drilling company.  First you must select a drilling":LOCATE 7,15:PRINT"site  from the map of Boom County.  After you enter
  117. 1170 LOCATE 8,15:PRINT"your site,  you  will  be  shown a  geology  report":LOCATE 9,15:PRINT"indicating the  potential pay zone.  The deeper you":LOCATE 10,15:PRINT"drill a well,  the less  chance you have of finding
  118. 1180 LOCATE 11,15:PRINT"oil or gas,  but the chance of finding huge strikes":LOCATE 12,15:PRINT"increases. Shallow wells are more likely to produce.":LOCATE 14,15:PRINT"If after drilling to the  potential pay zone and no
  119. 1190 LOCATE 15,15:PRINT"oil or gas is indicated, you may choose to drill to":LOCATE 16,15:PRINT"ONE  other  depth at that site.  If you do show oil":LOCATE 17,15:PRINT"or gas, you must  FRACTURE a well before production.
  120. 1200 LOCATE 18,15:PRINT"We have loaned you  $1,000,000 to begin exploration.":LOCATE 19,15:PRINT"That is your credit limit.  When you have completed":LOCATE 20,15:PRINT"ten wells or run out of operating capital, you will
  121. 1210 LOCATE 21,15:PRINT"be given a final statement of operations. GOOD LUCK":COLOR 15,0:LOCATE 25,28:PRINT"Strike Any Key To Continue";:COLOR 3,0
  122. 1220 IF INKEY$="" THEN 1220 ELSE CLS:RETURN
  123. 1230 KEY(10) OFF:XX=CSRLIN:YY=POS(0):LOCATE 25,1:PRINT SPC(79);:COLOR 15,0:LOCATE 25,22:PRINT"Do You Wish To Leave This Game? <Y/N>";:GOSUB 950:IF YES THEN 1250
  124. 1240 LOCATE 25,1:PRINT SPC(79);:COLOR 0,7:LOCATE 25,24:PRINT" Strike <F10> To Leave This Game ";:COLOR 3,0:LOCATE XX,YY:KEY(10) ON:RETURN
  125. 1250 CLEAR:ON ERROR GOTO 1260:RUN"MENU2"
  126. 1260 CLEAR:ON ERROR GOTO 1270:RUN"MENU1"
  127. 1270 RUN"MENU3"
  128. 1280 CLS:LOCATE 1,15:PRINT STRING$(50,"▒"):FOR A=2 TO 22:LOCATE A,15:PRINT"▒":LOCATE A,64:PRINT"▒":NEXT:LOCATE 23,15:PRINT STRING$(50,"▒");:LOCATE 2,26:COLOR 3,0:PRINT"***** FINAL  STATEMENT *****":LOCATE 3,16:PRINT STRING$(48,"═")
  129. 1290 LOCATE 4,17:PRINT"Well #     1st Year  Earnings         Reserves":FOR A=1 TO 10:LOCATE ,19:PRINT USING "##";A;:PRINT SPC(10);:TOTALRVS=TOTALRVS+WELL(A):PRINT USING ZUM;YRN(A);:PRINT USING "    "+ZUM;WELL(A):NEXT:COLOR 15,0
  130. 1300 LOCATE ,31:IF OOM THEN PRINT USING "$$#,###,###.##";-1000000!; ELSE PRINT USING "$$#,###,###.##";CSH-1000000!;
  131. 1310 LOCATE ,POS(0)+1:PRINT USING "$$,###,###,###.##";TOTALRVS:IF OOM THEN ELSE 1330
  132. 1320 LOCATE 18,23:PRINT"You Ran Out Of Money At "INT(CSH/30)"Feet.":LOCATE 19,23:PRINT"You Have 30 Days To Repay Your Loan":LOCATE 20,23:PRINT"Personal Checks Are Not Accepted !!
  133. 1330 LOCATE 22,23:COLOR 15,0:PRINT"Would You Like To Play Again? <Y/N>";:COLOR 3,0:GOSUB 950:IF NO THEN 1250 ELSE RUN
  134.