5 OPEN 2,2,2,CHR$[NOSPaCE](8)+CHR$[NOSPaCE](1) 10 REM ENERGISPIL UDVIKLET AF INGA & 12 REM ERLING THORUP MADSEN 15 REM FOR NORDISK MINISTERRAAD. 20 REM SYYSK 1987 VER 1.2DX-40 30 REM OPDAT NOVEMBER 87 TIL FINSK 50 DIM N$(11), A$(4), B$(4) 55 DIM F$(4),E$(4),S$(4) 60 FOR I=1 TO 11 : READ N$(I) : NEXT I 62 DATA "YDINVOIMALA","VESIVOIMALA" 63 DATA "OELJYLAUHD.VOIM","HIILILAUHD.VOIM." 64 DATA "KAASULAUHD.VOIM.","OELJYLAEMM.VOIM." 66 DATA "HIILILAEMP.KESK.","KAASULAEMP.KESK." 67 DATA "OELJYLAEMP.KESK." 68 DATA "HIILILAEMM.VOIM." 69 DATA "KAASULAEMM.VOIM." 70 FOR I=1 TO 4: READ A$(I) : NEXT I 71 FOR I=1 TO 4: READ B$(I) : NEXT I 72 FOR I=1 TO 4: READ F$(I) : NEXT I 73 READ M$,K$ 74 FOR I=1 TO 3: READ S$(I) : NEXT I 75 FOR I=1 TO 4: READ X$(I) : NEXT I 76 FOR I=1 TO 4: READ Y$(I) : NEXT I 78 DATA "SAEHKOEAE","OELJYAE","KAASUA" 79 DATA "KAUKOLAEMP.","OELJYAE","HIILTAE" 80 DATA "KAASUA","URAANIA","MILJ.TONNIA" 81 DATA "MILJ.TONNIA","MILJ.M3","TONNIA" 82 DATA "MILJ.MK","MILJ.MWH" 83 DATA " RAKENNUKSET"," TEOLLISUUS" 84 DATA " LIIKENNE" 87 DATA "SAEHKOE","OELJY","KAASU" 88 DATA "KAUKOLAEMP.","OELJY","HIILI" 89 DATA "KAASU","URAANI" 90 FOR I=1 TO 4: READ T$(I): NEXT I 92 DATA "KEVAET","KESAE","SYKSY" 93 DATA "TALVI" 100 DIM H(10,4),A(3,4,3),F(4),W(4) 105 DIM O(4),E(11),L9(11),T1(4) 110 DIM C(10,7),G(4),K(6),N(4) 120 F(1)=.4:F(2)=.4: F(3)=60: W(1)=11.6 125 W(2)=6.9: W(3)=.011: W(4)=.059 130 O(1)=930: O(2)=360: O(3)=.8 135 O(4)=1.0: K(4)=165: K(5)=350 137 K(6)=200 140 T1(1)=0.5: T1(2)=8: T1(3)=0: T1(4)=-9 145 K(1)=270: K(2)=135: K(3)=155 150 N(1)=0: N(2)=0: N(3)=650: N(4)=2000 152 DATA 0,2,.4,0,1,1,1 154 FOR I=1 TO 7:READ C(1,I):NEXT I 158 DATA 0,9,.8,0,1,1,.5 160 FOR I=1 TO 7:READ C(2,I):NEXT I 164 DATA 0,10,.8,0,.3,2,.5 166 FOR I=1 TO 7:READ C(3,I):NEXT I 172 FOR I=4 TO 10: C(I,1)=-1: NEXT I 182 DATA 5350,2240,1300,1490,1260,143 183 DATA 400,143,900,1000,850 184 FOR I=1 TO 11:READ E(I):NEXT I 186 DATA 1.2,.5,.7,.7,.7,.3,.3,.3 187 DATA .8,.8,.8 188 FOR I=1 TO 11:READ L9(I):NEXT I 190 DATA .53,.42,.3,.1,.54,.36,.07 192 DATA .12,.14,.75,0,0 200 FOR J=1 TO 3: FOR I=1 TO 4 205 READ A(J,I,1): A(J,I,2)=A(J,I,1) 207 NEXT I: NEXT J 230 H(1,1)=20: H(1,2)=1000: H(1,3)=.1: H(1,4)=64.14701 260 D=500: L=2000: B=40: R=.1: P=1 270 T=7.3: S6=4490: U=0: Y=10000 280 M=0: S2=0: P1=0: P2=0: P3=0: P4=0: Q1=0: Q2=0: Q3=0: Q4=0 300 REM ---- FORSIDE ----- 310 GOSUB 5020 320 PRINT TAB([NOSPaCE]10)"ENERGIAPELI" 330 PRINT TAB([NOSPaCE]7)"VER 1.1D-40 SYYSK 1985" 331 PRINT TAB([NOSPaCE]7)"(RUOTSAL. OLOT)": PRINT 332 PRINT"POHJOISMAISEN LAEAENIN "; 334 PRINT"ENERGIANHUOLLON SIMULOINTI." 337 PRINT"POHJOISMAIDEN MINISTERINEUVOSTOLLE SUUNNITELLUT "; 340 PRINT" ERLING THORUP MADSEN" 345 PRINT: PRINT: PRINT 350 PRINT"KIRJOITA PAEIVAEYS";:INPUT C$ 360 PRINT"KIRJOITA NIMESI";:INPUT C$ 370 PRINT"HALUATKO RAPORTIN?; 380 GOSUB 5400: P$=Z$ 390 IF P$="J" THEN GOSUB 6100 499 GOTO 990 500 REM ------ NY PERIODE ------ 510 GOSUB 5020: Z1=0 520 PRINT"NYT LOPPUU AJANJAKSO ";P 530 GOSUB 6500 610 FOR J=1 TO 3 : FOR I=1 TO 4 615 IF A(J,I,3)>=A(J,I,2)-.001 THEN GOTO 650 620 PRINT S$(J)":" X$(1) " PUUTTUU": Z1=1 650 NEXT I: NEXT J 660 IF Z1=0 THEN GOTO 680 664 PRINT"HALUATKO KATKAISTA AJANJAKSON NYT?" 665 PRINT"JOS KATKAISET PELIN NYT," 668 PRINT"SAAT MONTA RANGAISTUSPISTETTAE!)": 670 GOSUB 5400: IF Z$="E" GOTO 1000 680 REM ---- CHECKE KASSE ----- 682 IF D>-1000 THEN GOTO 700 684 PRINT"VIIMEINEN VAROITUS:": GOSUB 5100 685 PRINT"SUURIN SALLITTU KASSALUOTTO 1000" M$ 688 PRINT"PANKKI VAATII, ETTAE"; 689 PRINT" KASSALUOTON YLITTAEVAE" 690 PRINT"SUMMA MAKSETAAN HETI" 691 PRINT"ONKO SE MAHDOLLISTA? JOS "; 692 PRINT"VASTAAT EI, PELI KATKEAA" 693 GOSUB 5400: IF Z$="J" GOTO 1000 694 PRINT"MIKAE VAHINKO. NYT LAEAENI" 695 PRINT"ON TEHNYT VARARIKON !!!" 696 PRINT"PELI KATKEAA ":GOTO 1140 700 PRINT: GOSUB 5100 701 X=D*((R-.02*SGN(D))/4): D=D+X 702 X=INT(X*100)/100 703 PRINT: PRINT"KASSAN KORKO: "X;M$ 704 GOSUB 6000 705 PRINT"TOIMINTA & HALLINTO: "; 706 PRINT S0;M$:D=D-S0 707 PRINT"LAINANVAEHENNYKSIAE: "; 708 S7=0: Y1=0: FOR I=1 TO 10 709 IF H(I,1)=0 THEN 713 710 Y1=Y1+H(I,4): H(I,1)=H(I,1)-1 711 H(I,2)=H(I,2)*(1+H(I,3)/4)-H(I,4) 712 S7=S7-H(I,2) 713 NEXT I: PRINT Y1;M$: D=D-Y1 714 GOSUB 5200: GOSUB 5100 715 O(4)=1.005*O(4): O(3)=.995*O(3) 716 FOR I=1 TO 4: O(I)=O(I)*(.95+.1*RND(1)) 717 O(I)=INT(O(I)*100)/100 718 S7=S7+F(I)*O(I): NEXT I: GOSUB 5040 719 PRINT"TULOT (ENERGIANMYYNNISTAE "; 720 PRINT"KULUTTAJILLE) " 723 S1=0: S3=0: FOR J=1 TO 4: X=0 725 FOR I=1 TO 3 730 X=X+A(I,J,3): S1=S1+A(I,J,1) 732 S3=S3+A(I,J,3)-A(I,J,2) 735 A(I,J,3)=0: NEXT I: X=K(J)*X 740 PRINT"MYYTY "A$(J)": "INT(X*100)/100;M$ 741 D=D+X: NEXT J: GOSUB 5100 743 S9=0: FOR I=1 TO 3 744 S9=S9+A(I,1,1)+A(I,4,1): NEXT I 745 P3=50*(S8*.80-S9)+500*S3 750 P2=133-S2*700: S2=0: GOSUB 5040 755 S4=1.002+.003*RND(1)+.3*(S3/S1) 757 IF S4<1 THEN P4=P4+1000*(S4-1) 760 FOR I=1 TO 10: C(I,4)=0 762 IF C(I,1)>0 THEN C(I,1)=C(I,1)-1 765 NEXT I: S7=S7+S5+D : P1=S7-S6 770 S6=S7 : Q2=Q2+P2 780 Q3=Q3+P3: Q1=Q1+P1: Q4=Q4+P4 790 GOSUB 5800: P1=0: P2=0: P3=0:P4=0 800 REM ----- NY PERIODE ----- 805 P=P+1 810 K(5)=K(5)-30+60*RND(1) 820 IF K(5)>600 THEN K(5)=600 830 IF K(5)<400 THEN K(5)=400 840 K(6)=K(5)/2+40 841 K(2)=O(1)*1.1/W(1)/.8 843 K(3)=O(3)*1.2/W(3)/.8 850 FOR Z=1 TO 6 851 K(Z)=INT(K(Z)*100)/100: NEXT Z 855 T=T1(P-4*INT((P-1)/4))+INT((7*RND(1))*10)/10 856 Z=1+(7-T)/28: M=M*.995 860 FOR I=1 TO 3: FOR J=1 TO 4 865 A(I,J,1)=A(I,J,1)*S4 866 A(I,J,2)=A(I,J,1) 867 IF I<3 THEN A(I,J,2)=A(I,J,1)*Z 870 NEXT J: NEXT I: PRINT 879 R=R+.01-.02*RND(1):IF R>.12 THEN R=.12 880 IF R<.07 THEN R=.07 885 R=INT(R*1000)/1000 890 B=40+INT(12-24*RND(1)) 900 L=L+300 910 GOSUB 5040 990 PRINT: PRINT"NYT ALKAA AJANJAKSO "P 991 PRINT"ON "T$(P-4*INT((P-1)/4)) 992 PRINT"ODOTETTU KESKILAEMPOET. = "T 993 PRINT"LAINOJEN KORKO ON NYT: "; 994 PRINT R*100" %" 995 GOSUB 5040: GOSUB 5700 997 IF P$="K" THEN GOSUB 6200 1000 GOSUB 5020: GOSUB 7000 1001 PRINT"***** OHJELMAN VALINTA *****" 1004 PRINT:PRINT"1: KAEYTTOE JA HUOLTO" 1005 PRINT"2: KAUPPA JA LAINAT 1006 PRINT"3: KORJAUKSET JA UUDISTUKSET" 1007 PRINT"4: TILANNE" 1008 PRINT"5: AJANJAKSON LOPPU" 1010 PRINT"6: MUU HALLINTO" 1012 PRINT"7: LOPPU" 1020 Z=RND(1) 1050 V=0: GOSUB 5060 1055 IF V<1 OR V>7 THEN 1000 1060 ON V GOTO 2000,3000,4000,1200,500 1070 V=V-5: ON V GOTO 3500,1100 1100 PRINT"HALUATKO LOPETTAA ?" 1110 GOSUB 5400: IF Z$="E" GOTO 1000 1120 PRINT: PRINT "SELVAE, PELI LOPPUU" 1140 PRINT: GOSUB 5800: PRINT 1150 PRINT"KIITOS INNOKKAASTA OSANOTOSTA, "; 1160 PRINT C$"!": END 1200 GOSUB 5020 1201 PRINT" TILANNE AJANJAKSOSSA "P 1202 PRINT"ON "T$(P-4*INT((P-1)/4))" LAEMPOET."T 1204 V=0:PRINT:PRINT" 1. VOIMALAT" 1206 PRINT" 2. KULUTUSTILANNE" 1210 PRINT" 3. TALOUDELLINEN KATSAUS" 1212 PRINT" 4. LAINAT" 1214 PRINT" 5. POLTTOAINEVARASTO" 1216 PRINT" 6. HINNAT" 1217 PRINT" 7. PISTEET" 1218 GOSUB 5060: IF V<1 OR V>7 GOTO 1000 1222 ON V GOTO 1230,1300,1400,1390,1360 1225 V=V-5: ON V GOTO 1423,1500 1230 GOSUB 5020 1231 PRINT" VOIMALATILANNE" 1232 V=0:PRINT 1233 PRINT"1. TAEMAENHETKISET VOIMALAT" 1234 PRINT"2. MAHDOLLISET VOIMALAT": GOSUB 5060 1235 IF V>2 OR V<1 GOTO 1200 1236 ON V GOTO 1240,1260 1240 REM --- V[RK I NR.ORDEN ---- 1241 FOR I=1 TO 10 1245 IF C(I,1)<0 GOTO 1249 1246 GOSUB 5300: GOSUB 5040 1249 NEXT I: GOTO 1230 1260 REM --- TYPER VAERK ---- 1261 GOSUB 5020 1263 PRINT"MAHDOLLISET VOIMALATYYPIT:" 1265 PRINT 1267 PRINT"NRO NIMI"TAB([NOSPaCE]21)"HINTA"; 1270 PRINT TAB([NOSPaCE]29)"KAPASIT." 1272 FOR I=1 TO 11:PRINT I;TAB([NOSPaCE]5)N$(I); 1275 PRINT TAB([NOSPaCE]21)E(I);TAB([NOSPaCE]29)L9(I) 1277 NEXT I: PRINT 1280 PRINT"SAVUSUODATIN MAKSAA "; 1285 PRINT"12% LAITOKSEN HINNASTA" 1290 GOSUB 5040: GOTO 1230 1300 REM --- FORBRUG ---- 1301 GOSUB 5020 1302 PRINT" ENERGIANKULUTUS "K$: PRINT 1303 PRINT"MUOTO KESKIM. TARVE"; 1304 PRINT" VAJAUS": FOR I=1 TO 3 1305 PRINT S$(I): FOR J=1 TO 4 1306 IF I=3 AND J>2 GOTO 1320 1307 PRINT X$(J) 1308 PRINT TAB([NOSPaCE]10)INT(A(I,J,1)*Y+.5)/YTAB([NOSPaCE]20); 1309 PRINT INT(A(I,J,2)*Y+.5)/Y TAB([NOSPaCE]30); 1310 PRINT INT((A(I,J,2)-A(I,J,3))*Y+.5)/Y 1320 NEXT J: GOSUB 5040: NEXT I 1321 GOTO 1200 1360 REM --- LAGRE ---- 1361 GOSUB 5020 1362 PRINT" VARASTOTILANNE:":PRINT 1363 PRINT"VARASTO & TEHO ("; 1364 PRINT"KUN KAEYTTOE ON 100%:STA)" 1365 FOR I=1 TO 4: PRINT: PRINT Y$(I)TAB([NOSPaCE]10); 1370 PRINT INT(F(I)*Y+.5)/Y;F$(I) 1372 PRINT TAB([NOSPaCE]10)F(I)*W(I)K$ 1375 NEXT I 1380 GOSUB 5040: GOTO 1200 1390 REM --- LAAN ---- 1391 GOSUB 5020: Y1=0: FOR I=1 TO 10 1392 IF H(I,1)=0 THEN GOTO 1398 1393 Y1=Y1+H(I,4): PRINT"LAINA NRO "I 1394 PRINT"VAEHENN./AJANJ. "H(I,4)M$ 1395 PRINT"LAINAJAEAEMAE "H(I,2)M$ 1396 PRINT"JAEAENNOESERAET "H(I,1) 1397 GOSUB 5040 1398 NEXT I: PRINT"MAKSUERAE/AJANJ, "Y1;M$ 1399 GOSUB 5040: GOTO 1200 1400 REM --- 0KONOMI ----- 1402 GOSUB 5020: PRINT" TALOUS" 1408 GOSUB 5100: PRINT"LAINAKATTO: "L;M$ 1410 PRINT"NYKYINEN KORKO: "; 1412 PRINT INT(R*1000)/10" %" 1420 PRINT"LAINA-AIKA: "B/4" VUOSI" 1421 GOSUB 5040: GOTO 1200 1423 REM ---PRISER --- 1424 GOSUB 5020 1425 PRINT"TEHO "K$":ISSA/PAINOYKS." 1427 FOR I=1 TO 4: PRINT B$(I)TAB([NOSPaCE]7)W(I) 1429 NEXT I:PRINT: PRINT 1430 PRINT"HINNAT "M$":ISSA/PAINOYKS." 1437 PRINT"OSTOHINNAT:": FOR I=1 TO 4 1439 PRINT B$(I)TAB([NOSPaCE]9)O(I): NEXT I 1440 GOSUB 5040 1442 PRINT"TAVANOMAISEN SAEHKOE"; 1443 PRINT"TUOTANNON MYYTI": FOR I=1 TO 4 1445 PRINT B$(I)TAB([NOSPaCE]9)INT(W(I)*4*K(1))/10 1446 NEXT I: PRINT: GOSUB 5040 1447 PRINT"LAEMPOETUOTANNON MYYNTI " 1448 FOR I=1 TO 3 1449 PRINT B$(I)TAB([NOSPaCE]9)INT(W(I)*8*K(4))/10 1450 NEXT I: PRINT: GOSUB 5040 1452 PRINT"OELJYN & KAASUN MYYNTI" 1453 FOR I=1 TO 3 : IF I=2 GOTO 1458 1455 PRINT B$(I)TAB([NOSPaCE]9)INT(W(I)*8*K(2))/10 1458 NEXT I: PRINT: GOSUB 5040 1460 PRINT"SAEHKOEN JA LAEMMOEN MYYNTI" 1461 PRINT"YHDISTET. TUOTANOSTA" 1462 FOR I=1 TO 3 1463 PRINT B$(I)TAB([NOSPaCE]9); 1464 PRINT INT(W(I)*3*(K(1)+K(4)))/10 1465 NEXT I: GOSUB 5040: GOTO 1600 1500 REM --- POINTS --- 1502 GOSUB 5020: GOSUB 5800 1510 GOSUB 5040: GOTO 1200 1600 PRINT: PRINT 1603 PRINT"HINNAT 1 "K$":LLE ("M$":ISSA)" 1605 PRINT 1630 PRINT" MYYNTIHINTA": FOR I=1 TO 4 1635 PRINT X$(I)TAB([NOSPaCE]15)K(I): NEXT I 1640 PRINT"TUONTIHINTA"TAB([NOSPaCE]15)K(5) 1650 PRINT"VIENTIHINTA"TAB([NOSPaCE]15)K(6) 1655 PRINT: GOSUB 5040: PRINT 1660 PRINT"TUOTANTOHINTA 1 "K$":LLE" 1670 PRINT" (-TOIMINTAKUSTANNUKSET)" 1680 PRINT " SAEHKOETUOTANTO" 1690 FOR I=1 TO 3: X=INT(O(I)*25/W(I))/10 1695 PRINT Y$(I)TAB([NOSPaCE]20)X: NEXT I 1700 PRINT "URAANI"TAB([NOSPaCE]20)INT(O(4)*20/W(4))/10 1705 GOSUB 5040: PRINT 1710 PRINT " LAEMPOETUOTANTO" 1720 FOR I=1 TO 3: X=INT(O(I)*12.5/W(I))/10 1725 PRINT B$(I)TAB([NOSPaCE]20)X: NEXT I 1750 PRINT" YHDISTETTY TUOTANTO" 1760 FOR I=1 TO 3: X=INT(O(I)*16.7/W(I))/10 1775 PRINT B$(I)TAB([NOSPaCE]20)X: NEXT I 1790 PRINT: GOSUB 5040: GOTO 1200 2000 GOSUB 5020: Z3=0: Z4=0: Z5=0 2001 PRINT" TOIMINTA" 2002 PRINT: PRINT"1. VOIMALOIDEN KAEYTTOE" 2003 PRINT"2. RAAKA-AINEIDEN JAKELU "; 2004 PRINT"KULUTTAJILLE" 2006 PRINT"3. SAEHKOEN OSTO & JAKELU" 2007 V=0: GOSUB 5060 2008 IF V<1 OR V>3 GOTO 1000 2009 ON V GOTO 2010,2400,2500 2010 PRINT"MIKAE LAITOS? "; 2011 GOSUB 5060: Z=V: IF Z<=0 OR Z>10 THEN 2000 2012 IF C(Z,1)=0 GOTO 2017 2013 PRINT"SENNUMEROISTA KAEYTTOEKEL"; 2014 PRINT"POISTA " 2015 PRINT"VOIMALAA EI OLE !" 2016 GOSUB 5040: GOTO 2000 2017 REM --- Z = VAERK NR. --- 2018 PRINT: I=Z: GOSUB 5300 2019 Z2=C(Z,7): Z3=1-Z2 2020 Z9=C(Z,3)-C(Z,4) 2021 IF C(Z,2)<9 THEN 2025 2022 PRINT"PITAEAEKOE TUOTTAA "; 2023 PRINT"KAUKOLAEMPOEAE?": GOSUB 5400 2024 IF Z$="E" THEN Z9=Z9/2: Z3=0: Z2=1 2025 IF Z9<0 THEN Z9=0 2026 X=0: PRINT"HALUTTU MAEAERAE?("K$")"; 2027 INPUT X: IF X<=Z9 GOTO 2030 2028 X=Z9:PRINT"YLI KAPASITEETIN YLAERAJAN!" 2029 PRINT"MAEAERAEKSI KORJATAAN:"X;K$ 2030 Z7=1: IF C(Z,2)=2 GOTO 2046 2032 Z6=C(Z,6): Z7=.5 2033 IF C(Z,2)=1 THEN 2037 2034 IF Z2<>0 THEN Z7=.4 2035 IF Z3<>0 THEN Z7=.8 2036 IF Z2<>0 AND Z3<>0 THEN Z7=.6 2037 PRINT"HYOETYSUHDE "Z7*100"%" 2038 Z8=INT(F(Z6)*W(Z6)*Z7*Y+.5)/Y:IF Z8>X THEN 2041 2039 PRINT"VARASTOSSA LIIAN VAEHAEN "B$(Z6) 2040 X=INT(Z8*Y+.5)/Y: PRINT"UUSI MAEAERAE: ";K$ 2041 Z8=INT(X/(Z7*W(Z6))*Y+.5)/Y: F(Z6)=F(Z6)-Z8 2042 PRINT"KULUTETTU "Z8;F$(Z6)" "B$(Z6) 2043 IF Z6=3 THEN S2=S2+Z8/Y 2044 IF Z6<3 THEN S2=S2+Z8*C(Z,5) 2045 IF Z6=4 THEN S2=S2+Z8/240 2046 Z2=X*Z2: Z3=X*Z3 2047 C(Z,4)=C(Z,4)+X 2050 IF C(Z,2)<9 GOTO 2055 2051 IF Z3=0 THEN C(Z,4)=C(Z,4)+X 2055 PRINT"TUOTETTU :"INT(Z2*Y+.5)/Y;K$" SAEHKOEAE" 2056 PRINT"JA "INT(Z3*Y+.5)/Y;K$" LAEMPOEAE" 2057 G(1)=Z2: G(4)=Z3: GOSUB 5040 2059 REM FORDELE ENERGIEN 2060 PRINT"ENERGIANJAKELU KAEYNNISSAE..." 2064 FOR I=1 TO 3: FOR J=1 TO 4 2065 IF J=2 OR J=3 GOTO 2140 2070 IF I=3 AND J=4 GOTO 2140 2080 Z4= A(I,J,2)-A(I,J,3) 2085 IF Z4<=.0001 THEN 2140 2090 A(I,J,3)=A(I,J,3)+G(J) : G(J)=0 2100 Z4=A(I,J,2)-A(I,J,3) 2105 IF Z4>=0 THEN 2120 2110 G(J)=-Z4: A(I,J,3)=A(I,J,2):Z4=0 2120 PRINT: PRINT S$(I)": "A$(J) 2130 PRINT"PUUTTUU "INT(Z4*Y+.5)/Y;K$ 2135 GOSUB 5040 2140 NEXT J: NEXT I 2145 G(1)=INT(G(1)*Y+.5)/Y 2150 IF G(1)<=0 GOTO 2390 2160 PRINT"YLIJAEAEMAESAEHKOEAE "G(1)K$ 2165 PRINT"ON MYYTY "INT(G(1)*K(6)*100)/100M$ 2170 D=D+G(1)*K(6): GOSUB 5100: GOSUB 5040 2390 GOTO 2000 2400 REM -- FORSYNE M OLIE + GAS --- 2402 FOR I=1 TO 3: FOR J=2 TO 3 2403 IF I=3 AND J=3 GOTO 2491 2404 Z4=A(I,J,2)-A(I,J,3) 2405 IF Z4<=0 THEN 2491 2406 Z3=(J-2)*2+1: Z2=F(Z3)*W(Z3)*.8 2408 IF Z23 GOTO 1000 3020 Y1=V: ON V GOTO 3021,3021,3200 3021 PRINT"MITAE HALUAT OSTAA/MYYDAE?" 3022 FOR I=1 TO 4 : PRINT" "I" "; 3023 PRINT B$(I): NEXT I 3024 V=0:GOSUB 5060: Z=V 3025 IF Z<1 OR Z>4 THEN 3000 3026 PRINT"PALJONKO ? ("F$(Z)") "; 3027 INPUT X 3030 PRINT"ARVO = "INT(X*O(Z)*100)/100;M$ 3040 PRINT"PALAMISARVO "INT(X*W(Z)*1000)/1000;K$ 3042 PRINT"(PANE MERKILLE TAEMAE "; 3043 PRINT"PALAMISEN KOKONAISARVO)" 3044 GOSUB 5500 3046 IF Z$="E" GOTO 3000 3050 IF Y1=2 GOTO 3100 3051 D=D-X*O(Z) 3052 F(Z)=F(Z)+X: GOSUB 5700 3055 PRINT"VARASTOSSA ON NYT "B$(Z) 3056 PRINT F(Z);F$(Z) 3060 GOSUB 5100: GOSUB 5040: GOTO 3000 3100 IF X<=F(Z) THEN 3120 3110 X=F(Z): PRINT"VARASTOSSA EI OLE " 3111 PRINT"NIIN PALJON, SEN SIJAAN MYYDAEAEN " 3112 PRINT INT(X*Y+.5)/Y;F$(Z) 3120 D=D+X*O(Z): F(Z)=F(Z)-X 3130 GOSUB 5700: GOTO 3055 3200 REM --- LAAN ----- 3202 Z=0: PRINT"PALJONKO HALUAT "; 3203 PRINT"LAINATA ? ("M$")": INPUT Z 3204 IF Z<=0 GOTO 3000 3206 IF Z<=L GOTO 3208 3207 PRINT"LAINAKATTO ON "L;M$:GOTO 3200 3208 X=0: FOR I=1 TO 10 3210 IF H(I,1)=0 AND X=0 THEN X=I 3212 NEXT I: IF X>0 GOTO 3214 3213 PRINT"KORKEINTAAN 10 LAINAA": GOTO 3060 3214 I=X: X=(Z*R/4)/(1-(1+(R/4))^(-B)) 3232 PRINT"LAINA NRO"I": "Z;M$ 3235 X=INT(X*100)/100 3236 PRINT"MAKSUERAE/AJANJAKSO: "X;M$ 3238 PRINT"KORKO: "100*R" %": GOSUB 5500 3239 IF Z$="E" GOTO 3060 3240 H(I,4)=X:H(I,1)=B:H(I,2)=Z:H(I,3)=R 3245 D=D+Z: L=L-Z: GOTO 3000 3500 REM -- 0VRIGT ---- 3600 GOSUB 5020 3610 PRINT"TUKEA VOIDAAN ANTAA "; 3615 PRINT"UUSIUTUVAN ENERGIAN " 3620 PRINT"KAEYTTOEOEN JA ENERGIANSAEAESTAEMISEEN." 3625 PRINT"PIENIN AVUSTUS ON 700 "M$ 3650 PRINT"PALJONKO VOIT ANTAA?"; 3655 INPUT X 3660 IF X>=700 GOTO 3670 3665 PRINT"SE ON LIIAN VAEHAEN!" 3666 GOSUB 5040: GOTO 1000 3670 Y1=(X/300)*(1-(M+X)/20000) 3671 Y1=INT(Y1*100)/100 3675 PRINT"SEN PITAEISI TUOTTAA "YI" % "; 3680 PRINT"SAEAESTOEAE" 3685 PRINT"RAKENNUKSILLE JA TEOLLISUUDELLE " 3690 GOSUB 5500: IF Z$="E" GOTO 1000 3700 D=D-X: M=M+X:P4=P4+Y1*400:Y1=1-Y1/100 3705 FOR I=1 TO 2: FOR J=1 TO 4 3710 A(I,J,1)=INT(Y1*A(I,J,1)*Y+.5)/Y: NEXT J: NEXT I 3720 PRINT"OK": GOSUB 5040: GOTO 1000 4000 REM ----- ENTREPRISER ----- 4002 GOSUB 5020: PRINT" KORJAUKSET " 4004 PRINT:PRINT"1. LAITOKSIEN RAKENTAMINEN" 4006 PRINT"2. LAITOKSIEN UUSIMINEN" 4008 PRINT"3. SAVUSUODATTIMIEN ASENTAMINEN" 4010 PRINT"4. RAKENNUSTEN JA TEOLLISUUDEN" 4011 PRINT" MUUTOKSET" 4012 PRINT"5. YLEISTEN LIIKENNEVAELI"; 4013 PRINT"NEIDEN KAEYTOEN LAAJENNUS" 4015 PRINT"6. VOIMALOIDEN LYHYTAIKAINEN SEISAUTUS" 4030 V=0: GOSUB 5060 4035 IF V<1 OR V>6 GOTO 1000 4040 ON V GOTO 4050,4200,4300,4400,4500,4700 4050 PRINT: PRINT"MAHDOLLISET VOIMALATYYPIT:" 4060 FOR I=1 TO 11 4061 PRINT" "I,N$(I): NEXT I 4062 GOSUB 5060: X=V 4063 IF X<1 OR X>11 GOTO 4000 4064 Z=0: FOR I=1 TO 10 4065 IF C(I,1)<0 AND Z=0 THEN Z=I 4066 NEXT I: IF Z>0 THEN GOTO 4070 4067 PRINT"VOIT RAKENTAA KAIKEN"; 4068 PRINT" KAIKKIAAN 10 LAITOSTA" 4069 GOSUB 5040: GOTO 4000 4070 I=Z: C(I,1)=6: IF X=1 THEN C(I,1)=10 4071 IF X>5 AND X<9 THEN C(I,1)=4 4072 IF X=2 THEN C(I,1)=7 4073 C(I,2)=X: C(I,3)=L9(X): C(I,5)=1 4074 Z=0: IF X=2 GOTO 4090 4076 IF X=1 THEN Z=4: GOTO 4090 4078 Z= X-2-3*INT((X-3)/3) 4090 C(I,6)=Z: C(I,7)=1 4091 IF X>8 THEN C(I,7)=.5 4095 IF X>5 AND X<9 THEN C(I,7)=0 4100 PRINT"OLET VALINNUT:": GOSUB 5300 4105 GOSUB 5100 4110 PRINT"HINTA "E(X);M$ 4111 PRINT"(MAKSETAAN KAETEISENAE)" 4112 GOSUB 5500 4130 IF Z$="K" GOTO 4140 4135 PRINT"EI SITTENKAEAEN" 4136 C(I,1)=-1: GOTO 4199 4140 D=D-E(X): PRINT "HYVAE ON, LAITOS RAKENNETAAN" 4145 PRINT C(I,1)" AJANJAKSOSSA" 4199 GOSUB 5100: GOSUB 5040: GOTO 4000 4200 V=0:PRINT 4210 PRINT"MIKAE LAITOS UUSITAAN?" 4220 GOSUB 5060: X=V 4252 IF X<1 OR X>10 GOTO 4000 4253 IF C(X,1)>=0 GOTO 4256 4254 PRINT"SENNUMEROISTA LAITOSTA EI OLE!" 4255 GOTO 4200 4256 IF C(X,2)>2 GOTO 4260 4257 PRINT"EI UUSITTAVISSA!":GOTO 4200 4260 I=X: GOSUB 5300 4261 PRINT"MIKAE UUSI POLTTOAINE?" 4262 FOR I=1 TO 3: PRINT I,Y$(I): NEXT I 4263 V=0: GOSUB 5060 4264 IF V<1 OR V>3 GOTO 4200 4265 Z=V: Z1=Z-C(X,6) 4266 Y1=E(C(X,2)+Z1)-E(C(X,2)) 4267 IF Y1<0 THEN Y1=0 4268 Y1=Y1+.1*E(C(X,2)+Z1) 4270 IF Z1<>0 GOTO 4275 4271 PRINT"KAEYTTAEAE JO "B$(Z) 4272 GOTO 4200 4275 GOSUB 5100 4276 PRINT"UUSIMINEN MAKSAA "Y1;M$ 4280 GOSUB 5500: IF Z$="E" GOTO 4200 4285 D=D-Y1: C(X,2)=C(X,2)+Z1 4286 C(X,6)=Z: C(X,1)=2+C(X,1) 4290 PRINT"OK, LAITOS ON VALMIS"C(X,1); 4291 PRINT" AJANJAKSON KULUTTUA" 4292 IF Z=3 THEN P4=P4+Y1/4 4294 GOSUB 5100: GOTO 4200 4300 V=0:PRINT 4301 PRINT"SAVUSUODATIN MIHIN LAITOKSEEN?" 4302 GOSUB 5060: X=V 4305 IF X<1 OR X>10 GOTO 4000 4310 IF C(X,1)>=0 GOTO 4315 4311 PRINT"NUMEROSSA EI OLE LAITOSTA!" 4312 GOTO 4300 4315 IF C(X,2)>2 AND C(X,6)<3 GOTO 4320 4316 PRINT"EI MAHDOLLISTA TAESSAE!": GOTO 4300 4320 I=X: GOSUB 5300: Y1=E(C(X,2))*.12 4321 IF C(X,5)=1 GOTO 4325 4322 PRINT"VAIN YKSI SUODATIN/LAITOS !" 4323 GOTO 4300 4325 PRINT"SAVUSUODATIN MAKSAA "Y1;M$ 4326 GOSUB 5500 4330 IF Z$="E" GOTO 4300 4335 D=D-Y1: C(X,5)=.3: C(X,1)=1+C(X,1) 4336 P4=P4+Y1/10 4340 PRINT"HYVAE, LAITOS ON VALMIS "C(X,1) 4341 PRINT" AJANJAKSON KULUTTUA": GOTO 4300 4400 PRINT"HUOM! KULUTTAJAT MAKSAVAT SAEHKOEOEN" 4405 PRINT"TAI OELJYYN SIIRTYMISEN!" 4410 PRINT: PRINT"1. RAKENNUKSET" 4411 PRINT"2. TEOLLISUUS": V=0 4412 GOSUB 5060: IF V<1 OR V>2 GOTO 4000 4414 Z=V: FOR I=1 TO 4 4415 PRINT I" "X$(I): NEXT I : V=0 4416 GOSUB 5060: IF V<1 OR V>4 GOTO 4410 4418 X=V: PRINT"KESKIMAEAERAEINEN KULUTUS:"; 4419 PRINT A(Z,X,1)K$ 4420 PRINT"PALJONKO KULUTUSTA ON "; 4421 PRINT"MUUTETTAVA? ": INPUT Y1 4422 IF Y1<=A(Z,X,1)-.1 AND Y1>=0 GOTO 4424 4423 PRINT"LIIAN PALJON!": GOTO 4400 4424 PRINT"MIKSI NAEISTAE (1-4)?"; 4426 V=0: GOSUB 5060 4427 IF V<1 OR V>4 OR V=X GOTO 4400 4428 Z2=Y1*N(V): PRINT"SE MAKSAA "Z2;M$ 4429 GOSUB 5500: IF Z$="E" GOTO 4400 4432 PRINT"JAHA": D=D-Z2: GOSUB 5100 4434 A(Z,X,1)=A(Z,X,1)-Y1 4435 A(Z,V,1)=A(Z,V,1)+Y1 4440 IF X<3 AND V>2 THEN P4=P4+Z2/4 4445 IF V=2 THEN P4=P4-Y1*1000 4450 GOTO 4400 4500 PRINT: PRINT"YLEISTEN KULKUNEUVOJEN "; 4505 PRINT"KAEYTOEN LISAEAEMINEN" 4510 PRINT"PIENIN HANKE MAKSAA 500 "; 4511 PRINT M$ 4520 PRINT"PALJONKO VOIT INVESTOIDA "; 4521 INPUT X 4530 IF X>=500 GOTO 4540 4535 PRINT"SE ON LIIAN VAEHAEN!" 4536 GOSUB 5040: GOTO 4000 4540 Y1=X/7000: Z=X/5000 4545 PRINT"MUUTOKSISTA JOHTUEN: " 4550 PRINT"JULKINEN LIIKENNE + "INT(Y1*Y+.5)/Y;K$ 4560 PRINT"YKSITYISAUTOILU - "INT(Z*Y+.5)/Y;K$ 4565 PRINT"(HUOM: PIENIN YKSITYINEN " 4566 PRINT"KULUTUS = 0.2"K$")" 4570 PRINT"AUTOILU KAEYTTAEAE NYT: "; 4575 PRINT A(3,2,1)K$ 4580 GOSUB 5500: IF Z$="E" GOTO 4000 4590 D=D-X: P4=P4+X/3 4591 A(3,1,1)=A(3,1,1)+Y1 4600 A(3,2,1)=A(3,2,1)-Z 4601 IF A(3,2,1)<.2 THEN A(3,2,1)=.2 4610 PRINT"JAHA.": GOSUB 5700: GOTO 4000 4700 X=0:PRINT"MIKAE LAITOS "; 4710 INPUT X: IF X<1 OR X>10 GOTO 4730 4720 IF C(X,1)>=0 GOTO 4750 4730 PRINT"EI KAEY TAESSAE!" 4740 GOSUB 5040: GOTO 4000 4750 PRINT"MONTAKO AJANJAKSOA SEISAUTUS KESTAEAE "; 4760 I=0:INPUT I: IF I<1 GOTO 4000 4770 PRINT "OK": GOSUB 5040 4780 C(X,1)=C(X,1)+I: GOTO 4000 5000 FOR I1=1 TO 2000 : NEXT I1 : RETURN 5020 PRINT"{clr}": RETURN 5040 PRINT 5041 PRINT"> P A I N A R E T U R N <"; 5055 INPUT Z$ : RETURN 5060 PRINT 5061 V=0: PRINT"< VALITSE NUMERO > "; 5070 INPUT V: RETURN 5100 D=INT(D*100)/100 5105 PRINT"KASSASAEAESTOE: "D;M$ 5110 PRINT: RETURN 5200 Z3=0: FOR Z2=1 TO 10 5201 Z3=Z3+H(Z2,2):NEXT Z2 5210 PRINT"VELKAA ON YHTEENSAE : "Z3;M$ 5211 RETURN 5300 PRINT: PRINT"LAITOS NRO."I 5301 PRINT N$(C(I,2)) 5320 IF C(I,1)=0 GOTO 5340 5321 PRINT"LAITOS KAEYNNISSAE"C(I,1); 5322 PRINT" AJANJAKSON KULUTTUA." 5340 PRINT"KAPASITEETTI "C(I,3);K$ 5342 IF C(I,2)<9 GOTO 5348 5345 PRINT"1/2 KAPAS. PELK. SAEHKOETUOTANNOSSA." 5348 PRINT"KAEYTETT.KAP. "INT(C(I,4)*1000)/1000;K$ 5350 IF C(I,5)=1 OR C(I,2)<3 GOTO 5360 5351 IF C(I,6)>2 GOTO 5360 5359 PRINT"LAITOKSESSA ON SAVUSUODATIN" 5360 PRINT"SAEHKOE: "C(I,7)*100" %" 5361 PRINT"KAUKOL.: "100-C(I,7)*100" %" 5390 RETURN 5400 Z$="?": PRINT" (VASTAA K/E) "; 5401 INPUT Z$ 5410 IF Z$<>"K" AND Z$<>"E" GOTO 5400 5420 RETURN 5500 PRINT"NAEINKOE HALUAT ? "; 5501 GOTO 5400 5700 FOR X1=1 TO 3: FOR X2=1 TO 4 5710 FOR X3=1 TO 3 5715 A(X1,X2,X3)=INT(A(X1,X2,X3)*Y+.5)/Y 5717 IF A(X1,X2,X3)<0 THEN A(X1,X2,X3)=0 5720 NEXT X3: NEXT X2: NEXT X1 5725 FOR X1=1 TO 4 5730 F(X1)=INT(F(X1)*Y+.5)/Y 5732 IF F(X1)<0 THEN F(X1)=0 5735 NEXT X1: RETURN 5800 PRINT "PISTEET TALOUDESTA: "INT(P1) 5810 PRINT"YHT.: "INT(Q1) 5830 PRINT"PISTEET YMP.SUOJELUSTA: "; 5835 PRINT INT(P2) 5840 PRINT"YHT.: "INT(Q2) 5850 PRINT"PISTEET HUOLTOVARMUU"; 5851 PRINT"DESTA: "INT(P3) 5860 PRINT "YHT.: "INT(Q3) 5870 PRINT"PISTEET ENERGIAPOLITII"; 5871 PRINT"KASTA: "INT(P4) 5880 PRINT"YHT.: "INT(Q4) 5881 PRINT"PISTEITAE YHTEENSAE: "; 5882 PRINT INT(Q1+Q2+Q3+Q4) 5890 IF Q1+Q2+Q3+Q4>-3000 GOTO 5990 5900 PRINT"SAAT "2+INT(4*RND(1))" UHKAUSKIRJETTAE!" 5910 IF Q1+Q2+Q3+Q4>-10000 GOTO 5990 5920 PRINT"SAAT LAEHTOEPASSIT!" 5930 GOTO 1150 5990 RETURN 6000 S0=50: S5=0: S8=0: FOR I=1 TO 10 6001 IF C(I,1)<0 GOTO 6020 6002 Z=.024: IF C(I,1)>0 THEN Z=.005 6005 S0=S0+Z*E(C(I,2)) 6010 IF C(I,5)<1THEN S0=S0+Z*.12*E(C(I,2)) 6017 S5=S5+E(C(I,2)) 6018 IF C(I,1)=0 THEN S8=S8+C(I,3) 6019 IF C(I,5)<1THEN S5=S5+.24*E(C(I,2)) 6020 NEXT I: RETURN 6100 REM PRINTER RUTINER 6104 PRINT#[NOSPaCE]2 : PRINT#[NOSPaCE]2," E N E R G IA P E L I" 6110 PRINT#[NOSPaCE]2," -------------------------------" 6120 PRINT#[NOSPaCE]2: PRINT#[NOSPaCE]2,"PELAAJA: "C$ 6130 PRINT#[NOSPaCE]2,"PV.: "D$: PRINT#[NOSPaCE]2 6131 PRINT#[NOSPaCE]2: PRINT#[NOSPaCE]2 6135 RETURN 6200 PRINT#[NOSPaCE]2,"--------------- AJANJAKSO "; 6205 PRINT#[NOSPaCE]2,P"---------------" 6207 PRINT#[NOSPaCE]2 6210 PRINT#[NOSPaCE]2,"KASSAJAEAEMAE: "D;M$ 6215 PRINT#[NOSPaCE]2,"ON "T$(P-4*INT((P-1)/4))","; 6220 PRINT#[NOSPaCE]2," ODOTETTU KESKILAEMPOE: "T 6225 PRINT#[NOSPaCE]2,"KAEYTTOEKELP. LAITOKSIA: "; 6230 FOR I=1 TO 10 6235 IF C(I,1)=0 THEN PRINT#[NOSPaCE]2," "I; 6240 NEXT I: PRINT#[NOSPaCE]2: PRINT#[NOSPaCE]2 6245 PRINT#[NOSPaCE]2," "; 6250 PRINT#[NOSPaCE]2,"OELJY HIILI KAASU URAANI" 6255 PRINT#[NOSPaCE]2,"OSTOHINNAT "M$" "; 6260 FOR I=1 TO 4 6265 PRINT#[NOSPaCE]2,O(I)SPC([NOSPaCE]12-LEN[NOSPaCE](STR$[NOSPaCE](O(I)))); 6270 NEXT I: PRINT#[NOSPaCE]2 6275 PRINT#[NOSPaCE]2,"VARASTO ";: FOR I=1 TO 4 6280 PRINT#[NOSPaCE]2,F(I)SPC([NOSPaCE]12-LEN[NOSPaCE](STR$[NOSPaCE](F(I))));: NEXT I 6285 PRINT#[NOSPaCE]2: PRINT#[NOSPaCE]2,"JAKELU: ("K$":ISSA)" 6290 PRINT#[NOSPaCE]2," ENERGIAMUOTO"; 6295 PRINT#[NOSPaCE]2," VUODEN KESKIM."; 6300 PRINT#[NOSPaCE]2," TARVE/AJANJAKSO" 6305 FOR I=1 TO 3: PRINT#[NOSPaCE]2,S$(I) 6310 FOR J=1 TO 4 6312 IF I=3 AND J>2 GOTO 6325 6315 PRINT#[NOSPaCE]2," "X$(J)SPC([NOSPaCE]20-LEN[NOSPaCE](A$(J))); 6320 PRINT#[NOSPaCE]2,A(I,J,1)SPC([NOSPaCE]20-LEN[NOSPaCE](STR$[NOSPaCE](A(I,J,1))))A(I,J,2) 6325 NEXT J: NEXT I: PRINT#[NOSPaCE]2 6330 PRINT#[NOSPaCE]2,"POINT: TALOUS = "; 6335 PRINT#[NOSPaCE]2,INT(Q1); 6340 PRINT#[NOSPaCE]2," YMP.SUOJELU = "INT(Q2) 6345 PRINT#[NOSPaCE]2,"HUOLTOVARMUUS = "; 6350 PRINT#[NOSPaCE]2,INT(Q3); 6355 PRINT#[NOSPaCE]2," ENERGIAPOLITIIK.= "; 6360 PRINT#[NOSPaCE]2,INT(Q4) 6365 PRINT#[NOSPaCE]2,"PISTEITAE YHTEENSAE: "; 6370 PRINT#[NOSPaCE]2,INT(Q1+Q2+Q3+Q4) 6375 PRINT#[NOSPaCE]2: RETURN 6500 IF 100*RND(1)<90 THEN RETURN 6505 U1=INT(7*RND(1)+1): U2=INT(3*RND(1)+2) 6506 IF C(U1,1)<0 THEN RETURN 6510 U=U+1: IF U>4 THEN RETURN 6520 C(U1,1)=U2+C(U1,1) 6521 ON U GOTO 6530,6540,6550 6530 PRINT"> TYOENTEKIJOEIDEN LAKKO "; 6531 PRINT"LAITOKSESSA "U1" <" 6532 PRINT"KESTAEAE "U2-1; 6533 PRINT" AJANJAKSOA": RETURN 6540 PRINT"> VAKAVA KONEVIKA LAITOK"; 6541 PRINT"SESSA "U1" <" 6542 PRINT"KORJAUS ";: GOTO 6532 6550 PRINT"> PUUTTEELLISIA TOIMITUKSIA"; 6551 PRINT" LAITOKSELLE "U1" <" 6552 PRINT"VARAOSIEN PUUTE "; 6560 GOTO 6532 7000 PRINT 7010 PRINT "KULUTUSTILANNE:" 7020 FOR I=1 TO 3: PRINT S$(I)TAB([NOSPaCE]15) 7040 X=0: FOR J=1 TO 4: X=X+A(I,J,3)*10 7060 NEXT J 7070 IF X<.1 GOTO 7090 7080 FOR J=0 TO X: PRINT"*";:NEXT J 7090 X=0: FOR J=1 TO 4 7100 X=X+10*(A(I,J,2)-A(I,J,3)) 7110 NEXT J: IF X<.01 GOTO 7140 7130 FOR J=0 TO X: PRINT"-"; : NEXT J 7140 PRINT: NEXT I: PRINT: PRINT 7150 RETURN