Kaiser 2 - Datei "KAISER5.TUR"
100 SAVE "D8:KAISER5.TUR"
110 COM ACKER(6),LEUTE(6),KRIEG(6),LKORN(6),LAND(6),KPREIS(6),MUHL(6),MARKT(6),GELD(6),LPREIS(6),APREIS(6)
120 COM VERALAND(6),PUNKTE(6),VERBLAND(6),JUSTIZ(6),ENTHOB(6),HH(6),BD(6)
130 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)
140 DIM NAME$(160),LAND$(60),K$(1760),TITEL$(120),SCR$(2000),MEM$(2000)
150 TITEL$="Herrscher Baron Landgraf Markgraf Herzog F^rst Kurf^rst K]nig "
160 NAME$(160)="#":GRAPHICS %0:POKE 559,%0:POKE 1628,%1
170 OPEN #%1,4,%0,"D8:NAMEN.DAT"
180 BGET #1,ADR(NAME$),160
190 CLOSE #%1
200 CLS :POKE 752,%1
210 POKE 710,225:POKE 712,6:POKE 708,196:POKE 709,108
220 DL=DPEEK(560)
230 POKE DL,%1:DPOKE DL+%1,$0600
240 OPEN #%1,4,%0,"D1:KRIEG.FNT"
250 BGET #1,PEEK(106)*256,1024
260 CLOSE #%1:POKE 756,PEEK(106)
270 EXEC LOAD:Y=11
280 INFP=500+RAND(100)
290 ARTP=600+RAND(100)
300 KAVP=100+RAND(50)
310 MANP=200+RAND(80)
320 # HAUPT:CLS
330 POSITION 9,%0:? " GEHEIMDIENST "
340 POSITION 9,%1:? "--------------"
350 POSITION %2,%3:? "Wachen :";INFANT(SP);" "
360 POSITION %2,4:? "Preis der Wachen :";INFP
370 POSITION %2,5:? "Ausbildung pro Wache :";KAVP
380 POSITION %2,7:? "Saboteure :";ARTELL(SP);" "
390 POSITION %2,8:? "Preis der Saboteure :";ARTP
400 POSITION %2,9:? "Ausbildung pro Saboteur :";MANP
410 POSITION 6,11:? "Verm]gen :";GELD(SP);" Taler "
420 POSITION 12,14:? "Wachen einstellen"
430 POSITION 12,15:? "Saboteure einstellen"
440 POSITION 12,17:? "Wachen ausbilden"
450 POSITION 12,18:? "Saboteure ausbilden"
460 POSITION 12,20:? "Geheimdienstt\tigkeiten"
470 POSITION 12,22:? "Zur^ck"
480 POSITION 8,Y+%3:? "ESC^_":POKE 559,34
490 REPEAT
500 ST=STICK(%0)
510 IF ST<>15 THEN POSITION 8,Y+%3:? " "
520 IF ST=14 AND Y>11
530 Y=Y-%1-1*(Y=19 OR Y=14 OR Y=17)
540 ENDIF
550 IF ST=13 AND Y<19
560 Y=Y+%1+%1*(Y=12 OR Y=15 OR Y=17)
570 ENDIF
580 POSITION 8,Y+%3:? "ESC^_"
590 IF ST<>15 THEN SOUND %0,20+Y,10,10
600 PAUSE %2
610 SOUND
620 UNTIL STRIG(%0)=%0
630 SOUND %0,100,10,14:PAUSE 5:SOUND
640 IF Y=11
650 INFANT(SP)=INFANT(SP)+%1:GELD(SP)=GELD(SP)-INFP
660 ENDIF
670 IF Y=12
680 ARTELL(SP)=ARTELL(SP)+%1:GELD(SP)=GELD(SP)-ARTP
690 ENDIF
700 IF Y=14
710 KAVALL(SP)=KAVALL(SP)+%1
720 GELD(SP)=GELD(SP)-KAVP*INFANT(SP)
730 ENDIF
740 IF Y=15
750 MANOV(SP)=MANOV(SP)+%1
760 GELD(SP)=GELD(SP)-MANP*ARTELL(SP)
770 ENDIF
780 IF Y=17 AND ARTELL(SP)>%0 THEN GO# GEHEIM
790 IF Y=19
800 EXEC SAVE:POKE 1790,33:POKE 559,%0
810 TRAP 811:RUN "D8:KAISER4.TUR"
811 RUN "D1:KAISER4.TUR"
820 ENDIF
830 GOTO 330
840 ------------------------------
850 # GEHEIM
860 EXEC WER:SPI=W+%1
870 IF SPI=SP THEN CLS :GOTO 330
880 FOR U=%0 TO 100
890 X=RAND(2000)
900 POKE ADR(SCR$)+X,72
910 NEXT U
920 CLS :WACH=INFANT(SPI)
930 POSITION 15,%2:? "WACHEN"
940 POSITION 15,%3:? "------"
950 POSITION 6,6:? " Die Wachen werden verteilt!":PAUSE 200
960 MM=MUHL(SPI)
970 AA=MARKT(SPI)
980 HH=HH(SPI)
990 REPEAT
1000 IF MM>%0
1010 X=RAND(39):Y=RAND(48):U=Y*40+X
1020 IF WACH>%0
1030 WACH=WACH-%1
1040 POKE ADR(MEM$)+U,PEEK(ADR(MEM$)+U)+%1
1050 ENDIF
1060 POKE ADR(SCR$)+U,71
1070 MM=MM-%1
1080 ENDIF
1090 IF AA>%0
1100 X=RAND(39):Y=RAND(48):U=Y*40+X
1110 IF WACH>%0
1120 WACH=WACH-%1
1130 POKE ADR(MEM$)+U,PEEK(ADR(MEM$)+U)+%1
1140 ENDIF
1150 POKE ADR(SCR$)+U,70
1160 AA=AA-%1
1170 ENDIF
1180 IF HH>%0
1190 X=RAND(39):Y=RAND(48):U=Y*40+X
1200 IF WACH>%0
1210 WACH=WACH-%1
1220 POKE ADR(MEM$)+U,PEEK(ADR(MEM$)+U)+%1
1230 ENDIF
1240 POKE ADR(SCR$)+U,86
1250 HH=HH-%1
1260 ENDIF
1270 UNTIL WACH+MM+AA+HH=%0 OR MM+AA+HH=%0
1280 CLS :TITEL$="-"
1290 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760:U=RAND(30)
1300 MOVE DPEEK(88)+200,ADR(SCR$),760
1310 MOVE ADR("^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@7%)4%2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@"),ADR(SCR$)+1920,40
1320 X=%0:Y=5:XX=%0
1330 POKE DL+10,%0:SPPI=RAND(500)+TITEL(SP)*500
1340 POSITION %0,%0:? "Spion :";SPPI
1350 POSITION %0,%1:? "Objekt: ";TITEL$
1360 POSITION 20,%1:? "Wachen :",WW
1370 POSITION 20,%0:? "Verm]gen: ";GELD(SP);" ^X"
1380 POSITION %0,%2:? "Gewinne :"
1390 POSITION 20,%2:? "Land :"
1400 POSITION %0,%3:? "Geld :"
1410 POSITION 20,%3:? "Korn :"
1420 POSITION %0,4:? " SPIONAGEPHASE "
1430 REPEAT
1440 ST=STICK(%0)
1450 IF ST=14 AND Y>5 THEN Y=Y-%1
1460 IF ST=14 AND XX>%0 AND Y=5 THEN XX=XX-%1
1470 IF ST=13 AND Y<22 THEN Y=Y+%1
1480 IF ST=13 AND Y=22 AND XX<31 THEN XX=XX+%1
1490 IF ST=7 AND X<38 THEN X=X+%1
1500 IF ST=11 AND X>%0 THEN X=X-%1
1510 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760
1520 COLOR 35:PLOT X,Y
1530 PAUSE %1
1540 UNTIL STRIG(%0)=%0
1550 WW=PEEK(ADR(MEM$)+WER*40+(Y-5)*40+X)
1560 W=PEEK(ADR(SCR$)+XX*40+(Y-5)*40+X)
1570 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760
1580 TITEL$="---------"
1590 IF W=71 THEN TITEL$="M^hle "
1600 IF W=70 THEN TITEL$="Markt "
1610 IF W=86 THEN TITEL$="Handelsh."
1620 IF W=76 THEN TITEL$="Schloss "
1630 IF TITEL$(%1,%1)<>"-" THEN GELD(SP)=GELD(SP)-SPPI
1640 IF XX<31 OR Y<22 THEN GOTO 1340
1650 # SABO
1660 POSITION %0,4:? " SABOTAGEPHASE "
1670 POSITION 20,%1:? "Saboteure:"
1680 POSITION %0,%0:? "Saboteure:";ARTELL(SP)-US;" ":PAUSE 10
1690 POKE 710,82
1700 REPEAT
1710 ST=STICK(%0)
1720 IF ST=14 AND Y>5 THEN Y=Y-%1
1730 IF ST=14 AND XX>%0 AND Y=5 THEN XX=XX-%1
1740 IF ST=13 AND Y<22 THEN Y=Y+%1
1750 IF ST=13 AND Y=22 AND XX<31 THEN XX=XX+%1
1760 IF ST=7 AND X<38 THEN X=X+%1
1770 IF ST=11 AND X>%0 THEN X=X-%1
1780 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760
1790 COLOR 35:PLOT X,Y
1800 PAUSE %1
1810 UNTIL STRIG(%0)=%0:PAUSE 10
1820 WW=PEEK(ADR(MEM$)+XX*40+(Y-5)*40+X)
1830 W=PEEK(ADR(SCR$)+XX*40+(Y-5)*40+X)
1840 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760
1850 TITEL$="---------"
1860 IF W=71 THEN TITEL$="M^hle "
1870 IF W=70 THEN TITEL$="Markt "
1880 IF W=86 THEN TITEL$="Handelsh."
1890 POSITION 8,%1:? TITEL$
1900 IF TITEL$(%1,%1)="-" THEN 2240
1910 PAUSE 5:STEL=%2:XPOS=30:YPOS=%1:EXEC UJZER:PAUSE 5
1920 IF ERGB<=(ARTELL(SP)-US)
1930 SAB=ERGB
1940 ELSE
1950 PUT 253
1960 SAB=ARTELL(SP)-US
1970 ENDIF :IF SAB=%0 THEN 2240
1980 POSITION 30,%1:? SAB;" "
1990 SABO=SAB*MANOV(SP)+RAND(6)*(SAB>%0)
2000 WACH=WW*KAVALL(SP)+RAND(6)*(WW>%0)
2010 FOR U=%0 TO 20
2020 SOUND %0,RAND(100)+50,%2,5
2030 PAUSE %1
2040 SOUND :PAUSE RAND(6)+%2
2050 NEXT U
2060 IF SABO>WACH
2070 FOR U=%0 TO 30
2080 COLOR 14+RAND(%3):PLOT X,Y
2090 PAUSE 4:COLOR 26:PLOT X,Y
2100 NEXT U
2110 US=US+SAB
2120 INFANT(SPI)=INFANT(SPI)-WW
2130 IF TITEL$(%3,%3)="r":LG=LG+1000+RAND(500):GG=GG+800+RAND(200):KG=KG+2000+RAND(1000):MARKT(SPI)=MARKT(SPI)-%1:ENDIF
2140 IF TITEL$(%3,%3)="h":LG=LG+2000 AND (800):GG=GG+1600+RAND(400):KG=KG+4000+RAND(2000):MUHL(SPI)=MUHL(SPI)-%1:ENDIF
2150 IF TITEL$(%3,%3)="n":LG=LG+500+RAND(200):GG=GG+5600+RAND(900):KG=KG+1000+RAND(500):HH(SPI)=HH(SPI)-%1:ENDIF
2160 ELSE
2170 COLOR 21:PLOT X+%1,Y
2180 ARTELL(SP)=ARTELL(SP)-SAB
2190 ENDIF
2200 MOVE DPEEK(88)+200,ADR(SCR$)+XX*40,760
2210 POSITION 26,%2:? LG
2220 POSITION 6,%3:? GG
2230 POSITION 26,%3:? KG
2240 IF XX<31 OR Y<22 THEN GO# SABO
2250 POSITION 30,%1:? SAB;" "
2260 GELD(SP)=GELD(SP)+GG
2270 LKORN(SP)=LKORN(SP)+KG
2280 LAND(SP)=LAND(SP)+INT(LG/%2)
2290 ACKER(SP)=ACKER(SP)+INT(LG/%2)
2300 GELD(SPI)=GELD(SPI)-GG
2310 LKORN(SPI)=LKORN(SPI)-KG
2320 IF LKORN(SPI)<%0 THEN LKORN(SPI)=%0
2330 LAND(SPI)=LAND(SPI)-INT(LG/%2)
2340 IF LAND(SPI)<%0 THEN LAND(SPI)=%0
2350 ACKER(SPI)=ACKER(SPI)-INT(LG/%2)
2360 IF ACKER(SPI)<%0 THEN ACKER(SPI)=%0
2370 IF HH(SPI)<%0 THEN HH(SPI)=%0
2380 IF MUHL(SPI)<%0 THEN MUHL(SPI)=%0
2390 IF MARKT(SPI)<%0 THEN MARKT(SPI)=%0
2400 EXEC SAVE
2410 POKE 1790,33:POKE 559,%0
2420 TRAP 2421:RUN "D8:KAISER4.TUR"
2421 RUN "D1:KAISER4.TUR"
2430 ------------------------------
2440 PROC UJZER
2450 ZAEHL=%0:ERGB=%0
2460 FOR U=%1 TO STEL
2470 POSITION XPOS+U-%1,YPOS
2480 ? ZAEHL
2490 NEXT U
2500 STE=STEL
2510 REPEAT
2520 ST=STICK(%0)
2530 IF ST<15
2540 SOUND %0,40+10*(ST=13 OR ST=14),10,6
2550 PAUSE 0.7:SOUND
2560 ENDIF
2570 IF ST=11 AND STE>%1 THEN STE=STE-%1
2580 IF ST=7 AND STE<STEL THEN KG=STE+%1
2590 IF ST=11 OR ST=7 THEN LOCATE XPOS-%1+STE,YPOS,ZAEHL:ZAEHL=ZAEHL-48
2600 POSITION XPOS-%1+STE,YPOS+%1
2610 ? "ESC^\":PAUSE %1
2620 POSITION XPOS-%1+STE,YPOS+%1
2630 ? " "
2640 IF ST=14 THEN ZAEHL=ZAEHL+%1
2650 IF ST=13 THEN ZAEHL=ZAEHL-%1
2660 IF ZAEHL<%0 THEN ZAEHL=9
2670 IF ZAEHL>9 THEN ZAEHL=%0
2680 POSITION XPOS-%1+STE,YPOS
2690 ? ZAEHL
2700 UNTIL STRIG(%0)=%0
2710 FOR U=%1 TO STEL
2720 LOCATE XPOS-%1+U,YPOS,ZAEHL
2730 ERGB=ERGB+((ZAEHL-48)*10^(STEL-U))
2740 NEXT U:SOUND %1,20,12,6:SOUND %0,70,10,6:PAUSE %3:SOUND
2750 ENDPROC
2760 ------------------------------
2770 PROC LOAD
2780 OPEN #%1,4,%0,"D1:DATEN.DAT"
2790 %GET #%1,SP
2800 FOR U=%1 TO 6
2810 %GET #%1,A:%GET #%1,B:ACKER(U)=A:LEUTE(U)=B
2820 %GET #%1,A:%GET #%1,B:KRIEG(U)=A:LKORN(U)=B
2830 %GET #%1,A:%GET #%1,B:LAND(U)=A:KPREIS(U)=B
2840 %GET #%1,A:%GET #%1,B:MUHL(U)=A:MARKT(U)=B
2850 %GET #%1,A:%GET #%1,B:GELD(U)=A:LPREIS(U)=B
2860 %GET #%1,A:%GET #%1,B:APREIS(U)=A:VERALAND(U)=B
2870 %GET #%1,A:%GET #%1,B:PUNKTE(U)=A:VERBLAND(U)=B
2880 %GET #%1,A:%GET #%1,B:JUSTIZ(U)=A:MWST(U)=B
2890 %GET #%1,A:%GET #%1,B:EIN(U)=A:ZOLL(U)=B
2900 %GET #%1,A:%GET #%1,B:LET DOM(U)=A:BURG(U)=B
2910 %GET #%1,A:%GET #%1,B:INFANT(U)=A:ARTELL(U)=B
2920 %GET #%1,A:%GET #%1,B:KAVALL(U)=A:MANOV(U)=B
2930 %GET #%1,A:%GET #%1,B:TOD(U)=A:TITEL(U)=B
2940 %GET #%1,A:%GET #%1,B:HH(U)=A:BD(U)=B
2950 %GET #%1,A:VERKORN(U)=A:%GET #%1,B:ENTHOB(U)=B:NEXT U:%GET #%1,MG1
2960 %GET #%1,MG2:%GET #%1,JAHR:%GET #%1,U:HH(%0)=U
2970 CLOSE #%1
2980 ENDPROC
2990 ------------------------------
3000 PROC SAVE
3010 CLOSE #%1:OPEN #%1,8,%0,"D8:DATEN.DAT"
3020 %PUT #%1,SP
3030 FOR U=%1 TO 6
3040 %PUT #%1,ACKER(U):%PUT #%1,LEUTE(U)
3050 %PUT #%1,KRIEG(U):%PUT #%1,LKORN(U)
3060 %PUT #%1,LAND(U):%PUT #%1,KPREIS(U)
3070 %PUT #%1,MUHL(U):%PUT #%1,MARKT(U)
3080 %PUT #%1,GELD(U):%PUT #%1,LPREIS(U)
3090 %PUT #%1,APREIS(U):%PUT #%1,VERALAND(U)
3100 %PUT #%1,PUNKTE(U):%PUT #%1,VERBLAND(U)
3110 %PUT #%1,JUSTIZ(U):%PUT #%1,MWST(U)
3120 %PUT #%1,EIN(U):%PUT #%1,ZOLL(U)
3130 %PUT #%1,DOM(U):%PUT #%1,BURG(U)
3140 %PUT #%1,INFANT(U):%PUT #%1,ARTELL(U)
3150 %PUT #%1,KAVALL(U):%PUT #%1,MANOV(U)
3160 %PUT #%1,TOD(U):%PUT #%1,TITEL(U)
3170 %PUT #%1,HH(U):%PUT #%1,BD(U)
3180 %PUT #%1,VERKORN(U):%PUT #%1,ENTHOB(U):NEXT U:%PUT #%1,MG1
3190 %PUT #%1,MG2:%PUT #%1,JAHR:%PUT #%1,HH(%0)
3200 CLOSE #%1
3210 ENDPROC
3220 ------------------------------
3230 PROC WER
3240 AN=VAL(NAME$(%1,%1)):CLS
3250 POKE 710,113:POKE 709,15
3260 POSITION 5,6:? "Wen wollen Sie angreifen?"
3270 FOR U=%1 TO AN
3280 IF U=SP:POSITION 7,7+U*%2:? " Niemand "
3290 ELSE
3300 POSITION 7,7+U*%2:? CHR$(U-%1);NAME$(U*20,U*20+10)
3310 ENDIF
3320 NEXT U
3330 W=%0
3340 REPEAT
3350 POSITION %2,9+W*%2:? "ESC^_":PAUSE %2
3360 ST=STICK(%0)
3370 IF ST<15 THEN SOUND %0,30+W,10,10:PAUSE %2:SOUND
3380 IF ST<>15 THEN POSITION %2,9+W*%2:? " "
3390 IF ST=14 THEN W=W-%1:IF W<%0 THEN W=%0
3400 IF ST=13 THEN W=W+%1:IF W>AN-%1 THEN W=AN-%1
3410 UNTIL STRIG(%0)=%0
3420 SOUND %0,100,10,10:PAUSE 5:SOUND
3430 ENDPROC
3440 ------------------------------
Kaiser II (c) 1989-2020 PhöniX SoftCrew
Carsten Strotmann / Björn Israel
Atari und PC Software
https://kaiser2.strotmann.de