Kaiser 2 - Datei "KAISER4.TUR"
0 CLR :DIM TEXT$(40),NAMEN$(160),TITEL$(90) 1 SAVE "D8:KAISER4.TUR" 10 COM ACKER(6),LEUTE(6),KRIEG(6),LKORN(6),LAND(6),KPREIS(6),MUHL(6),MARKT(6),GELD(6),LPREIS(6),APREIS(6) 20 COM VERALAND(6),PUNKTE(6),VERBLAND(6),JUSTIZ(6),ENTHOB(6),HH(6),BD(6) 30 COM MWST(6),EIN(6),ZOLL(6),DOM(6),BURG(6),INFANT(6),ARTELL(6),KAVALL(6),MANOV(6),TOD(6),TITEL(6),VERKORN(6) 40 ------------------------------ 50 OPEN #%1,4,%0,"D8:NAMEN.DAT" 60 NAMEN$(160)="#" 70 BGET #%1,ADR(NAMEN$),160 80 CLOSE #%1 90 EXEC LOAD 91 IF PEEK(1790)=33 THEN GO# GESCHAFT 92 REPEAT :C=C+$10:PAUSE %2:IF C>$FF THEN C=8 93 POKE 708,C:UNTIL STRIG(%0)=%0 100 ------------------------------ 101 RA=RAND(100)*JUSTIZ(SP) 102 SE=INT((MG1+MG2)/100*(ZOLL(SP)+EIN(SP)+MWST(SP))+RA) 110 # EINNAHM 120 GRAPHICS %0:POKE 559,%0:POKE 756,PEEK(106):TRAP 40000:POKE 752,%1 130 DL=DPEEK(560):GELD(SP)=INT(GELD(SP)) 140 DPOKE 1560,DL+%3 150 POKE DL,%1:DPOKE DL+%1,1536 151 IF GELD(SP)<-10000-(TITEL(SP)*2000) THEN POKE 559,34:EXEC PFAND:CLS :POKE 559,%0 160 POKE 710,5:POKE 709,12:POKE 712,130 170 POKE 708,%0 180 POSITION %2,4:? " Staatseinnahmen:" 200 POSITION 20,4:? SE;" Taler" 210 POSITION 6,8:? "Zoll :" 220 POSITION 6,10:? "Mehrwertsteuer :" 230 POSITION 6,12:? "Einkommensteuer :" 240 POSITION 28+%1*(ZOLL(SP)<10),8:? ZOLL(SP);" %" 250 POSITION 28+%1*(MWST(SP)<10),10:? MWST(SP);" %" 260 POSITION 28+%1*(EIN(SP)<10),12:? EIN(SP);" %" 270 POSITION 6,14:? "Justiz :" 280 LET TEXT$="Sehr fair BescheidenHart Gierig " 290 POSITION 25,14:? TEXT$((JUSTIZ(SP)-1)*10+1,(JUSTIZ(SP)-1)*10+10) 300 POKE 559,34 310 POSITION %1,17:? "W\hlen Sie: ESC^\ Zoll \ndern" 320 POSITION %1,18:? " ESC^^ Mehrwertsteuer \ndern" 330 POSITION %1,19:? " ESC^_ Einkommensteuer \ndern" 340 POSITION %1,20:? " oder ESC^] Justiz \ndern" 350 REPEAT 360 ST=STICK(%0):IF ST<>15 THEN PAUSE 5 370 IF ST=14:PAUSE %3 380 XPOS=28:YPOS=8:STEL=%2 390 EXEC UJZER 400 ZOLL(SP)=ERGB 410 GO# EINNAHM 420 ENDIF 430 IF ST=11:PAUSE %3 440 XPOS=28:YPOS=10:STEL=%2 450 EXEC UJZER 460 MWST(SP)=ERGB 470 GO# EINNAHM 480 ENDIF 490 IF ST=7:PAUSE %3 500 XPOS=28:YPOS=12:STEL=%2 510 EXEC UJZER 520 EIN(SP)=ERGB 530 GO# EINNAHM 540 ENDIF 550 IF ST=13:PAUSE 5 560 POKE DPEEK(88)+680,%0 570 MOVE DPEEK(88)+680,DPEEK(88)+681,279 590 POSITION %2,17:? "Justiz: ESC^\ Sehr fair" 600 POSITION %2,18:? " ESC^^ Bescheiden" 610 POSITION %2,19:? " ESC^_ Hart" 620 POSITION %2,20:? " oder ESC^] Gierig" 630 REPEAT :UNTIL STICK(%0)<>15 640 IF STICK(%0)=14 THEN JUSTIZ(SP)=%1 650 IF STICK(%0)=11 THEN JUSTIZ(SP)=%2 660 IF STICK(%0)=7 THEN JUSTIZ(SP)=%3 670 IF STICK(%0)=13 THEN JUSTIZ(SP)=4 680 GO# EINNAHM 690 ENDIF 700 UNTIL STRIG(%0)=%0:P=%0:GELD(SP)=GELD(SP)+SE 710 ------------------------------ 720 # HA 730 CLS :IF P=%1 THEN 770 740 VERKORN(SP)=LKORN(SP) 750 VERALAND(SP)=INT(ACKER(SP)/10) 760 VERBLAND(SP)=INT(LAND(SP)/10) 765 IF VAL(NAMEN$(%1,%1))=%1 THEN GO# LANDMANGEL 770 CLS :POKE 708,130:POKE 709,15:POKE 710,181:POKE 712,%2:POKE 559,%0 780 POSITION 4,4:? " Handelsdaten " 790 POSITION 5,7:? "Kornpreis :" 800 A=KPREIS(SP):POSITION 25+%1*(A<100),7:? A;" Taler" 810 POSITION 5,8:? "Ackerlandpreis :" 820 A=APREIS(SP):POSITION 25+%1*(A<100),8:? A;" Taler" 830 POSITION 5,9:? "Baulandpreis :" 840 A=LPREIS(SP):POSITION 25+%1*(A<100),9:? A;" Taler" 850 POSITION 5,11:? "Kornmenge :" 860 A=VERKORN(SP):POSITION 25+%1*(A<10000)+%1*(A<1000)+%1*(A<100)+%1*(A<10),11:? A;" Ma'" 870 POSITION 5,12:? "Ackerlandmenge :" 880 A=VERALAND(SP):POSITION 25+%1*(A<10000)+%1*(A<1000)+%1*(A<100)+%1*(A<10),12:? A;" Hektar" 890 POSITION 5,13:? "Baulandmenge :" 900 A=VERBLAND(SP):POSITION 25+%1*(A<10000)+%1*(A<1000)+%1*(A<100)+%1*(A<10),13:? A;" Hektar" 910 POSITION 5,16:? " Weiter " 920 W=9:POKE 559,34:PAUSE 10 930 REPEAT 940 ST=STICK(%0) 950 IF ST=14 THEN SOUND %0,60,10,6:PAUSE %3:SOUND :POSITION %3,7+W:? " ":W=W-%1:IF W=%3 THEN W=%2 960 IF ST=13 THEN SOUND %0,50,10,6:PAUSE %3:SOUND :POSITION %3,7+W:? " ":W=W+%1:IF W=%3 THEN W=4 970 IF W=8 THEN W=6 980 IF W<%0 THEN W=%0 990 IF W>6 THEN W=9 1000 POSITION %3,7+W:? "ESC^_" 1010 UNTIL STRIG(%0)=%0 1020 IF W=%0 1030 PAUSE 5 1040 POSITION 4,20:? "Neuer Kornpreis:" 1050 XPOS=30:YPOS=20:STEL=%3 1060 EXEC UJZER 1070 KPREIS(SP)=ERGB 1080 GOTO 770 1090 ENDIF 1100 IF W=%1 1110 PAUSE 5 1120 POSITION 4,20:? "Neuer Ackerlandpreis:" 1130 XPOS=30:YPOS=20:STEL=%3 1140 EXEC UJZER 1150 APREIS(SP)=ERGB 1160 GOTO 770 1170 ENDIF 1180 IF W=%2 1190 PAUSE 5 1200 POSITION 4,20:? "Neuer Baulandpreis:" 1210 XPOS=30:YPOS=20:STEL=%3 1220 EXEC UJZER 1230 LPREIS(SP)=ERGB 1240 GOTO 770 1250 ENDIF 1260 IF W=4 1270 PAUSE 5 1280 POSITION 4,20:? "Neue Kornmenge:" 1290 XPOS=30:YPOS=20:STEL=6 1300 EXEC UJZER 1301 IF ERGB<LKORN(SP)/10 THEN ERGB=INT(LKORN(SP)/10) 1310 IF ERGB>LKORN(SP) 1320 PUT 253 1330 POSITION 4,22:? "Sie haben nur ";LKORN(SP);" Ma'":PAUSE 150 1340 GOTO 770 1350 ENDIF 1360 VERKORN(SP)=ERGB 1370 GOTO 770 1380 ENDIF 1390 IF W=5 1400 PAUSE 5 1410 POSITION 4,20:? "Neue Ackerlandmenge:" 1420 XPOS=30:YPOS=20:STEL=6 1430 EXEC UJZER 1431 IF ERGB<ACKER(SP)/10 THEN ERGB=INT(ACKER(SP)/10) 1440 IF ERGB>ACKER(SP) 1450 PUT 253 1460 POSITION 4,22:? "Sie haben nur ";ACKER(SP);" Hektar":PAUSE 150 1470 GOTO 770 1480 ENDIF 1490 VERALAND(SP)=ERGB 1500 GOTO 770 1510 ENDIF 1520 IF W=6 1530 PAUSE 5 1540 POSITION 4,20:? "Neue Baulandmenge:" 1550 XPOS=30:YPOS=20:STEL=6 1560 EXEC UJZER 1561 IF ERGB<LAND(SP)/10 THEN ERGB=INT(LAND(SP)/10) 1570 IF ERGB>LAND(SP) 1580 PUT 253 1590 POSITION 4,22:? "Sie haben nur ";LAND(SP);" Hektar":PAUSE 150 1600 GOTO 770 1610 ENDIF 1620 VERBLAND(SP)=ERGB 1630 GOTO 770 1640 ENDIF 1650 ------------------------------ 1660 # LANDMANGEL 1670 VMUHL=INT(MUHL(SP)-LAND(SP)/1000) 1680 VMARK=INT(MARKT(SP)-LAND(SP)/600) 1690 IF VMARK<%2 THEN VMARK=%0 1700 IF VMUHL<%2 THEN VMUHL=%0 1710 IF VMUHL>%0 OR VMARK>%0 1720 CLS :POKE 710,20 1730 POSITION 10,5:? " LANDMANGEL " 1740 POSITION 5,10:? "Wegen Landmangels haben Sie" 1750 POSITION 10,14:? VMUHL+1;" M^hle(n) und" 1760 POSITION 10,16:? VMARK+1;" M\rkte verloren" 1770 MARKT(SP)=MARKT(SP)-(VMARK+%1) 1780 MUHL(SP)=MUHL(SP)-(VMUHL+%1) 1781 PAUSE 10 1790 REPEAT :UNTIL STRIG(%0)=%0 1800 ENDIF 1810 ------------------------------ 1820 # KARTE 1830 IF MUHL(SP)<%0 THEN MUHL(SP)=%0 1840 IF MARKT(SP)<%0 THEN MARKT(SP)=%0 1850 GRAPHICS 24:POKE 559,%0:POKE 710,%0:POKE 709,14:POKE 712,5:POKE 708,181 1860 ST1=INT(MARKT(SP)/5) 1870 ST2=INT(MUHL(SP)/%3) 1880 IF ST1>ST2:ST=ST2:ELSE :ST=ST1:ENDIF 1890 A=INT((SP+%1)/%2) 1900 LET TEXT$="D8:MAP0" 1910 LET TEXT$(7,7)=STR$(A) 1920 OPEN #%1,4,%0,TEXT$ 1930 BGET #%1,DPEEK(88),3720 1940 IF A<>(SP+1)/2 THEN BGET #1,DPEEK(88),80:BGET #%1,DPEEK(88),3720 1950 CLOSE #%1:COLOR %1 1951 RESTORE 1952:FOR U=%0 TO SP-%1:READ X,Y,Q,W:NEXT U 1952 DATA 68,43,135,40,135,40,90,25,192,34,132,26 1953 DATA 110,50,205,15,134,40,32,35,210,30,80,38 1954 FOR U=%0 TO %3 1955 IF BURG(SP)<15 1956 TEXT Q,W+U*8," " 1957 ENDIF 1958 IF DOM(SP)<20 1959 TEXT X,Y+U*8," " 1960 ENDIF 1961 NEXT U 1970 DL=DPEEK(560) 1971 POKE DL+98,32 1980 DPOKE 1560,DL+%3 1990 POKE DL,%1:POKE 756,PEEK(106) 2000 DPOKE DL+%1,1536 2010 TEXT 30,100,"St\dte :" 2020 TEXT 164,100,ST:POKE 559,34 2030 ZAHL=ST+%1:Y=100:XENDE=315:POKE 559,34 2040 EXEC FBALK 2060 TEXT 30,110,"M\rkte ^F :" 2070 TEXT 164,110,MARKT(SP) 2080 ZAHL=MARKT(SP):Y=110 2090 EXEC FBALK 2110 TEXT 30,120,"M^hlen ^G :" 2120 TEXT 164,120,MUHL(SP) 2130 ZAHL=MUHL(SP):Y=120 2131 EXEC FBALK 2132 TEXT 30,132,"Ackerland (Tsnd):":TEXT 164,132,INT(ACKER(SP)/1000) 2133 ZAHL=ACKER(SP)/1000:Y=132 2134 EXEC FBALK 2135 TEXT 30,142,"Bauland (Tsnd):":TEXT 164,142,INT(LAND(SP)/1000) 2136 ZAHL=LAND(SP)/1000:Y=142 2140 EXEC FBALK 2160 TEXT 30,154,"Bev]lkerung ^Y :" 2170 TEXT 164,154,LEUTE(SP) 2180 ZAHL=LEUTE(SP)/10:Y=154 2190 EXEC FBALK 2210 TEXT 30,164,"Verm]gen ^X:" 2220 TEXT 124,164,GELD(SP) 2230 ZAHL=GELD(SP)/100:Y=164 2240 EXEC FBALK 2250 TEXT 30,176,"Punkte :" 2251 TEXT 124,176,PUNKTE(SP) 2252 ZAHL=PUNKTE(SP):Y=176 2253 EXEC FBALK 2262 REPEAT :UNTIL STRIG(%0)=%0 2270 ------------------------------ 2280 # GESCHAFT 2290 GRAPHICS %0:POKE 710,%2:POKE 712,248:POKE 708,%0:POKE 709,252:POKE 559,%0:POKE 756,PEEK(106):POKE 1790,100 2300 DL=DPEEK(560) 2310 DPOKE 1560,DL+%3 2320 POKE DL,%1:POKE DL+28,6 2330 DPOKE DL+%1,1536 2340 CLS :POSITION 12,%2:? " Staatseink\ufe " 2350 POSITION 10,5:? "Verm]gen : " 2360 A=GELD(SP) 2370 POSITION 22+%1*(A<10000)+1*(A<1000)+1*(A<100)+1*(A<10),5:? GELD(SP) 2380 POSITION 5,8:? "Markt..().............1000 Taler" 2390 POSITION 5,10:? "M^hle..().............2000 Taler" 2400 POSITION 5,12:? "Palast (Teil )......5000 Taler" 2410 POSITION 5,14:? "Kathedrale (Teil )..9000 Taler" 2420 POSITION 5,17:? "Geheimdienst" 2430 POSITION 5,19:? "Spielstand " 2440 POSITION 5,22:? " Ende " 2450 POKE 559,34:POKE 752,%1 2460 W=14 2470 REPEAT :POSITION %1,23:? " "; 2471 POSITION 18,12:? 15-BURG(SP);")." 2472 POSITION 22,14:? 20-DOM(SP);")." 2473 POSITION 13,10:? MUHL(SP);")." 2474 POSITION 13,8:? MARKT(SP);")." 2480 ST=STICK(%0) 2490 IF ST=14 2500 W=W-%2:SOUND %0,100,10,6:PAUSE 4:SOUND :IF W=12 OR W=7 THEN W=W-%1:POSITION %2,8+(W+%3):? " " 2510 POSITION %2,8+(W+%2):? " " 2520 ENDIF 2530 IF ST=13 2540 W=W+%2:SOUND %0,90,10,6:PAUSE 4:SOUND :IF W=13 OR W=8 THEN W=W+%1:POSITION %2,8+(W-%3):? " " 2550 POSITION %2,8+(W-%2):? " " 2560 ENDIF 2570 IF W>14 THEN W=14 2580 IF W<%0 THEN W=%0 2590 POSITION %2,8+W:? "ESC^_" 2600 UNTIL STRIG(%0)=%0 2610 IF W=%0 2620 SOUND %0,30,10,6:PAUSE 5:SOUND 2630 GELD(SP)=GELD(SP)-1000 2640 MARKT(SP)=MARKT(SP)+%1 2650 IF LAND(SP)/600<MARKT(SP) 2660 PUT 253 2670 POSITION %2,23:? "zu wenig bauland"; 2680 PAUSE 100:MARKT(SP)=MARKT(SP)-1:GELD(SP)=GELD(SP)+1000 2690 ELSE 2691 PUNKTE(SP)=PUNKTE(SP)+0.5 2692 ENDIF 2700 ENDIF 2710 IF W=%2 2720 SOUND %0,30,10,6:PAUSE 5:SOUND 2730 GELD(SP)=GELD(SP)-2000 2740 MUHL(SP)=MUHL(SP)+%1 2750 IF LAND(SP)/1000<MUHL(SP) 2760 PUT 253 2770 POSITION %2,23:? "zu wenig bauland"; 2780 PAUSE 100:MUHL(SP)=MUHL(SP)-%1:GELD(SP)=GELD(SP)+2000 2790 ELSE 2791 PUNKTE(SP)=PUNKTE(SP)+0.8 2792 ENDIF 2800 ENDIF 2810 IF W=4 AND BURG(SP)<15 2820 SOUND %0,30,10,6:PAUSE 5:SOUND 2830 GELD(SP)=GELD(SP)-5000 2840 BURG(SP)=BURG(SP)+%1 2850 IF LAND(SP)<20000 2860 PUT 253 2870 POSITION %2,23:? "zu wenig bauland"; 2880 PAUSE 100:BURG(SP)=BURG(SP)-%1:GELD(SP)=GELD(SP)+5000 2890 ELSE 2891 PUNKTE(SP)=PUNKTE(SP)+1.6 2892 ENDIF 2900 ENDIF 2910 IF W=6 AND DOM(SP)<20 2920 SOUND %0,30,10,6:PAUSE 5:SOUND 2930 GELD(SP)=GELD(SP)-9000 2940 LET DOM(SP)=DOM(SP)+%1 2950 IF LAND(SP)<30000 2960 PUT 253 2970 POSITION %2,23:? "zu wenig bauland"; 2980 PAUSE 100:LET DOM(SP)=DOM(SP)-%1:GELD(SP)=GELD(SP)+9000 2990 ELSE 2991 PUNKTE(SP)=PUNKTE(SP)+2.1 2992 ENDIF 3000 ENDIF 3010 IF W<7 3020 POSITION 10,5:? "Verm]gen : " 3030 A=GELD(SP) 3040 POSITION 22+%1*(A<10000)+%1*(A<1000)+%1*(A<100)+%1*(A<10),5:? GELD(SP) 3050 GOTO 2470 3060 ENDIF 3070 IF W=11 THEN EXEC STAND:GO# GESCHAFT 3080 IF W=14 3090 IF GELD(SP)<-10000-(TITEL(SP)*2000) THEN EXEC PFAND 3100 IF LAND(SP)+ACKER(SP)<LEUTE(SP)*10 AND LAND(SP)>%0 THEN EXEC ENTHOBEN 3110 IF ZOLL(SP)+MWST(SP)+EIN(SP)<20 THEN EXEC ENT2 3120 IF TOD(SP)<=%0 THEN EXEC TOD 3121 IF GELD(SP)>%0 THEN GELD(SP)=GELD(SP)+(GELD(SP)*%2/100) 3122 IF GELD(SP)<%0 THEN GELD(SP)=GELD(SP)+(GELD(SP)*8/100) 3123 EXEC TITEL:GRAPHICS 24:POKE 559,%0:DPOKE 709,2560 3124 OPEN #%1,4,%0,"D8:KAISER5.PIC" 3125 BGET #%1,DPEEK(88),7680 3126 CLOSE #%1:POKE 756,PEEK(106) 3127 TEXT 280,18,CHR$(SP-%1) 3128 TEXT 289,28,CHR$(SP-%1) 3129 POKE 559,34:POKE 1628,%0 3130 SP=SP+%1:EXEC SAVE:TRAP 3131:RUN "D8:KAISERB.TUR" 3131 RUN "D1:KAISERB.TUR" 3140 ENDIF 3150 IF W=9 AND PEEK(1628)=%0 3151 IF GELD(SP)<%0 THEN PUNKTE(SP)=PUNKTE(SP)-0.5 3160 CLS :POSITION 10,10:? "Bitte warten":POKE 1791,%1:EXEC SAVE:TRAP 3170:RUN "D8:KAISER5.TUR" 3170 RUN "D1:KAISER5.TUR" 3180 ENDIF 3190 W=14:GOTO 2340 3200 ------------------------------ 3210 PROC UJZER 3220 ZAEHL=%0:ERGB=%0 3230 FOR U=%1 TO STEL 3240 POSITION XPOS+U-%1,YPOS 3250 ? ZAEHL 3260 NEXT U 3270 STE=STEL 3280 REPEAT 3290 ST=STICK(%0) 3300 IF ST<15 3310 SOUND %0,40+10*(ST=13 OR ST=14),10,6 3320 PAUSE 0.7:SOUND 3330 ENDIF 3340 IF ST=11 AND STE>%1 THEN STE=STE-%1 3350 IF ST=7 AND STE<STEL THEN STE=STE+%1 3360 IF ST=11 OR ST=7 THEN LOCATE XPOS-%1+STE,YPOS,ZAEHL:ZAEHL=ZAEHL-48 3370 POSITION XPOS-%1+STE,YPOS+%1 3380 ? "ESC^\":PAUSE %1 3390 POSITION XPOS-%1+STE,YPOS+%1 3400 ? " " 3410 IF ST=14 THEN ZAEHL=ZAEHL+%1 3420 IF ST=13 THEN ZAEHL=ZAEHL-%1 3430 IF ZAEHL<%0 THEN ZAEHL=9 3440 IF ZAEHL>9 THEN ZAEHL=%0 3450 POSITION XPOS-%1+STE,YPOS 3460 ? ZAEHL 3470 UNTIL STRIG(%0)=%0 3480 FOR U=%1 TO STEL 3490 LOCATE XPOS-%1+U,YPOS,ZAEHL 3500 ERGB=ERGB+((ZAEHL-48)*10^(STEL-U)) 3510 NEXT U:SOUND %1,20,12,6:SOUND %0,70,10,6:PAUSE %3:SOUND 3520 ENDPROC 3530 ------------------------------ 3540 PROC LOAD 3550 OPEN #%1,4,%0,"D8:DATEN.DAT" 3560 %GET #%1,SP 3570 FOR U=%1 TO 6 3580 %GET #%1,A:%GET #%1,B:ACKER(U)=A:LEUTE(U)=B 3590 %GET #%1,A:%GET #%1,B:KRIEG(U)=A:LKORN(U)=B 3600 %GET #%1,A:%GET #%1,B:LAND(U)=A:KPREIS(U)=B 3610 %GET #%1,A:%GET #%1,B:MUHL(U)=A:MARKT(U)=B 3620 %GET #%1,A:%GET #%1,B:GELD(U)=A:LPREIS(U)=B 3630 %GET #%1,A:%GET #%1,B:APREIS(U)=A:VERALAND(U)=B 3640 %GET #%1,A:%GET #%1,B:PUNKTE(U)=A:VERBLAND(U)=B 3650 %GET #%1,A:%GET #%1,B:JUSTIZ(U)=A:MWST(U)=B 3660 %GET #%1,A:%GET #%1,B:EIN(U)=A:ZOLL(U)=B 3670 %GET #%1,A:%GET #%1,B:LET DOM(U)=A:BURG(U)=B 3680 %GET #%1,A:%GET #%1,B:INFANT(U)=A:ARTELL(U)=B 3690 %GET #%1,A:%GET #%1,B:KAVALL(U)=A:MANOV(U)=B 3700 %GET #%1,A:%GET #%1,B:TOD(U)=A:TITEL(U)=B 3701 %GET #%1,A:%GET #%1,B:HH(U)=A:BD(U)=B 3710 %GET #%1,A:VERKORN(U)=A:%GET #%1,B:ENTHOB(U)=B:NEXT U:%GET #%1,MG1 3720 %GET #%1,MG2:%GET #%1,JAHR:%GET #%1,U:HH(%0)=U 3730 CLOSE #%1 3740 ENDPROC 3750 ------------------------------ 3760 PROC SAVE 3770 CLOSE #%1:OPEN #%1,8,%0,"D1:DATEN.DAT" 3780 %PUT #%1,SP 3790 FOR U=%1 TO 6 3800 %PUT #%1,ACKER(U):%PUT #%1,LEUTE(U) 3810 %PUT #%1,KRIEG(U):%PUT #%1,LKORN(U) 3820 %PUT #%1,LAND(U):%PUT #%1,KPREIS(U) 3830 %PUT #%1,MUHL(U):%PUT #%1,MARKT(U) 3840 %PUT #%1,GELD(U):%PUT #%1,LPREIS(U) 3850 %PUT #%1,APREIS(U):%PUT #%1,VERALAND(U) 3860 %PUT #%1,PUNKTE(U):%PUT #%1,VERBLAND(U) 3870 %PUT #%1,JUSTIZ(U):%PUT #%1,MWST(U) 3880 %PUT #%1,EIN(U):%PUT #%1,ZOLL(U) 3890 %PUT #%1,DOM(U):%PUT #%1,BURG(U) 3900 %PUT #%1,INFANT(U):%PUT #%1,ARTELL(U) 3910 %PUT #%1,KAVALL(U):%PUT #%1,MANOV(U) 3920 %PUT #%1,TOD(U):%PUT #%1,TITEL(U) 3921 %PUT #%1,HH(U):%PUT #%1,BD(U) 3930 %PUT #%1,VERKORN(U):%PUT #%1,ENTHOB(U):NEXT U:%PUT #%1,MG1 3940 %PUT #%1,MG2:%PUT #%1,JAHR:%PUT #%1,HH(%0) 3950 CLOSE #%1 3960 ENDPROC 3970 ------------------------------ 3980 PROC TITEL 3990 IF PUNKTE(SP)>15+TITEL(SP)*9+(TITEL(SP)+%1)*TITEL(SP)/%2*4.5 AND GELD(SP)>%0 4000 TITEL$=" Herrscher Baron Landgraf Markgraf Herzog F^rst Kurf^rst K]nig " 4010 TITEL(SP)=TITEL(SP)+%1:IF TITEL(SP)=8 AND DOM(SP)=20 AND BURG(SP)=15 4020 EXEC SAVE 4030 RUN "D:KAISER6.TUR" 4040 ELSE 4050 IF TITEL(SP)=8:TITEL(SP)=7:GOTO 4290:ENDIF 4060 ENDIF 4070 GRAPHICS 24:DPOKE 709,2560 4080 POKE 559,%0 4090 OPEN #%1,4,%0,"D:KAISER4.PIC" 4100 BGET #%1,DPEEK(88),7680 4110 CLOSE #%1:X=%0:Y=%0 4120 IF TITEL(SP)<7 4130 FOR U=%0 TO 19-TITEL(SP)*2.75 4140 X=X+8:IF X=48 THEN Y=Y+8:X=%0 4150 TEXT 230+X,Y," " 4160 NEXT U 4170 ENDIF 4180 DPOKE 1560,DL+%3 4190 POKE DL,%1:POKE 756,PEEK(106) 4200 DPOKE DL+%1,1536 4210 LET TEXT$=TITEL$(TITEL(SP)*11+1,TITEL(SP)*11+10) 4220 Y=INSTR(TEXT$," "):GE=VAL(NAMEN$(SP+%1,SP+%1))-4 4230 IF GE>=%0:LET TEXT$(Y)="in":Y=Y+%2 4231 IF TITEL(SP)=%2 OR TITEL(SP)=%3 THEN LET TEXT$(7,7)="\" 4232 ENDIF 4240 U=(10-Y)*4 4250 TEXT 11+U,56,TEXT$(1,Y-%1) 4260 POKE 559,34 4270 REPEAT :UNTIL STRIG(%0)=%0 4280 ENDIF 4290 ENDPROC 4300 ------------------------------ 4310 PROC STAND 4320 CLS :POKE 710,132:POKE 712,114 4330 POSITION 12,%0:? " Spielstand " 4340 POSITION %0,%2:? "Punkte Land Bewohner Geheimd. Verm]gen":ANZAHL=VAL(NAMEN$(%1,%1)) 4350 FOR U=%1 TO ANZAHL 4360 POSITION %1,%1+U*%3:? "Seine Majest\t ";NAMEN$(U*20,U*20+19) 4370 POSITION %1,%2+U*%3:? PUNKTE(U) 4380 POSITION 8,%2+U*%3:? LAND(U)+ACKER(U) 4390 POSITION 16,%2+U*%3:? LEUTE(U) 4400 POSITION 25,%2+U*%3:? ARTELL(U) 4410 POSITION 32,%2+U*%3:? INT(GELD(U)) 4420 NEXT U 4430 REPEAT :UNTIL STRIG(%0)=%0 4440 ENDPROC 4450 ------------------------------ 4460 PROC PFAND 4470 CLS 4480 POKE 710,84 4490 POSITION 12,5:? " Pf\ndung " 4500 POSITION %2,10:? "Ihre Gl\ubiger haben Sie wegen Ihrer" 4510 POSITION %2,12:? "schlechten Finanzpolitik gepf\ndet!" 4520 GELD(SP)=(MUHL(SP)*200)+(MARKT(SP)*100)+(BURG(SP)*500)+(DOM(SP)*900) 4530 MUHL(SP)=%0:MARKT(SP)=%0:ARTELL(SP)=%0:ACKER(SP)=ACKER(SP)/100*(RAND(50)+50):LAND(SP)=LAND(SP)/100*(RAND(50)+50) 4540 KAVALL(SP)=%0:INFANT(SP)=%0:LET DOM(SP)=%0:BURG(SP)=%0:TOD(SP)=TOD(SP)-%1:LEUTE(SP)=200+RAND(300) 4550 PUNKTE(SP)=INT(PUNKTE(SP)/%2) 4560 PAUSE 50 4570 REPEAT :UNTIL STRIG(%0)=%0 4580 ENDPROC 4590 ------------------------------ 4600 PROC ENTHOBEN 4610 IF LAND(SP)=%0 THEN GOTO 4690 4620 POKE 710,48:POKE 712,226 4630 CLS 4640 POSITION 8,5:? " Schlechte Landpolitik " 4650 POSITION %1,10:? "Sie wurden inhabitans wegen schlechter" 4660 POSITION %1,12:? "Landpolitik f^r ein Jahr Ihres ^]Amtes enthoben" 4670 ENTHOB(SP)=%1:PUNKTE(SP)=PUNKTE(SP)-TITEL(SP)*10 4680 REPEAT :UNTIL STRIG(%0)=%0 4690 ENDPROC 4700 ------------------------------ 4710 PROC ENT2 4720 POKE 710,67:POKE 712,245 4730 CLS 4740 POSITION 8,5:? " Schlechte Steuerpolitik " 4750 POSITION %1,10:? "Sie wurden inhabitans wegen schlechter" 4760 POSITION %1,12:? "Steuerpolitik f^r ein Jahr Ihres ^]Amtes enthoben." 4770 ENTHOB(SP)=%1:PUNKTE(SP)=PUNKTE(SP)-TITEL(SP)*10 4780 REPEAT :UNTIL STRIG(%0)=%0 4790 ENDPROC 4800 ------------------------------ 4810 PROC TOD 4820 POKE 710,8:POKE 712,%2:POKE 709,14:CLS 4830 POSITION %2,%3:? "Eine Schlechte Nachricht." 4840 POSITION %2,5:? "Sie sind Gestorben!" 4850 ? :? 4860 ? " " 4870 ? " " 4880 ? " " 4890 ? " " 4900 ? " " 4910 ? " " 4920 ? " " 4930 ? " " 4940 ? " " 4950 POSITION %2,18:? "Doch gl^cklicherweise haben Sie recht-" 4960 POSITION %2,19:? "zeitig einen Erben hinterlassen.":POKE 752,%0:TRAP 4960 4970 POSITION %2,21:INPUT "Wie hei't Ihr Erbe?^]..........^\^^^^^^^^^^^^^^^^^^^^",TEXT$ 4980 IF LEN(TEXT$)>10 THEN 4970 4990 POKE 752,%1:? 5000 NAMEN$(SP*20+%1,SP*20+10)=" " 5010 NAMEN$(SP*20+%1,SP*20+10)=TEXT$ 5020 CLOSE #%1:OPEN #%1,8,%0,"D:NAMEN.DAT" 5030 BPUT #%1,ADR(NAMEN$),160 5040 CLOSE #%1 5050 CLOSE #%1:OPEN #%1,8,%0,"D8:NAMEN.DAT" 5060 BPUT #%1,ADR(NAMEN$),160 5070 BPUT #%1,$06F0,6 5080 CLOSE #%1 5090 TOD(SP)=RAND(10)+35:TITEL(SP)=TITEL(SP)-%3:IF TITEL(SP)<%0 THEN TITEL(SP)=%0 5100 PUNKTE(SP)=INT(TITEL(SP)*9+(TITEL(SP)+%1)/%2*4.5)+RAND(30) 5110 REPEAT :UNTIL STRIG(%0)=%0 5120 ENDPROC 5130 ------------------------------ 5140 PROC FBALK:RICHTUNG=%1:X=200:C=1:DICKE=8 5150 FOR I=%1 TO ZAHL 5160 PLOT X,Y 5170 DRAWTO X,Y+DICKE 5180 X=X+RICHTUNG 5190 IF X>=XENDE OR X=200 5200 RICHTUNG=SGN(RICHTUNG)*-%1 5210 DICKE=DICKE-%2 5220 Y=Y+%1 5230 C=C+%1 5240 COLOR C 5250 ENDIF 5260 IF DICKE=-%2 THEN EXIT 5270 NEXT I:COLOR %1 5280 ENDPROC 5290 ------------------------------
Kaiser II (c) 1989-2020 PhöniX SoftCrew
Carsten Strotmann / Björn Israel
Atari und PC Software
https://kaiser2.strotmann.de