home *** CD-ROM | disk | FTP | other *** search
/ Share Gallery 1 / share_gal_1.zip / share_gal_1 / GAS / GAS02.ZIP / OILPROG.BAS < prev    next >
BASIC Source File  |  1985-09-27  |  12KB  |  132 lines

  1. 15 KEY OFF
  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,"1"):FOR A=2 TO 22:LOCATE A,20:PRINT"1":LOCATE A,59:PRINT"1":NEXT:LOCATE 23,20:PRINT STRING$(40,"1");:LOCATE 2,26:COLOR 3,0:PRINT"***** INCOME STATEMENT *****":LOCATE 3,21:PRINT STRING$(38,"M")
  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"I"STRING$(22,"M")";":LOCATE 2,28:PRINT":    GEOLOGY REPORT    :":LOCATE 3,28:PRINT"H"STRING$(22,"M")"<":LOCATE 4,20:PRINT"I"STRING$(39,"M")";":FOR X=5 TO 11:LOCATE X,20:PRINT":":LOCATE X,60:PRINT":":NEXT
  93. 930 LOCATE 12,20:PRINT"H"STRING$(39,"M")"<":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:COLOR 7,0:CLS:KEY ON:END
  126. 1280 CLS:LOCATE 1,15:PRINT STRING$(50,"1"):FOR A=2 TO 22:LOCATE A,15:PRINT"1":LOCATE A,64:PRINT"1":NEXT:LOCATE 23,15:PRINT STRING$(50,"1");:LOCATE 2,26:COLOR 3,0:PRINT"***** FINAL  STATEMENT *****":LOCATE 3,16:PRINT STRING$(48,"M")
  127. 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
  128. 1300 LOCATE ,31:IF OOM THEN PRINT USING "$$#,###,###.##";-1000000!; ELSE PRINT USING "$$#,###,###.##";CSH-1000000!;
  129. 1310 LOCATE ,POS(0)+1:PRINT USING "$$,###,###,###.##";TOTALRVS:IF OOM THEN ELSE 1330
  130. 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 !!
  131. 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
  132.