100 ' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 110 ' * * 120 ' * Program "信長の野望・Version 5.0(漢字)" * 130 ' * * 140 ' * Copyright(C) 応用流体第二研究室 in 1989/02/21 * 160 ' * * 180 ' * Arranged By Kunio Yamazaki (1987-1988) * 190 ' * * 200 ' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 210 : 220 SCREEN 6,1,0:CLS:SCREEN ,0,1:CLS:GOSUB 10070:' 地図描画ルーチンコール 230 : 1000 STOP ON:RANDOMIZE TIME/5 1010 ON KEY(1) GOSUB 11710 1020 ON KEY(2) GOSUB 11720 1030 ON KEY(3) GOSUB 11730 1040 ON KEY(4) GOSUB 11740 1050 ON KEY(5) GOSUB 11750:KEY(5) ON 1060 ON KEY(6) GOSUB 11790 1070 ON ERROR GOTO 11070 1080 : 1090 ' ***** 定義ルーチン ***** 1100 DEFINT E-Z,余,不,攻,敵,台,疫,震,上,大 1110 I=0:J=0:K=0:LC=0:PFL=0:QFL=0:PFP=0:OW=0:NF=100 1120 DIM KC(15,16),TC(5,16),隣国(16,8),PN(16),BAK(16),ZO(16),DED(16),DS(16),NC(16),相場(3),NE(3),RM(6),不足(16),余剰(16),上限(16),大雪(16),TN$(16),KN$(16),GP$(13),HX(8,9),HW(2,4,1),WD(16),HD(2,1),JHI(2,3) 1130 DEF FNRELEM(I)=RND*(10+EF*14*(1-I))+94 1140 DEF FNFCT(I,J)=TC(I,KC(4,J)) 1150 DEF FNN$=KRIGHT$(TN$(KC(4,LC)),KLEN(TN$(KC(4,LC)),2))+"様、" 1160 DEF FNIQ!(I)=1+FNFCT(1,I)/(RND*10+100+EF*2) 1170 DEF FNDM!(I)=(KC(6,I)+KC(7,I)+KC(8,I)+KC(9,I))/(KC(15,I)*2) 1180 DEF FNGUN!(I)=FNDM!(I)*SGN(KC(6,I)/FNIQ!(I))*SGN(KC(1,I)*FNIQ!(I)/(KC(6,I)+1)) 1190 DEF FNKOK(I)=(KC(14,I)+KC(5,I)+KC(10,I)+KC(12,I))/4 1200 SCREEN 6,0,0:WINDOW (0,0)-(640,200) 1210 FOR PP=0 TO 16:DED(PP)=1:BAK(PP)=0:NEXT 1220 GOSUB 9140 1230 INTERVAL 230+RND*300:ON INTERVAL GOSUB *地震:INTERVAL ON 1240 : 1250 ' ***** メインルーチン ***** 1260 GOSUB 1910:GOSUB 8940:IF PFL=0 OR QFL=1 THEN 10410 1270 FOR IM=0 TO 16:LC=NC(IM):COLOR 7:NE(3)=INT(RND*(5-PN(KC(4,LC))*2)) 1280 KC(6,LC)=KC(6,LC)*SGN((ABS(KC(6,LC))+KC(6,LC))\2) 1290 FOR PP=7 TO 9:KC(PP,LC)=KC(PP,LC)*SGN(KC(6,LC)):NEXT 1300 LOCATE 2,24:PRINT USING "他国戦略 その ## (## 国) ";IM+1,LC+1; 1310 IF BAK(KC(4,LC))=0 THEN 1320 1312 COLOR 3:LOCATE 0,21:PRINT "〜";FNN$;"只今はお休み中にございます。 (あと";BAK(KC(4,LC));"季節数)";TAB(79):IA=LC:GOSUB 7170:GOTO 1330 1320 IF PN(KC(4,LC)) AND ZO(LC)=0 THEN KEY(5) STOP:GOSUB 1430:GOTO 1350 1330 IF DED(KC(4,LC))=0 THEN 1360 1340 KEY(5) STOP:GOSUB 2820:GOSUB 9080 1350 KEY(5) ON:GOSUB 8940:IF PFL=0 OR QFL=1 THEN IM=20 ELSE GOSUB 2690 1360 NEXT 1370 IF IM>20 THEN 10410 1380 DEATH=1 1390 FOR PP=0 TO 16:DEATH=DEATH AND (DED(KC(4,PP))=0 OR PN(KC(4,PP))):NEXT 1400 IF DEATH=1 THEN GOSUB 10330:GOTO 10400 1410 GOTO 1260 1420 : 1430 COLOR@(KC(2,LC),KC(3,LC))-(KC(2,LC)+6,KC(3,LC)),5,2:GOSUB 5580 1440 COLOR@(KC(2,LC),KC(3,LC))-(KC(2,LC)+6,KC(3,LC)),5,0:RETURN 1450 : 1460 ' ***** 戦争ルーチン ***** 1470 X0=HW(0,I,PA):Y0=HW(1,I,PA) 1480 COLOR 7:PRINT "方向 (テンキー/Return>0)?";:GOSUB 9110 1490 PRINT:K=INSTR("1237890",IA$):IF K=0 THEN 1470 ELSE IF K=7 THEN FC=1:RETURN 1500 ON K GOSUB 1510,1520,1530,1540,1550,1560:IF X<0 OR X>8 OR Y<0 OR Y>8 THEN GOSUB 1570:GOTO 1470 ELSE RETURN 1510 X=X0-1:Y=Y0+1:RETURN 1520 X=X0:Y=Y0+2:RETURN 1530 X=X0+1:Y=Y0+1:RETURN 1540 X=X0-1:Y=Y0-1:RETURN 1550 X=X0:Y=Y0-2:RETURN 1560 X=X0+1:Y=Y0-1:RETURN 1570 COLOR 2:SWAP HD(0,PA),LC:PRINT FNN$;"そちらには、";KMID$("進行攻撃",IA+IA-1,2);"できません!!":BEEP:SWAP HD(0,PA),LC:RETURN 1580 YC=CSRLIN:X0=HW(0,I,PA):Y0=HW(1,I,PA):HP=1+6*X0:HC=1+2*Y0:LOCATE HP,HC:PRINT SPC(6):LOCATE HP,HC+1:PRINT SPC(6):LOCATE 0,YC:RETURN 1590 YC=CSRLIN:HP=1+6*X:HC=1+2*Y:COLOR 3+PA:LOCATE HP,HC:PRINT LEFT$(TN$(HD(1,PA)),6):COLOR 5:LOCATE HP+1,HC+1:PRINT USING"#####";HW(2,I,PA) 1600 COLOR 6:LOCATE HP,HC+1:IF I>0 THEN PRINT USING"#";I+1 ELSE IF HD(2,PA)=2 THEN PRINT "@" ELSE PRINT "*" 1610 HX(X,Y)=HX(X,Y)+(I+1)*10^(PA+1):HX(X0,Y0)=HX(X0,Y0) MOD 10:HW(0,I,PA)=X:HW(1,I,PA)=Y:LOCATE 0,YC:RETURN 1620 K=(HX(X,Y) MOD 10^(3-PA))\10^(2-PA)-1:RETURN 1630 YC=CSRLIN:A1=0:A2=0:FOR J=1TO 4:A1=A1+TC(J,HD(1,PA))/3:A2=A2+TC(J,HD(1,1-PA))/3:NEXT:FOR J=7 TO 9:A1=A1+KC(J,HD(0,PA))*1.2:A2=A2+KC(J,HD(0,1-PA))*1.2:NEXT 1640 A1=A1/720:A2=A2/720 1650 A1=(A1+RM(HX(X0,Y0) MOD 10)/10)*HW(2,I,PA)*(.4-(RND*.2))*(HD(2,PA)+1)/2 1660 A2=(A2+RM(HX(X,Y) MOD 10)/10)*HW(2,K,1-PA)*(.4-(RND*.2))*(HD(2,1-PA)+1)/2 1670 AA=(A1-A2)/9 1680 IF ABS(AA)<1 THEN LOCATE 0,YC:COLOR 4:PRINT "互角です":GOSUB 2670:GOSUB 10050:AA=0:RETURN 1690 IF AA>0 THEN HW(2,K,1-PA)=HW(2,K,1-PA)-AA:IF HW(2,K,1-PA)<=0 THEN HW(2,K,1-PA)=0:HX(X,Y)=HX(X,Y) MOD 10:SWAP I,K:PA=1-PA:GOSUB 1580:SWAP I,K:PA=1-PA:RETURN ELSE LOCATE 2+6*X,2+2*Y:COLOR 5:PRINT USING"#####";HW(2,K,1-PA):LOCATE 0,YC:RETURN 1700 HW(2,I,PA)=HW(2,I,PA)+AA:IF HW(2,I,PA)<=0 THEN HW(2,I,PA)=0:HX(X0,Y0)=HX(X0,Y0) MOD 10:GOSUB 1580:RETURN ELSE LOCATE 2+6*X0,2+2*Y0:COLOR 5:PRINT USING"#####";HW(2,I,PA):LOCATE 0,YC:RETURN 1710 YC=CSRLIN:GOSUB 10050:L=0:FOR J=0 TO 4:L=L+HW(2,J,OF):NEXT:L=L/10 1720 IF OF=0 THEN SF=L:LOCATE 67,15:COLOR 2:PRINT USING"#####";SF:IF HW(2,0,0)=0 THEN RM(3)=2:GOTO 1750 ELSE 1750 1730 KC(6,LD)=L:IF KC(6,LD)<1 THEN FOR PP=6 TO 9:KC(PP,LD)=0:NEXT 1740 LOCATE 74,15:COLOR 2:PRINT USING"#####";KC(6,LD);:IF HW(2,0,1)=0 THEN RM(3)=1 1750 LOCATE 0,YC:RETURN 1760 LOCATE 0,21:CLS 1:COLOR 4:PRINT "敵の兵糧は底をつきましたぞ!":BEEP:GOSUB 10050:RETURN 1770 LOCATE 0,21:CLS 1:COLOR 2:PRINT FNN$;"兵糧が、もうありません。惨敗です。":GOSUB 2660:GOSUB 10050:RETURN 1780 LOCATE 67,14:PRINT USING "#####";D1:LOCATE 74,14:PRINT USING "#####";D2; 1790 KC(15,LD)=HD(2,PA):KC(0,LD)=KC(0,LD)+SF:KC(1,LD)=D1+D2:TC(4,LD)=TC(4,LD)+1 1800 FOR PP=7 TO 9 1810 IA1!=KC(PP,LD)*KC(6,LD) 1820 IA2!=KC(PP,HD(0,PA))*SF 1830 KC(PP,LD)=(IA1!+IA2!)/(KC(6,LD)+SF):NEXT 1840 KC(6,LD)=KC(6,LD)+SF 1850 RETURN 1860 IF HD(2,1-PA)=1 THEN RETURN 1870 FOR I=0 TO 16:IF KC(4,I)=HD(1,1-PA) THEN SWAP I,LD:SWAP HD(0,PA),LC:GOSUB 2710:SWAP I,LD:SWAP HD(0,PA),LC 1880 NEXT:RETURN 1890 : 1900 ' ***** 各季節前処理ルーチン ***** 1910 NE(1)=(NE(1)+1) MOD 4:LOCATE 3,3:GOSUB 2790:FOR A=4 TO 5:LOCATE 2,A:PRINT SPC(5):NEXT:CLS 1 1920 FOR I=0 TO 16:IF KC(15,I)=1 THEN 1940 1930 BAK(KC(4,I))=BAK(KC(4,I))-SGN(BAK(KC(4,I))):TC(2,I)=TC(2,I)+SGN(BAK(I)) 1940 NEXT 1950 FOR I=0 TO 16:不忠=0 1960 IF DED(KC(4,I))=0 THEN 2000 1970 IF KC(11,I)>KC(12,I)*2 OR KC(5,I)>KC(11,I)*2 THEN IF FNFCT(5,I)KC(7,I)*2 THEN IF FNFCT(5,I)0 THEN 2030 2040 NEXT J:NC(K)=I-1:NEXT I:NE(2)=0 2050 INTERVAL STOP:ON NE(1)+1 GOSUB 2080,2350,2220,2580 2060 IF NE(2)=0 THEN IF RND<.2 THEN GOSUB 2480 2070 INTERVAL ON:RETURN 2080 NE(0)=NE(0)+1 2090 LOCATE 1,1:COLOR 6:PRINT USING "####年";NE(0):IF NE(0)=1560 THEN 2160 2100 IF NE(0)=1600-MASA THEN GOSUB *伊達 2110 FOR I=0 TO 16 2120 IF DED(KC(4,LC))=0 THEN 2150 2130 TC(0,I)=TC(0,I)+1:TC(2,I)=TC(2,I)-1 2140 TC(5,I)=TC(5,I)+(1-INT(RND*5))+(RND*5+1) 2150 NEXT 2160 AA=INT(RND*20+1):AA1=台風*15:AA2=疫病*160 2170 相場(1)=(AA+AA1)/10+RND*2 :こめ=10000!:KMOKU!=こめ*相場(1) :'米相場 2180 相場(2)=(AA+AA2)/11+RND*12:武器=10000!:BMOKU!=武器*相場(2) :'武器相場 2190 相場(3)=(AA+AA2+25)/16+RND*12:忍者=10000!:NMOKU!=忍者*相場(3) :'忍者相場 2200 相場(0)=(AA+AA2)/10+RND*12:兵士=10000!:HMOKU!=兵士*相場(0) :'兵士相場 2210 台風=0:疫病=0:GOSUB 9080:RETURN 2220 FOR I=0 TO 16:GOSUB 5340 2230 IF DED(KC(4,I))=0 THEN 2340 2240 IF KC(0,I)+DK-KC(6,I)>上限(I) THEN KC(0,I)=上限(I):GOTO 2260 2250 KC(0,I)=KC(0,I)+DK-KC(6,I) 2260 IF KC(0,I)<0 THEN KC(6,I)=KC(6,I)+KC(0,I):KC(0,I)=0 2270 KC(6,LC)=KC(6,LC)*SGN((KC(6,LC)+ABS(KC(6,LC)))/2) 2280 IF KC(1,I)+DM-KC(6,I)>上限(I) THEN KC(1,I)=上限(I):GOTO 2300 2290 KC(1,I)=KC(1,I)+DM-KC(6,I) 2300 IF KC(1,I)<0 THEN KC(6,I)=KC(6,I)+KC(1,I):KC(1,I)=0 2310 KC(6,LC)=KC(6,LC)*SGN((KC(6,LC)+ABS(KC(6,LC)))/2) 2320 IF KC(6,I)<1 THEN FOR PP=6 TO 9:KC(PP,I)=0:NEXT 2330 IF TN$(KC(4,I))=" 政宗" THEN KC(0,I)=上限(I):KC(1,I)=上限(I) 2340 NEXT:RETURN 2350 IF RND>=.4 THEN 2470 2360 NE(2)=1:台風=1 2370 COLOR 6:PRINT "殿、今年の夏は台風でござりまする。";TAB(79):BEEP 2380 LOCATE 2,5:PRINT "台風":LOCATE 0,22 2390 FOR I=0 TO 16 2400 IF KC(10,I)>RND*88+123-100*(1-PN(KC(4,I))) AND RND>.6 THEN 2460 2410 GOSUB 2640:TC(4,KC(4,I))=FNFCT(4,I)*.9 2420 KC(5,I)=KC(5,I)*(KC(10,I)/200) 2430 IF KC(5,I)<1 THEN KC(5,I)=0:FOR PP=11 TO 12:KC(PP,I)=0:NEXT 2440 KC(12,I)=KC(12,I)-3-RND*3:IF KC(12,I)<0 THEN KC(12,I)=0 2450 KC(10,I)=KC(10,I)*.96:IF KC(10,I)<0 THEN KC(10,I)=0 2460 NEXT 2470 RETURN 2480 NE(2)=2:疫病=1:COLOR 6:PRINT "殿、疫病が流行っておりますぞ";TAB(79):BEEP:LOCATE 2,5:PRINT "疫病":LOCATE 0,22 2490 FOR I=0 TO 16 2500 IF KC(10,I)>RND*45+114-100*(1-PN(KC(4,I))) AND RND>.6 THEN 2550 2510 GOSUB 2640:KC(6,I)=KC(6,I)*(.97-PN(KC(4,I))*.08) 2520 IF KC(6,I)<1 THEN FOR PP=6 TO 9:KC(PP,I)=0:NEXT 2530 KC(5,I)=KC(5,I)*(KC(10,I)/200) 2532 IF KC(5,I)<1 THEN KC(5,I)=0:FOR PP=10 TO 11:KC(PP,I)=0:NEXT 2540 IF KC(15,I)<>2 THEN 2550 2542 TC(2,KC(4,I))=FNFCT(2,I)-2:IF FNFCT(2,I)<0 THEN TC(2,KC(4,I))=0 2550 IF FNFCT(0,I)<=FNFCT(2,I) THEN 2570 2560 IF FNFCT(0,I)-FNFCT(2,I)>RND*10 THEN GOSUB 10740 2570 NEXT:RETURN 2580 IF RND>.35 THEN 2630 2590 BEEP:LOCATE 2,5:COLOR 6:PRINT "大雪":LOCATE 0,22 2600 NE(2)=3:FC=1:FOR I=0 TO 16:IF 大雪(I) AND PN(KC(4,I)) THEN FC=0:GOTO 2620 2610 NEXT:IF FC=1 THEN 2630 2620 COLOR 3:PRINT "殿、今年は大雪にござりまする!";TAB(79) 2630 RETURN 2640 IF PN(KC(4,I))=1 THEN LC=I:COLOR 2:PRINT FNN$;KN$(LC);"領に被害が ・・・":GOSUB 2660:GOSUB 10050 2650 RETURN 2660 FOR PS=0 TO 30*U:BEEP 1:I$=I$:BEEP 0:NEXT:RETURN 2670 BEEP 1:FOR PS=0 TO 30*U:NEXT:BEEP 0:RETURN 2680 FOR PS=0 TO 3:BEEP 1:I$=I$:BEEP 0:FOR BP=0 TO 3*U:NEXT:NEXT:RETURN 2690 DS(LC)=KC(6,LC):IF KC(1,LC)>DS(LC) THEN DS(LC)=DS(LC)^2 ELSE DS(LC)=DS(LC)*KC(1,LC) 2700 DS(LC)=DS(LC)*KC(15,LC):RETURN 2710 LOCATE KC(2,LD),KC(3,LD):PRINT SPC(7):LOCATE KC(2,LD),KC(3,LD) 2720 IF PN(KC(4,LC))=1 THEN COLOR 5 ELSE COLOR 6 2730 PRINT TN$(KC(4,LC)) 2740 ZO(LD)=0:FOR PP=1 TO 4 STEP 3:TC(PP,KC(4,LC))=FNFCT(PP,LC)+1:TC(PP,KC(4,LD))=FNFCT(PP,LD)*.93:NEXT 2750 KC(4,LD)=KC(4,LC):FOR PP=7 TO 9:KC(PP,LD)=(KC(PP,LD)+KC(PP,LC))\2:NEXT 2760 RETURN 2770 YC=CSRLIN:FOR J=0 TO 3:HP=1+6*X0:HC=1+2*Y0:L=PA:GOSUB 2780:HP=1+6*X:HC=1+2*Y:L=1-PA:GOSUB 2780:NEXT:LOCATE 0,YC:RETURN 2780 LOCATE HP,HC:PRINT SPC(6):GOSUB 2680:LOCATE HP,HC:COLOR 3+L:PRINT LEFT$(TN$(HD(1,L)),6):GOSUB 2680:RETURN 2790 COLOR 7:PRINT KMID$("春夏秋冬",NE(1)+1,1):RETURN 2800 : 2810 ' ***** コンピュータ思考ルーチン ***** 2820 IF PN(KC(4,LC))<>1 THEN GOSUB *戦CHK:IF FC=1 THEN GOSUB *戦争 2830 FC=0:GOSUB *治水CHK:IF FC THEN GOSUB *治水 2840 FC=0:GOSUB *兵CHK:IF FC THEN GOSUB *雇用 2850 ON NE(1)+1 GOSUB *春, *夏, *秋, *冬 2860 ' おまけ思考ルーチン 2870 IF PN(KC(4,LC))=1 THEN 2900 2880 SF=1:FOR PP=1 TO 隣国(LC,0):SF=SF AND KC(4,LC)=KC(4,隣国(LC,PP)):NEXT 2890 ZO(LC)=SF-(RND*100>(45-PN(KC(4,LC))*10)) 2900 ON ZO(LC) GOSUB *商業, *軍事, *生産 2910 不足(LC)=0:GOSUB *兵CHK:IF FC=1 THEN 不足(LC)=不足(LC)+IA 2920 GOSUB *忍CHK 2930 IF FC THEN GOSUB *忍者:TC(2,KC(4,LC))=FNFCT(2,LC)+INT(RND*1.05) 2940 RETURN:' メインルーチンへ帰る 2950 : 2960 ' ***** コンピュータ思考サブルーチン ***** 2970 *戦CHK:IF NE(2)=3 AND 大雪(LC) THEN FC=0:GOTO 3300 2980 IF KC(10,LC)<153+RND*(FNFCT(1,LC)/2) THEN FC=0:GOTO 3300 2990 SF=32760:LD=-1:HD(2,0)=KC(15,LC):FC=1 3000 FOR PP=1 TO 隣国(LC,0):IF KC(4,隣国(LC,PP))=KC(4,LC) OR (大雪(隣国(LC,PP)) AND NE(2)=3) THEN 3020 3010 IF SF>FNGUN!(隣国(LC,PP)) THEN SF=FNGUN!(隣国(LC,PP)):LD=隣国(LC,PP) 3020 NEXT 3030 IF LD=-1 THEN FC=0:GOTO 3300 3040 攻兵=KC(6,LC) 3050 HD(2,1)=KC(15,LD) 3060 ' ** if HD(2,1)=2 then (相手国が本国ならば) 3070 IF HD(2,1)<>2 THEN 3150 3080 SF=0:SH=1:FOR PP=1 TO 隣国(LD,0):SC=KC(4,隣国(LD,PP)) 3090 IF SC=KC(4,LD) THEN SF=SF+1 ELSE SH=SH AND (SC=KC(4,LC)) 3100 NEXT 3110 IF SH THEN 攻兵=攻兵-1 ELSE 攻兵=攻兵*.74 3120 IF SF=0 THEN 攻兵=攻兵+攻兵*.2 3130 GOTO 3190 3140 ' ** else 3150 SH=1:FOR PP=1 TO 隣国(LD,0):SH=SH AND KC(4,隣国(LD,PP))=KC(4,LC):NEXT 3160 IF SH THEN 攻兵=攻兵-1:GOTO 3180 3170 攻兵=攻兵*.65 3180 ' ** endif 3190 攻兵=攻兵 AND ((攻兵<=KC(0,LC)) OR (KC(0,LC)>0) AND (攻兵>KC(0,LC))) 3200 SF=攻兵:SH=SF*(1+(HD(2,0)-2.2)*.2):HD(2,1)=KC(15,LD) 3210 OVER=0 3220 敵兵=KC(6,LD)*((FNGUN!(LD)+1)/(FNGUN!(LC)+1)) 3230 IF OVER=1 THEN 敵兵=32760: '敵兵がオーバー・フローした時は整数の最大値 3240 IF 敵兵>=攻兵*(FNFCT(3,LC)/(FNFCT(1,LC)+EF*(PN(KC(4,LD))+3))) OR (攻兵<1) OR (KC(6,LC)-SF<2) THEN FC=0:GOTO 3300 3250 HD(2,0)=1:IF KC(15,LC)=1 THEN 3270 3260 IF (FNKOK(LC)(KC(6,LC)-SF)*2 THEN 3290 ELSE FC=0 3280 IF FNFCT(3,LC)=DUMY2 THEN 3440 3430 SF2=隣国(LC,PP):DUMY2=KC(6,隣国(LC,PP)) 3440 DUMY=0 3450 FOR PP1=1 TO 隣国(隣国(LC,PP),0) 3460 DUMY=DUMY+(ABS(KC(4,LC)<>隣国(隣国(LC,PP),PP1))) 3470 NEXT 3480 IF DUMY=0 OR LD>DUMY THEN 3500 3490 SF=隣国(LC,PP):LD=DUMY 3500 NEXT 3510 IF SF<>-1 THEN IA=DUMY-1:GOTO 3540 3520 IF SF2<>-1 THEN SF=SF2:IA=DUMY2-1:ELSE 3560 3530 IF KC(6,SF)+IA>上限(SF) THEN IA=上限(SF)-KC(6,SF) 3540 FLAG=1:GOSUB *移動:GOTO 3680 3550 : 3560 FC=1:IA=0:LD=0:DUMY=0:XX=0 3570 FOR PP=1 TO 隣国(LC,0) 3580 DUMY=DUMY-KC(6,PP)*(KC(4,隣国(LC,PP))<>KC(4,LC)) 3590 XX=XX+(KC(4,隣国(LC,PP))=KC(4,LC)) 3600 NEXT 3610 DUMY=DUMY/(隣国(LC,0)+XX) 3620 PP=FNFCT(3,LC)/FNFCT(1,LC):LD=DUMY*PP-KC(6,LC) 3630 IF (LD<0) OR (NE(1)=1) THEN FC=0:GOTO 3690 3640 IF (LD*相場(0))FNIQ!(LC) THEN IA=KC(0,LC)\相場(0) 3660 IF IA<1 THEN FC=0 3670 不足(LC)=LD-IA 3680 : 3690 IF (KC(15,LC)=1) OR (PN(KC(4,LC))=1) THEN 3820 3700 DUMY=10:LD=-1:SF3=0 3710 FOR PP=1 TO 隣国(LC,0) 3720 IF KC(4,LC)<>KC(4,隣国(LC,PP)) THEN SF3=SF3+1:GOTO 3790 3730 SF=0:SF2=0 3740 FOR PP1=1 TO 隣国(隣国(LC,PP),0) 3750 SF=SF+ABS(SF3 AND (KC(4,LC)<>KC(4,隣国(隣国(LC,PP),PP1)))) 3760 SF2=SF2 OR (KC(4,LC)=KC(4,隣国(隣国(LC,PP),PP1))) 3770 NEXT 3780 IF (DUMY>SF) AND SF2 THEN DUMY=SF:LD=隣国(LC,PP) 3790 NEXT 3800 IF (DUMY<=SF3) OR (LD=-1) THEN 3820 3810 KC(15,LD)=2:KC(15,LC)=1 3820 RETURN 3830 : 3840 *忍CHK:FC=1 3850 IF KC(0,LC)+400<上限(LC) THEN FC=0:GOTO 3900 3860 SF=INT(KC(0,LC)*(RND+.5)/2)/相場(3) 3870 IF (KC(0,LC)-SF*相場(3)SF THEN FC=0:GOTO 3960 3950 IF KC(0,LC)<(200-KC(10,LC))*3 THEN IA=KC(0,LC) ELSE IA=(200-KC(10,LC))*3 3960 RETURN 3970 : 3980 *春:IF NE(3)>0 THEN GOSUB *商人 3990 DUMY=162+FNIQ!(LC)*18-KC(10,LC) 4000 IF DUMY<0 THEN 4040 4010 IF DUMY*3+KC(6,LC)*(FNIQ!(LC)/10+RND/2)>KC(0,LC) THEN 4030 4020 IA=DUMY*3:GOTO *治水 4030 IA=KC(0,LC):GOTO *治水 4040 RETURN 4050 : 4060 *夏:SWAP I,LC:GOSUB 5340:SWAP I,LC 4070 余剰=KC(6,LC)-(KC(0,LC)+DK):IF 余剰<1 THEN 余剰=0 4080 DUMY=KC(6,LC)-(KC(1,LC)+DM):IF DUMY>0 THEN 余剰=余剰+DUMY 4090 IF 余剰<1 THEN 余剰=0:GOTO 4230 4100 LD=-1 4110 FOR PP=1 TO 隣国(LC,0) 4120 IF KC(4,隣国(LC,PP))<>KC(4,LC) THEN LD=隣国(LC,PP):GOTO 4180 4130 IF 不足(隣国(LC,PP))=0 THEN 4180 4140 IF 不足(隣国(LC,PP))>余剰 THEN DUMY=余剰 ELSE DUMY=不足(隣国(LC,PP)) 4150 KC(6,LC)=KC(6,LC)-DUMY:余剰=余剰-DUMY 4160 KC(6,隣国(LC,PP))=KC(6,隣国(LC,PP))+DUMY 4170 不足(隣国(LC,PP))=不足(隣国(LC,PP))-DUMY 4180 NEXT 4190 IF (LD=-1) OR (余剰100 THEN GOSUB *町拡張 4230 RETURN 4240 : 4250 *秋:IF NE(3)=0 THEN 4280 4260 GOSUB *AW商人 4270 IF KC(15,LC)=2 THEN 4490 4280 LD=1 4290 FOR PP=1 TO 隣国(LC,0) 4300 LD=LD AND (KC(4,LC)=KC(4,PP)) 4310 NEXT 4320 IF LD=0 THEN 4490 4330 FC=0:LD=-1 4340 FOR PP=0 TO 16 4350 IF KC(4,LC)<>KC(4,PP) THEN 4420 4360 DUMY=0 4370 FOR PP1=1 TO 隣国(PP,0) 4380 DUMY=DUMY+ABS(KC(4,LC)<>KC(4,隣国(PP,PP1))) 4390 NEXT 4400 IF (DUMY=0) OR (FC>DUMY) THEN 4420 4410 FC=DUMY:LD=PP 4420 NEXT 4430 IF LD=-1 THEN 4490 4440 FOR PP=0 TO 1 4450 IA=KC(PP,LC) 4460 IF KC(PP,LD)+IA>上限(LD) THEN IA=上限(LD)-KC(PP,LD) 4470 KC(PP,LD)=KC(PP,LD)+IA:KC(PP,LC)=KC(PP,LC)-IA 4480 NEXT 4490 RETURN 4500 : 4510 *冬:IF NE(3)=0 THEN 4530 4520 GOSUB *AW商人 4530 IF KC(6,LC)>1 THEN GOSUB *訓練:TC(2,KC(4,LC))=FNFCT(2,LC)+1 4540 RETURN 4550 : 4560 *軍事:IF 余剰<0 THEN 4730 4570 IF KC(6,LC)>=1 THEN 4620 4580 FOR PP=6 TO 9 4590 KC(PP,LC)=0 4600 NEXT 4610 GOTO 4680 4620 IF KC(6,LC)(上限(LC)-10) THEN *忍CHK 4640 SF=1:SH=1 4650 DUMY=(KC(0,LC)-KC(6,LC)*2-FNIQ!(LC)*3)*13/(KC(6,LC)+1):IF DUMY<1 THEN 4680 4660 IA=KC(0,LC)-KC(6,LC)*2-FNIQ!(LC)*3 4670 IF (IA>=1) AND (KC(6,LC)>1) THEN GOSUB *授与:GOTO 4730 4680 IF NE(3)>0 THEN ON NE(1)+1 GOSUB *商人 ,*商人 ,*AW商人 ,*AW商人 4690 IF FC=1 THEN 4730 4700 IF ((FNFCT(3,LC)/FNFCT(1,LC))<1) AND (相場(0)>(10/FNFCT(1,LC))) THEN 4730 4710 IF KC(7,LC)1) AND (RND>.5) THEN *訓練:TC(2,KC(4,LC))=FNFCT(2,LC)+1 4740 RETURN 4750 : 4760 *商業:IF 余剰<0 THEN 4880 4770 IF KC(12,LC)*2.51 THEN GOSUB *町拡張:GOTO 4880 4820 SF=2:SH=1 4830 IF (KC(0,LC)-KC(6,LC)-FNIQ!(LC)*3)*13/(KC(6,LC)+1)<1 THEN 4860 4840 IA=KC(0,LC)-KC(6,LC)-FNIQ!(LC)*3 4850 IF (IA>1) AND (KC(5,LC)>1) THEN GOSUB *授与 4860 IF NE(3)>0 THEN ON NE(1)+1 GOSUB *商人 ,*商人 ,*AW商人 ,*AW商人 4870 IF FC=1 THEN 4880 4880 RETURN 4890 : 4900 *生産:IF 余剰<0 THEN 4880 4910 IF NE(3)>0 THEN ON NE(1)+1 GOSUB *商人 ,*商人 ,*AW商人 ,*AW商人 4920 IF FC=1 THEN 5020 4930 IF KC(5,LC)>KC(6,LC) THEN 4960 4940 DUMY=KC(0,LC)-KC(6,LC)-FNIQ!(LC)*2 4950 IF DUMY>=1 THEN IA=DUMY:GOTO *開墾 4960 SF=2:SH=1 4970 DUMY=(KC(0,LC)-KC(6,LC)-FNIQ!(LC)*3)*13/(KC(6,LC)+1) 4980 IF DUMY<1 THEN 5020 4990 IA=KC(0,LC)-KC(6,LC)-FNIQ!(LC)*3 5000 IF NOT(IA>1 AND KC(5,LC)>1) THEN GOTO 5020 5010 IF RND*100<65 THEN GOSUB *授与 ELSE GOSUB *町拡張 5020 RETURN 5030 : 5040 *商人:FC=0 5050 IF 相場(1)<2.3-FNIQ!(LC)/10 THEN 5090 5060 IA=KC(0,LC)-(KC(6,LC)+FNIQ!(LC)*5) 5070 IF (IA*相場(1)+KC(0,LC))>上限(LC) THEN IA=(上限(LC)-KC(0,LC))/相場(1) 5080 IF IA>=1 AND (KC(1,LC)-IA>KC(6,LC)) THEN *米売 5090 IF 相場(2)>FNFCT(3,LC)/FNFCT(1,LC)*2.6 THEN 5130 5100 IA=(KC(0,LC)-KC(6,LC)*RND*.7)/相場(2) 5110 IF IA+KC(9,LC)>上限(LC) THEN IA=上限(LC)-KC(9,LC) 5120 IF IA>=1 AND KC(6,LC)>1 THEN *武器 5130 IF 相場(1)>1.4-FNIQ!(LC)/10 THEN 5170 5140 IA=(KC(0,LC)-KC(6,LC))/相場(1) 5150 IF IA*相場(1)+KC(0,LC)>上限(LC) THEN IA=(上限(LC)-KC(0,LC))/相場(1) 5160 IF IA>=1 THEN *米買 5170 FC=1:RETURN 5180 : 5190 *AW商人:FC=0 5200 IF 相場(1)>(FNIQ!(LC)*.6)*RND+台風 THEN 5240 5210 IA=(KC(0,LC)-KC(6,LC))/相場(1) 5220 IF (IA+KC(1,LC))>上限(LC) THEN IA=上限(LC)-KC(1,LC) 5230 IF IA>=1 THEN *米買 5240 IF 相場(1)<(2+FNIQ!(LC)/10) THEN 5280 5250 IA=KC(0,LC)-(KC(6,LC)+FNIQ!(LC)*6) 5260 IF (IA*相場(1)+KC(0,LC))>上限(LC) THEN IA=(上限(LC)-KC(0,LC))/相場(1) 5270 IF IA>=1 AND (KC(1,LC)-IA>KC(6,LC)) THEN *米売 5280 IF 相場(2)>FNFCT(3,LC)/FNFCT(1,LC)*2.6 THEN 5320 5290 IA=(KC(0,LC)-KC(6,LC)*RND*.7)/相場(2) 5300 IF (IA+KC(9,LC))>上限(LC) THEN IA=上限(LC)-KC(9,LC) 5310 IF IA>=1 AND KC(6,LC)>1 THEN *武器 5320 FC=1:RETURN 5330 : 5340 DM=(KC(5,I)*5+KC(10,I)+(KC(11,I)+KC(12,I))/(2+PN(KC(4,I))))/14 5350 DM=DM*SGN(KC(5,I)*KC(10,I)) 5360 IF DM>=上限(I) THEN DM=上限(I) 5370 DK=(KC(13,I)+KC(14,I))*(.6-RND*.2) 5380 IF DK>=上限(I) THEN DK=上限(I) 5390 RETURN 5400 : 5410 *戦争:HD(0,0)=LC:HD(0,1)=LD:HD(1,0)=KC(4,LC):HD(1,1)=KC(4,LD):KC(15,LC)=KC(15,LC)-HD(2,0)+1 5420 KC(6,LC)=KC(6,LC)-SF:IF KC(6,LC)<1 THEN KC(6,LC)=0 5430 KC(0,LC)=KC(0,LC)-SF:IF KC(0,LC)<1 THEN KC(0,LC)=0 5440 KC(1,LC)=KC(1,LC)-SH:IF KC(1,LC)<1 THEN KC(1,LC)=0 5450 IF PN(KC(4,LD))=0 THEN FC=0:GOTO 5470:ELSE FC=1 5460 COLOR 2:SWAP LC,LD:PRINT:PRINT FNN$;KN$(LD)"の"TN$(KC(4,LD))"が攻め込んで参りました。";TAB(79):BEEP:SWAP LC,LD:U2=5:GOSUB 10050:U2=0:GOSUB 7840:RETURN 5470 INTERVAL STOP:COLOR 6:FOR I=0 TO 10:LOCATE KC(2,LC),KC(3,LC):PRINT SPC(7):LOCATE KC(2,LD),KC(3,LD):PRINT SPC(7):GOSUB 2680 5480 LOCATE KC(2,LC),KC(3,LC):COLOR 6-PN(KC(4,LC)):PRINT TN$(KC(4,LC)):LOCATE KC(2,LD),KC(3,LD):COLOR 6-PN(KC(4,LD)):PRINT TN$(KC(4,LD)):GOSUB 2680:NEXT 5490 K=SF:SF=SF*RND:D1=SH*RND:D2=KC(1,LD)-KC(6,LD)*RND:IF D2<0 THEN D2=0 5500 LOCATE 32,24:PRINT USING"[ & & :####### × & & :###### ]";TN$(KC(4,LC)),FNDM!(LC),TN$(KC(4,LD)),FNDM!(LD);:PRINT TAB(79); 5510 INTERVAL ON:IF K*SH>DS(LD) THEN PA=1 ELSE PA=0 5520 IF HD(2,PA)=1 THEN 5560 5530 SWAP LC,LD:GOSUB 5720:SWAP LC,LD:K=-1:FOR I=0 TO 16:IF WD(I)=1 THEN IF KC(4,I)=HD(1,PA)THEN K=I:I=20 5540 NEXT:IF K=-1 THEN 5560 5550 HD(2,PA)=1:KC(15,K)=2 5560 IF PA=1 THEN GOSUB 8860 ELSE GOSUB 8910 5570 RETURN 5580 IA=LC:GOSUB 7170:CLS 1 5590 FC=0 5600 LOCATE 2,23,1:COLOR 7:GOSUB 2670:PRINT"命令をどうぞ :";:GOSUB 5660 5610 IF IA<0 OR IA>14 THEN 5600 5620 LOCATE 0,21,0:CLS 1:IF IA=0 THEN GOSUB 7780:GOTO 5590 5630 ON IA GOSUB 5860,6040,7360,6200,6310,7240,6400,6500,6750,7050,7090,7560,7680,7730 5640 IF FC=1 THEN CLS 1:COLOR 2:PRINT FNN$"もう一度";KN$(LC);"領に命令を";TAB(79):GOSUB 2670:GOTO 5590 5650 IA=LC:GOSUB 5840:GOSUB 7170:RETURN 5660 INTERVAL STOP:LOCATE POS(0),CSRLIN,1 5670 I$=INKEY$:IF I$<>"" THEN 5660 ELSE IA$="":L=0:PRINT SPC(5);STRING$(5,29); 5680 I$=INPUT$(1) 5690 J=ASC(I$) 5700 IF J>=48 AND J<=57 AND L<5 THEN PRINT I$;:IA$=IA$+I$:L=L+1:ELSE IF(J=8 OR J=29)AND L>0 THEN PRINT CHR$(29);" ";CHR$(29);:L=L-1:IA$=LEFT$(IA$,L) ELSE IF J=13 THEN IA=VAL(IA$):PRINT:LOCATE POS(0),CSRLIN,0:INTERVAL ON:IF IA=0 THEN FC=1:RETURN ELSE RETURN 5710 GOTO 5680 5720 FOR L=0 TO 16:WD(L)=0:NEXT 5730 FOR L=1 TO 隣国(LC,0):WD(隣国(LC,L))=1:NEXT:RETURN 5740 COLOR 4:PRINT A$;" ? ";:GOSUB 5660:COLOR 7:IF FC=1 AND IA=0 THEN IA=-1:RETURN ELSE IF IA<1 OR IA>17 THEN GOSUB 2670:LOCATE 0,CSRLIN-1:GOTO 5740 5750 IA=IA-1:IF WD(IA)<>2 THEN GOSUB 2670:LOCATE 0,CSRLIN-1:GOTO 5740 5760 RETURN 5770 FOR I=0 TO 16:IF WD(I)=2 THEN COLOR 7-PN(KC(4,I))*SGN(ZO(I))*2-(KC(15,I)-1)*5,,,4*(KC(15,I)-1):PRINT I+1; 5780 NEXT:COLOR ,,,0:PRINT:RETURN 5790 COLOR 6:LOCATE POS(0),CSRLIN,1:PRINT A$" ("X"まで) ? ";:GOSUB 5660:COLOR 7:IF FC=1 THEN RETURN 5800 IF IA<0 OR IA>X THEN GOSUB 2670:LOCATE 0,CSRLIN-1,0:GOTO 5790 5810 LOCATE POS(0),CSRLIN,0:RETURN 5820 IF KC(0,LC)=0 THEN PRINT FNN$;"金が御在ませんぞ":BEEP:FC=1:GOSUB 10030 5830 RETURN 5840 LINE (64,0)-(79,19)," ",,BF:RETURN 5850 PRINT FNN$;"完了いたしました。":GOSUB 10030:RETURN 5860 COLOR 3:PRINT "移動":IF KC(15,LC)=1 AND KC(6,LC)=0 THEN FC=1:GOTO 5890 5870 GOSUB 5720:FC=1:FOR I=0 TO 16:IF (KC(4,I)=KC(4,LC)) AND NOT(大雪(I)=1 AND NE(2)=3) THEN WD(I)=WD(I)+1:IF WD(I)=2 THEN FC=0 5880 NEXT:IF 大雪(LC)=1 AND NE(2)=3 THEN FC=1 5890 IF FC=1 THEN COLOR 2:PRINT FNN$;"移動できません":BEEP:GOSUB 10030:RETURN 5900 PRINT "移動可能国 :";:GOSUB 5770:A$="何処へ移動いたしますか" 5910 GOSUB 5740:IF FC=1 THEN RETURN 5920 SF=IA:IF KC(6,LC)<1 THEN FC=1:GOTO 6010 5930 A$="兵を何千人、移動いたしますか":X=KC(6,LC):GOSUB 5790 5940 IF FC=1 THEN RETURN 5950 *移動:FOR PP=7 TO 9 5960 IA1!=KC(PP,SF)*KC(6,SF):IA2!=KC(PP,LC)*IA 5970 KC(PP,SF)=(IA1!+IA2!)/(KC(6,SF)+IA):NEXT 5980 KC(6,LC)=KC(6,LC)-IA:KC(6,SF)=KC(6,SF)+IA 5990 IF KC(6,LC)<1 THEN FOR PP=6 TO 9:KC(PP,LC)=0:NEXT 6000 IF FLAG=1 THEN FLAG=0:RETURN 6010 IF KC(15,LC)=2 THEN PRINT FNN$;"も、移動なさいますか (y/n) ? ";ELSE 6030 6020 GOSUB 9110:IF IA$="y" THEN PRINT IA$:FC=0:KC(15,LC)=1:KC(15,SF)=2:ELSE IF IA$="n" THEN PRINT IA$ ELSE GOSUB 2670:LOCATE 30,24:GOTO 6020 6030 GOSUB 5850:RETURN 6040 COLOR 2:PRINT "戦争":FC=1 6050 IF KC(6,LC)<1 OR KC(0,LC)<1 OR KC(1,LC)<1 THEN 6090 6060 GOSUB 5720:FOR I=0 TO 16 6070 IF (KC(4,I)<>KC(4,LC)) AND NOT(大雪(I)=1 AND NE(2)=3) THEN WD(I)=WD(I)+1:IF WD(I)=2 THEN FC=0 6080 NEXT:IF 大雪(LC)=1 AND NE(2)=3 THEN FC=1 6090 IF FC=1 THEN PRINT FNN$;"攻撃できません":BEEP:GOSUB 10030:RETURN 6100 PRINT "攻撃可能国 :";:GOSUB 5770:A$="何処を攻撃いたしますか":GOSUB 5740:IF FC=1 THEN RETURN 6110 LD=IA:IF KC(6,LC)"n" THEN LOCATE 0,24:GOSUB 2670:GOTO 6180 6190 HD(0,0)=LC:HD(0,1)=LD:HD(1,0)=KC(4,LC):HD(1,1)=KC(4,LD):HD(2,1)=KC(15,LD):GOSUB 7840:RETURN 6200 PRINT "金/米の輸送":IF KC(0,LC)=0 AND KC(1,LC)=0 THEN COLOR 2:PRINT "金も米もありません":BEEP:FC=1:GOSUB 10030:RETURN 6210 FOR I=0 TO 16:WD(I)=0:NEXT:FC=1:FOR I=0 TO 16:IF I=LC THEN 6220 ELSE IF KC(4,I)=KC(4,LC) THEN WD(I)=2:FC=0 6220 NEXT:IF FC=1 THEN COLOR 2:PRINT "輸送出来ません":BEEP:GOSUB 10030:RETURN 6230 PRINT "輸送可能国 :";:GOSUB 5770:A$="何処へ輸送いたしますか":GOSUB 5740:IF FC=1 THEN RETURN ELSE SF=IA 6240 IF KC(0,SF)>=上限(SF) AND KC(1,SF)>=上限(SF) THEN PRINT "その国はもう金倉も米倉もいっぱいです!":BEEP:GOSUB 10030:FC=1:RETURN 6250 B$="はいくら運びますか":IF KC(0,LC)>0 AND KC(0,SF)<上限(SF) THEN A$="金"+B$:IF KC(0,SF)+KC(0,LC)>=上限(SF) THEN X=上限(SF)-KC(0,SF) ELSE X=KC(0,LC) ELSE SH=0:GOTO 6270 6260 GOSUB 5790:IF IA$="" THEN RETURN ELSE SH=IA 6270 IF KC(1,LC)>0 AND KC(1,SF)<上限(SF) THEN A$="米"+B$:IF KC(1,SF)+KC(1,LC)>上限(SF) THEN X=上限(SF)-KC(1,SF) ELSE X=KC(1,LC) ELSE IA=0:GOTO 6290 6280 GOSUB 5790:IF IA$="" THEN RETURN 6290 GOSUB 5850 6300 KC(0,LC)=KC(0,LC)-SH:KC(0,SF)=KC(0,SF)+SH:KC(1,LC)=KC(1,LC)-IA:KC(1,SF)=KC(1,SF)+IA:FC=0:RETURN 6310 COLOR 5:PRINT "治水工事":IF KC(10,LC)>=200 THEN PRINT "これ以上、治水工事はできません":FC=1:GOSUB 10030:RETURN 6320 GOSUB 5820:IF FC=1 THEN RETURN 6330 A$="費用はいくらかけますか":IF KC(0,LC)<(200-KC(10,LC))*3 THEN X=KC(0,LC) ELSE X=(200-KC(10,LC))*3 6340 GOSUB 5790:IF FC=1 THEN RETURN 6350 PRINT FNN$"治水度が"INT(IA/3)"上がりました。備えあれば憂いなしでござりますな。":GOSUB 10030 6360 *治水:KC(0,LC)=KC(0,LC)-IA:IF KC(0,LC)<1 THEN KC(0,LC)=0 6370 KC(10,LC)=KC(10,LC)+INT(IA/3) 6380 IF KC(10,LC)>200 THEN KC(10,LC)=200 6390 RETURN 6400 PRINT "開墾":IF KC(5,LC)>=上限(LC) THEN PRINT "これ以上、開墾はできません":FC=1:GOSUB 10030:RETURN 6410 GOSUB 5820:IF FC=1 THEN RETURN 6420 A$="費用はいくらかけますか":IF KC(0,LC)<(上限(LC)-KC(5,LC))*2 THEN X=KC(0,LC) ELSE X=(上限(LC)-KC(5,LC))*3 6430 GOSUB 5790:IF FC=1 THEN RETURN 6440 PRINT FNN$;"米生産量が";KC(5,LC)+IA\2;"に、上がりました":GOSUB 10030 6450 *開墾:FOR PP=10 TO 12 6460 IA1!=KC(PP,LC)*KC(5,LC) 6470 KC(PP,LC)=(IA1!+(IA\2)*(70+(1-PN(LC))*30))/(KC(5,LC)+(IA\2)):NEXT 6480 KC(0,LC)=KC(0,LC)-IA:IF KC(0,LC)<1 THEN KC(0,LC)=0 6490 KC(5,LC)=KC(5,LC)+IA\2:RETURN 6500 COLOR 2:PRINT "兵士/忍者の雇用":COLOR 4:PRINT "兵士・忍者のどちらを雇いますか":COLOR 7:PRINT " 1:兵士 2:忍者 :";:GOSUB 5660 6510 IF IA<0 OR IA>2 THEN 6500 6520 IF FC=1 THEN RETURN 6530 ON IA GOTO 6540,6590 6540 IF KC(0,LC)<相場(0) THEN PRINT FNN$;"金が足りません":FC=1:GOSUB 10030:RETURN 6550 IF KC(6,LC)>=上限(LC) THEN PRINT "これ以上、兵を雇うことはできません":FC=1:GOSUB 10030:RETURN 6560 A$="兵を何千人、雇用いたしますか":IF KC(0,LC)上限(LC) THEN X=上限(LC) ELSE X=KC(0,LC)/相場(3) 6610 GOSUB 5790:IF FC=1 THEN RETURN ELSE SF=IA 6620 FOR I=0 TO 16:WD(I)=0:NEXT:FC=1:FOR I=0 TO 16:IF I=LC THEN 6630 ELSE IF KC(4,I)<>KC(4,LC) THEN WD(I)=2:FC=0 6630 NEXT 6640 PRINT "派遣可能国 :";:GOSUB 5770:A$="何処へ派遣しますか":GOSUB 5740:IF FC=1 THEN RETURN ELSE LD=IA 6650 CLS 1:PRINT "工作内容 :":PRINT " 1:暗殺 2:兵離反 3:堤防破壊 4:火付け 5:吹聴 :";:GOSUB 5660:IF FC=1 THEN RETURN 6660 IF IA<0 OR IA>5 THEN 6650 6670 GOSUB *忍者:FC=0:RETURN 6680 *雇用:IF IA<1 THEN RETURN 6690 FOR PP=7 TO 9 6700 IA1!=KC(PP,LC)*KC(6,LC) 6710 KC(PP,LC)=(IA1!+IA*(60+(1-PN(LC))*30))/(KC(6,LC)+IA):NEXT 6720 KC(0,LC)=KC(0,LC)-IA*相場(0):IF KC(0,LC)<1 THEN KC(0,LC)=0 6730 DUMM!=兵士-IA:IF DUMM!0 THEN 6780 6770 IF RND>.2 THEN COLOR 2:PRINT FNN$"堺の商人がおりません!":BEEP:FC=1:GOSUB 10030:RETURN 6780 COLOR 7:PRINT " 1:米を買う 2:米を売る 3:武器を買う : ";:GOSUB 5660:IF FC=1 THEN RETURN ELSE IF IA<=0 OR IA>3 THEN 6780 6790 ON IA GOSUB 6810,6890,6970:RETURN 6800 COLOR 5:PRINT "まいどぉ、どうも!":GOSUB 10030:RETURN 6810 COLOR 4:PRINT "米を買う":IF KC(0,LC)<相場(1) THEN COLOR 2:PRINT "金が足りません!":FC=1:GOSUB 10030:RETURN 6820 IF KC(1,LC)>=上限(LC) THEN COLOR 2:PRINT "これ以上、米は買えません":FC=1:GOSUB 10030:RETURN 6830 A$="いかほど、お買いになられるので ...?":IF KC(0,LC)<(上限(LC)-KC(1,LC))*相場(1) THEN X=KC(0,LC)/相場(1) ELSE X=上限(LC)-KC(1,LC) 6840 GOSUB 5790:IF FC=1 THEN RETURN 6850 GOSUB 6800 6860 *米買:KC(0,LC)=INT(KC(0,LC)-IA*相場(1)):IF KC(0,LC)<1 THEN KC(0,LC)=0 6870 DUMM!=こめ-IA:IF DUMM!=上限(LC) THEN COLOR 2:PRINT "これ以上、米は売れません":FC=1:GOSUB 10030:RETURN 6910 A$="何千石、売っていただけるのでしょうか":IF KC(1,LC)=上限(LC) THEN COLOR 2:PRINT "これ以上、武器は買えません":FC=1:GOSUB 10030:RETURN 6990 A$="いかほど、お買いになられるので ...?":IF KC(0,LC)=上限(LC) THEN PRINT "もう、兵士訓練はできません":FC=1:GOSUB 10030:RETURN 7070 COLOR 7:PRINT "えいヤッ えいヤァー !":GOSUB 10030:PRINT FNN$"兵士の訓練度は、"KC(8,LC)+INT(10*(NE(1)+1)/2.3)"に、上がりました。" 7080 *訓練 KC(8,LC)=KC(8,LC)+INT(10*(NE(1)+1)/2.3):TC(4,KC(4,LC))=FNFCT(4,LC)+1:TC(3,KC(4,LC))=FNFCT(3,LC)+PN(KC(4,LC)):RETURN 7090 SA=0:SAF=17 7100 COLOR 7:PRINT "他国の様子" 7110 COLOR 7:PRINT "どの国を御覧になりますか ? ";:GOSUB 5660:IF FC=1 THEN IA=LC:GOTO 7170 ELSE IF IA<1 OR IA>17 THEN 7090 ELSE IA=IA-1 7120 IF PN(KC(4,IA))=1 OR INCHIKI$="i" THEN 7170 ELSE IF KC(0,LC)<(10+EF*1.6) THEN PRINT "金が御在ません!":GOSUB 10030:GOTO 7230 7130 KC(0,LC)=KC(0,LC)-(10+EF*1.6):IF KC(0,LC)<1 THEN KC(0,LC)=0 7140 IF SAF=IA THEN 7160 7150 SA=0:IF TC(1,IA)>TC(1,LC) THEN SA=RND*2+1 7160 IF SA>0 THEN COLOR 2:PRINT "様子がわかりませんでした":PRINT:BEEP:GOSUB 10030:GOSUB 10030:CLS 1:SA=SA-1:SAF=IA:GOTO 7100 7170 COLOR 4:LOCATE 65,0:PRINT KN$(IA);TAB(79);:COLOR 1,,,4:LOCATE 68,1:PRINT TN$(KC(4,IA)):COLOR 2:IF KC(15,IA)=2 THEN A$="@" ELSE A$="*" 7180 LOCATE 65,1:PRINT A$:LOCATE 77,1:PRINT A$;:COLOR 1,,,0:COLOR =(3,7):LOCATE 65,2:PRINT USING "----->>>#####";上限(IA); 7190 COLOR 3:FOR I=0 TO 5:LOCATE 73,I+3:PRINT USING"#####";FNFCT(I,IA):NEXT:COLOR 6:FOR I=0 TO 1:LOCATE 73,I+9:PRINT USING"#####";KC(I,IA):NEXT 7200 LOCATE 73,11:PRINT USING"#####";KC(13,IA)+KC(14,IA) 7210 LOCATE 73,12:COLOR 5:PRINT USING"#####";KC(5,IA):FOR I=10 TO 12:LOCATE 73,I+3:PRINT USING"#####";KC(I,IA):NEXT 7220 COLOR 2:FOR I=6 TO 9:LOCATE 73,I+10:PRINT USING"#####";KC(I,IA):NEXT 7230 FC=1:RETURN 7240 COLOR 5:PRINT "町を造る":GOSUB 5820:IF FC=1 THEN RETURN 7250 IF KC(0,LC)<2 THEN PRINT "町を造る金はありません":FC=1:RETURN 7260 IF KC(13,LC)+KC(14,LC)>=上限(LC) THEN PRINT "これ以上町は拡張出来ません":FC=1:RETURN 7270 PRINT "町の価値は現在、"KC(13,LC)+KC(14,LC)"です。" 7280 A$="いくら投資いたしますか":IF KC(0,LC)<(上限(LC)-KC(14,LC))*1.7 THEN X=KC(0,LC) ELSE X=INT((上限(LC)-KC(14,LC))*1.7) 7290 GOSUB 5790:IF FC=1 THEN RETURN 7300 IA1!=KC(13,LC)+KC(14,LC)+INT(IA/1.7) 7310 IF IA1!>上限(LC) THEN PP=上限(LC) ELSE PP=INT(IA1!) 7320 PRINT "町の価値は";PP;"となりました。":GOSUB 10030 7330 *町拡張:KC(0,LC)=KC(0,LC)-IA:KC(12,LC)=KC(12,LC)*.92:IF KC(0,LC)<1 THEN KC(0,LC)=0 7340 IF (KC(13,LC)+KC(14,LC)+INT(IA/1.7))>上限(LC) THEN KC(14,LC)=上限(LC)-KC(13,LC):RETURN 7350 KC(14,LC)=KC(14,LC)+INT(IA/1.7):RETURN 7360 COLOR 4:PRINT "住民・兵士に、金/米を与える。":SF=0:A$="は、おりません":IF KC(6,LC)<1 THEN PRINT "兵士"A$:SF=2 7370 IF KC(5,LC)=0 THEN PRINT "住民"A$:IF SF=2 THEN FC=1:GOSUB 10030:RETURN ELSE SF=1 7380 IF SF=0 THEN A$="誰に 1:兵士 2:住民":X=2:GOSUB 5790:IF FC=1 THEN RETURN ELSE SF=IA 7390 A$="は、御在ません。":SH=0:IF KC(0,LC)=0 THEN PRINT "金"A$:SH=2 7400 IF KC(1,LC)=0 THEN PRINT "米"A$:IF SH=2 THEN FC=1:GOSUB 10030:RETURN ELSE SH=1 7410 IF SH=0 THEN A$="何を 1:金 2:米 ":X=2:GOSUB 5790:IF FC=1 THEN RETURN ELSE SH=IA 7420 A$="いくら与えますか":X=KC(SH-1,LC):GOSUB 5790:IF FC=1 THEN RETURN 7430 PRINT FNN$;:IF SF=1 THEN PRINT "ありがたく存じます。" ELSE PRINT "ありがとうゴゼェますだぁ" 7440 GOSUB 10030 7450 *授与:KC(SH-1,LC)=KC(SH-1,LC)-IA 7460 ON SF GOTO 7470,7500 7470 IF KC(7,LC)+IA*15/KC(6,LC)>上限(LC) THEN KC(7,LC)=上限(LC):GOTO 7550 7480 KC(7,LC)=KC(7,LC)+IA*10/KC(6,LC):GOTO 7550 7490 IF KC(7,LC)>上限(LC) THEN KC(7,LC)=上限(LC) 7500 FOR I=11 TO 12 7510 IF KC(I,LC)+IA*15/KC(5,LC)>上限(LC) THEN KC(I,LC)=上限(LC):GOTO 7540 7520 KC(I,LC)=KC(I,LC)+IA*10/KC(5,LC) 7530 IF KC(I,LC)>上限(LC) THEN KC(I,LC)=上限(LC) 7540 NEXT 7550 TC(4,KC(4,KC))=FNFCT(4,LC)+1:RETURN 7560 PRINT "属領命令":FOR I=0 TO 16:WD(I)=0:NEXT:FC=1:FOR I=0 TO 16:IF I=LC THEN 7570 ELSE IF KC(4,I)=KC(4,LC) THEN WD(I)=2:FC=0 7570 NEXT:IF FC=1 OR KC(15,LC)<>2 THEN COLOR 2:PRINT "属国はありません。":BEEP:GOSUB 10030:FC=1:RETURN 7580 PRINT "発令可能国:";:COLOR 7:GOSUB 5770:A$="何処へ命令を発令をいたしますか":GOSUB 5740:IF IA=0 AND FC=1 THEN RETURN 7590 COLOR 4:IF IA>=0 THEN 7610 7600 PRINT " すべての属国に等しく属領命令を下します。":GOTO 7620 7610 COLOR 7:PRINT " 現在、";KN$(IA);"領は";:COLOR ZO(IA)+1:PRINT KMID$("直轄地軍事国商業国生産国",(ZO(IA)+1)*3-2,3);:COLOR 7:PRINT "です" 7620 IA2=IA:FC=0:COLOR 7:PRINT " 1:直轄地 2:軍事国 3:商業国 4:生産国 :";:GOSUB 5660:IF FC=1 THEN RETURN: ELSE IF IA<1 OR IA>4 THEN 7620 7630 IF IA2>=0 THEN 7660 7640 FOR PP=0 TO 16:IF KC(4,PP)=KC(4,LC) THEN ZO(PP)=IA-1 7650 NEXT:GOTO 7670 7660 ZO(IA2)=IA-1 7670 FC=1:RETURN 7680 COLOR 2:PRINT "なにもしない":PRINT "なぁんにもしない。 なぁんにも。. . ." 7690 GOSUB 10030:IF KC(15,LC)=1 THEN 7710 7700 TC(2,KC(4,LC))=FNFCT(2,LC)+1:TC(1,KC(4,LC))=FNFCT(1,LC)-1 7710 IF FNFCT(1,LC)<1 THEN TC(1,KC(4,LC))=0 7720 RETURN 7730 IF KC(15,LC)=1 THEN FC=1:RETURN 7740 CLS 1:COLOR 4:PRINT "国主の休養" 7750 COLOR 7:INPUT "お休みになられる季節数は : ",IA$ 7760 IA=VAL(IA$):IF IA<1 THEN FC=1:RETURN 7770 BAK(KC(4,LC))=IA+1:RETURN 7780 COLOR =(3,0):PRINT "命令表の表示" 7790 PRINT "いま命令は";KN$(LC);"領に対してです。":GOSUB 5840 7800 RESTORE 12130:LOCATE 65,0:COLOR 2:PRINT "% 命令表 %":COLOR 7:FOR I=1 TO 14:READ A$:LOCATE 65,I:COLOR 6:PRINT A$:LOCATE 77,I:COLOR 3:PRINT USING"##";I:NEXT 7810 LOCATE 65,16:PRINT "命令表 return":LOCATE 66,17:COLOR 2:PRINT "[数字で入力]" 7820 LOCATE 65,19:PRINT "*Hit Any Key*" 7830 Z$=INPUT$(1):GOSUB 5840:IA=LC:GOSUB 7170:RETURN 7840 FOR I=0 TO 8:FOR J=0 TO 9:HX(I,J)=0:NEXT:NEXT:FOR I=0 TO 2:FOR J=0 TO 4:FOR K=0 TO 1:HW(I,J,K)=0:NEXT:NEXT:NEXT 7850 COLOR 7:WIDTH 80,25:CONSOLE 20,5:SCREEN 6,0,0:FOR PP=0 TO 7:COLOR =(PP,0):NEXT:WINDOW (0,0)-(640,200):COLOR 4:LOCATE 37-KLEN(KN$(LD),2),10:PRINT KN$(LD);" の 乱" 7860 COLOR 7:LOCATE 26,12:PRINT "[ ";TN$(HD(1,0));SPC(KLEN(TN$(HD(1,0)),1));" ] >> [ ";TN$(HD(1,1));SPC(KLEN(TN$(HD(1,1)),1))" ]"; 7870 FOR I=0 TO 50 STEP 12:FOR J=0 TO 16 STEP 4 7880 SYMBOL((I+1)*8,J*8),GP$(0),1,2,2:SYMBOL(I*8,(J+1)*8),GP$(1),1,2,2:SYMBOL(I*8,(J+2)*8),GP$(2),1,2,2:SYMBOL((I+1)*8,(J+3)*8),GP$(3),1,2,2:NEXT:NEXT:FOR I=1 TO 17 STEP 4:SYMBOL(448,I*8),CHR$(135),4,2,0:NEXT 7890 FOR I=2 TO 50 STEP 12:SYMBOL(I*8,0),GP$(4),1,2,2:NEXT:RESTORE 12140:FOR I=0 TO LD:READ A$:NEXT:K=1:FOR I=1 TO 4 7900 B$=MID$(A$,K,1):K=K+1:IF B$="*" THEN 7920 7910 X=VAL(B$):Y=VAL(MID$(A$,K,1)):K=K+1:HX(X,Y)=I:GOTO 7900 7920 NEXT 7930 FOR I=0 TO 1:X=VAL(MID$(A$,K,1)):Y=VAL(MID$(A$,K+1,1)):HX(X,Y)=I+5:HW(0,I,1)=X:HW(1,I,1)=Y:K=K+2:NEXT:IF KC(14,LD)>0 THEN X=VAL(MID$(A$,K,1)):Y=VAL(MID$(A$,K+1,1)):HX(X,Y)=6:HW(0,2,1)=X:HW(1,2,1)=Y 7940 FOR I=0 TO 8:FOR J=0 TO 8:X=I*6+2:Y=J*2:IF HX(I,J)=6 THEN SYMBOL(X*8,Y*8),GP$(5),1,2,6 ELSE IF HX(I,J)=5 THEN SYMBOL(X*8,Y*8),GP$(6),1,2,6 ELSE IF HX(I,J)=4 THEN SYMBOL(X*8,Y*8),GP$(7),1,2,4 7950 IF HX(I,J)=3 THEN SYMBOL(X*8,(Y+1)*8),GP$(8),1,2,4:SYMBOL(X*8,(Y+2)*8),GP$(9),1,2,4 ELSE IF HX(I,J)=2 THEN SYMBOL(X*8,(Y+1)*8),GP$(10),1,2,1+CO*5:SYMBOL(X*8,(Y+2)*8),GP$(11),1,2,1+CO*5 7960 IF HX(I,J)=1 THEN X=1+6*I:Y=2+2*J:SYMBOL(X*8,Y*8),GP$(12),1,2,2:SYMBOL(X*8,(Y-1)*8),GP$(13),1,2,2 7970 NEXT:NEXT:CLS 4:FOR PP=0 TO 7:COLOR =(PP,PP):NEXT:LOCATE 58,1:COLOR 3:PRINT KN$(LD):LOCATE 67,2:COLOR 6:PRINT USING"####年";NE(0) 7980 LOCATE 73,2:GOSUB 2790:HI=1:LOCATE 76,2:PRINT USING"##日";HI:LOCATE 71,4:PRINT ":" 7990 IF PN(KC(4,LC))=1 THEN IF PN(KC(4,LD))=1 THEN MC=3 ELSE MC=1 ELSE MC=2 8000 LOCATE 64,4:PRINT TN$(HD(1,0)):LOCATE 72,4:PRINT TN$(HD(1,1)):RESTORE 12120:COLOR 7:FOR I=7 TO 14:READ A$:LOCATE 58,I:PRINT A$:NEXT:FOR I=0 TO 4:READ A$:NEXT:FOR I=15 TO 18:READ A$:LOCATE 58,I:PRINT A$:NEXT 8010 COLOR 3:FOR K=0 TO 1:FOR I=0 TO 5:LOCATE 67+K*7,I+7:PRINT USING"#####";TC(I,HD(1,K)):NEXT:NEXT 8020 LOCATE 67,13:COLOR 6:PRINT USING"#####";SF:LOCATE 67,14:PRINT USING"#####";SH:FOR I=0 TO 1:LOCATE 74,13+I:PRINT USING"#####";KC(I,LD):NEXT 8030 COLOR 2:LOCATE 67,15:PRINT USING"#####";SF:FOR K=0 TO 1:FOR I=7-K TO 9:LOCATE 67+7*K,I+9:PRINT USING"#####";KC(I,HD(0,K)):NEXT:NEXT:D1=SH:D2=KC(1,LD) 8040 LOCATE 0,21:CLS 1:IF SF=0 THEN GOSUB 8790:GOTO 8870 ELSE X=SF:PA=0:GOSUB 8920 8050 IF KC(6,LD)<1 THEN GOSUB 8790:GOTO 8820 ELSE X=KC(6,LD):PA=1:GOSUB 8920 8060 IF KC(14,LD)=0 THEN K=2 ELSE K=3 8070 FOR PA=0 TO 1:FOR I=PA*K TO 4:IF HW(2,I,PA)=0 THEN 8130 8080 X=INT(RND*9):X2=X MOD 2 8090 Y=INT(RND*2)*4+X2:IF Y>8 THEN 8090 8100 IF HX(X,Y)<>0 AND HX(X,Y)<>4 THEN 8080 8110 HW(0,I,PA)=X:HW(1,I,PA)=Y:HX(X,Y)=HX(X,Y)+(I+1)*10^(PA+1):LOCATE X*6+1,Y*2+1:COLOR 3+PA:PRINT LEFT$(TN$(HD(1,PA)),6) 8120 X2=1+6*X:Y2=2+2*Y:LOCATE X2+1,Y2:COLOR 5:PRINT USING"#####";HW(2,I,PA):LOCATE X2,Y2:COLOR 6:IF I>0 THEN PRINT USING"#";I+1: ELSE IF HD(2,0)=2 THEN PRINT "@" ELSE PRINT "*" 8130 NEXT:NEXT 8140 FOR I=0 TO K-1:IF HW(2,I,1)=0 THEN 8170 8150 X=HW(0,I,1):Y=HW(1,I,1):X2=X*6+1:Y2=Y*2+1:LOCATE X2,Y2:COLOR 4:PRINT LEFT$(TN$(HD(1,1)),6):HX(X,Y)=HX(X,Y)+(I+1)*100 8160 LOCATE X2+1,Y2+1:COLOR 5:PRINT USING"#####";HW(2,I,1):LOCATE X2,Y2+1:COLOR 6:IF I>0 THEN PRINT USING"#";I+1: ELSE IF HD(2,1)=2 THEN PRINT "@" ELSE PRINT "*" 8170 NEXT 8180 RM(3)=0 8190 LOCATE 0,21:CLS 1:PA=1:ON MC GOSUB 8270,8510,8510 8200 ON RM(3)GOTO 8820,8870 8210 LOCATE 0,21:CLS 1:PA=0:ON MC GOSUB 8510,8270,8510 8220 ON RM(3)GOTO 8820,8870 8230 HI=HI+1:IF HI>30 THEN PRINT "長引きすぎた...":BEEP:GOSUB 10050:GOTO 8870 ELSE COLOR 6:LOCATE 76,2:PRINT USING"##";HI 8240 D1=D1-SF/30:IF D1<0 THEN IF MC=2 THEN GOSUB 1760:GOTO 8870 ELSE GOSUB 1770:GOTO 8870 8250 D2=D2-KC(6,LD)/30:IF D2<0 THEN IF MC=1 THEN GOSUB 1760:GOTO 8820 ELSE SWAP LC,LD:GOSUB 1770:SWAP LC,LD:GOTO 8820 8260 GOTO 8190 8270 COLOR 3:PRINT "敵軍の攻撃" 8280 FOR I=0 TO 4:IF HW(2,I,PA)=0 THEN 8460 ELSE X0=HW(0,I,PA):Y0=HW(1,I,PA):COLOR 6:PRINT "敵軍:第"I+1"部隊" 8290 K=-1:FOR J=0 TO 4:IF ABS(HW(0,J,1-PA)-X0)<=1 AND ABS(HW(1,J,1-PA)-Y0)<=2 THEN IF HW(2,J,1-PA)>0 THEN K=J:J=5 8300 NEXT:IF K>=0 THEN X=HW(0,K,1-PA):Y=HW(1,K,1-PA) ELSE 8340 8310 IF HD(2,PA)=2 AND (HW(2,0,PA)<5 AND HW(2,0,1-PA)*HD(2,1-PA)>20 OR HW(2,0,PA)<30 AND HW(2,K,1-PA)*HD(2,1-PA)>HW(2,0,PA)*5 AND I=0) THEN 8480 8320 GOSUB 2770:GOSUB 1630:IF AA=0 THEN 8460 8330 IF AA>0 THEN COLOR 2:PRINT "損害を被りました!":GOSUB 2660:OF=1-PA:GOSUB 1710:GOTO 8460: ELSE COLOR 1:PRINT "撃退しました!":BEEP:OF=PA:GOSUB 1710:GOTO 8460 8340 IF I=0 AND PA=1 THEN 8460 8350 X1=HW(0,0,1-PA):Y1=HW(1,0,1-PA):IF X0=X1 THEN X=X0:IF Y0-Y1>0 THEN Y=Y0-2 ELSE Y=Y0+2:GOTO 8390 8360 IF X0>X1 THEN X=X0-1 ELSE X=X0+1 8370 IF Y0>Y1 THEN Y=Y0-1 ELSE Y=Y0+1 8380 IF X<0 OR X>8 OR Y<0 OR Y>8 THEN 8400 8390 IF HX(X,Y)=0 OR (HX(X,Y)>=4 AND HX(X,Y)<=6) THEN GOSUB 1580:GOSUB 1590:GOTO 8460 8400 FOR J=0 TO 10 8410 IF RND*3<1 THEN X=X0:IF RND(1)<.5 THEN Y=Y0-2 ELSE Y=Y0+2:GOTO 8440 8420 IF RND<.5 THEN X=X0-1: ELSE X=X0+1 8430 IF RND<.5 THEN Y=Y0-1: ELSE Y=Y0+1 8440 IF X<0 OR X>8 OR Y<0 OR Y>8 THEN 8410 ELSE IF HX(X,Y)<>0 AND (HX(X,Y)<4 OR HX(X,Y)>6) THEN 8450 ELSE COLOR 4:PRINT "移動":GOSUB 1580:GOSUB 1590:J=11 8450 NEXT 8460 IF RM(3)>0 THEN I=5 8470 NEXT:RETURN 8480 SWAP LC,LD:GOSUB 5720:SWAP LC,LD:L=-1:FOR J=0 TO 16:IF WD(J)=1 THEN IF KC(4,HD(0,PA))=KC(4,J) THEN L=J:J=20 8490 NEXT:IF L=-1 THEN 8320 8500 HD(2,PA)=1:KC(15,L)=2:RM(3)=2-PA:COLOR 6:PRINT "敵軍の大将は逃げ出して行きました!":BEEP:GOSUB 10050:GOTO 8460 8510 FOR I=0 TO 4 8520 IF HW(2,I,PA)=0 THEN 8580 8530 LOCATE 0,21:CLS 1:FC=0:COLOR 5:SWAP LC,HD(1,PA):PRINT FNN$"第"; 8540 SWAP LC,HD(1,PA):COLOR 6:PRINT I+1;:COLOR 5:PRINT "部隊への御命令(1:移動 2:攻撃 3:降参 4:潜伏) ?";:GOSUB 9110 8550 IA=INSTR("1234",IA$):IF IA=0 THEN 8530 8560 PRINT:ON IA GOSUB 8600,8640,8700,8780 8570 IF FC=1 THEN GOSUB 2670:GOTO 8530 8580 IF RM(3)>0 THEN I=5 8590 NEXT:RETURN 8600 PRINT "我軍移動" 8610 GOSUB 1470:IF FC=1 THEN RETURN 8620 IF HX(X,Y)<>0 AND (HX(X,Y)<4 OR HX(X,Y)>6) THEN GOSUB 1570:GOTO 8610 8630 GOSUB 1580:GOSUB 1590:RETURN 8640 COLOR 2:PRINT "我軍の攻撃" 8650 GOSUB 1470:IF FC=1 THEN RETURN 8660 GOSUB 1620:IF K=-1 THEN GOSUB 1570:GOTO 8650 8670 GOSUB 2770:GOSUB 1630:IF AA=0 THEN 8690 8680 IF AA>0 THEN COLOR 6:PRINT "戦果あり!":BEEP:OF=1-PA:GOSUB 1710 ELSE IF AA<0 THEN COLOR 2:PRINT "反撃を食らった!":GOSUB 2660:OF=PA:GOSUB 1710:IF HW(2,I,PA)<=0 THEN PRINT "我軍、第"I+1"部隊は全滅しました!":GOSUB 2660 8690 RETURN 8700 COLOR 6:PRINT "我軍退散":PRINT "誠に退散するのですか(y) ? ";:BEEP:GOSUB 9110 8710 IF IA$<>"y" THEN FC=1:RETURN 8720 PRINT:IF HD(2,PA)=1 THEN RM(3)=2-PA:RETURN 8730 SWAP I,K:SWAP LC,LD:GOSUB 5720:SWAP LC,LD:FC=1:FOR J=0 TO 16:IF KC(4,J)=HD(1,PA) THEN WD(J)=WD(J)+1:IF WD(J)=2 THEN FC=0 8740 NEXT:IF FC=1 THEN COLOR 2:PRINT "退避国はありませぬ!":GOSUB 10030:GOTO 8770 8750 COLOR 1:PRINT "退避国 :";:GOSUB 5770:A$="どこへ退散いたしましょうや":GOSUB 5740:IF FC=1 THEN 8770 8760 KC(15,IA)=2:HD(2,PA)=1:RM(3)=2-PA 8770 SWAP I,K:RETURN 8780 COLOR 4:PRINT "潜伏":GOSUB 10050:RETURN 8790 LOCATE 0,20:IF PN(KC(4,LC))=1 THEN IF SF=0 THEN 8800 ELSE 8810 ELSE IF SF=0 THEN 8810 ELSE 8800 8800 COLOR 2:PRINT "兵力が御在ません。惨敗でござりまする。":GOSUB 2660:GOSUB 10050:RETURN 8810 COLOR 4:PRINT "敵軍の兵力は、尽きておりますぞ。":BEEP:GOSUB 10050:RETURN 8820 PA=1:GOSUB 8940:IF PFL=0 OR QFL=1 THEN RETURN 8830 CLS:CONSOLE 21,4,0:screen ,0,0:WINDOW(0,0)-(640,200) 8840 IF MC=2 THEN GOSUB 9010 ELSE GOSUB 9030 8850 GOSUB 9000 8860 PA=0:GOSUB 2710:GOSUB 1790:GOSUB 1860:RETURN 8870 PA=0:GOSUB 8940:IF PFL=0 OR QFL=1 THEN RETURN 8880 CLS:CONSOLE 21,4,0:screen ,0,0:WINDOW(0,0)-(640,200) 8890 IF MC=1 THEN GOSUB 9010 ELSE GOSUB 9030 8900 GOSUB 9000 8910 PA=1:GOSUB 1790:SWAP LC,LD:GOSUB 1860:SWAP LC,LD:RETURN 8920 J=X MOD 5:K=(X\5)*10:FOR I=0 TO J-1:HW(2,I,PA)=K+10:NEXT:FOR I=J TO 4:HW(2,I,PA)=K:NEXT:RETURN 8930 : 8940 PFL=0:QFL=1:FOR PP=0 TO 16:PFP=PN(KC(4,PP)):IF KC(15,PP)=2 AND PFP THEN ZO(PP)=0 8950 PFL=PFL OR PFP:QFL=QFL AND PFP:NEXT:PFL=ABS(PFL):QFL=ABS(QFL) 8960 IF QFL=0 THEN RETURN 8970 QFL=1:FOR PP=0 TO 16:IF KC(4,1)=KC(4,PP) THEN 8980 ELSE PP=20 8980 NEXT:IF PP<20 THEN QFL=1:OW=KC(4,1)+1: ELSE QFL=0 8990 RETURN 9000 CLS:GOSUB 9050:RETURN 9010 COLOR =(2,0):SYMBOL@(225,100),"戦に敗れたり",2,1,2:COLOR =(2,2) 9020 GOSUB 10050:RETURN 9030 COLOR =(1,0):SYMBOL@(185,100),"戦に勝ちましたぞ!",2,1,1:COLOR =(1,1) 9040 GOSUB 10050:RETURN 9050 CLS 4:WIDTH 80,25:CONSOLE 21,4,0:FOR I=0 TO 7:COLOR=(I,0):NEXT 9060 SCREEN ,1,1:GOSUB 10330:IF CHIZU=1 THEN RETURN 9070 LOCATE 1,1:COLOR 6:PRINT USING"####年";NE(0) 9080 LOCATE 3,3:GOSUB 2790 9090 LOCATE 0,20:COLOR 5:PRINT USING"==[相場] ーー米##.# ーー武器##.# ーー兵士##.# --忍者##.#== (Grade ##)";相場(1);相場(2);相場(0);相場(3);EF-3;:PRINT INCHIKI$; 9100 LOCATE 0,21:RETURN 9110 LOCATE POS(0),CSRLIN,1:IF INKEY$<>"" THEN 9110 9120 IA$=INPUT$(1):GOSUB 2670:LOCATE POS(0),CSRLIN,0:RETURN 9130 : 9140 COLOR 6,0 9150 CONSOLE 0,20,0 9160 WIDTH 80,20:SCREEN ,0,0:CLS:WINDOW (0,0)-(640,200) 9170 FOR PP=0 TO 7:COLOR =(PP,0):NEXT 9180 SYMBOL@(35,20),"信長の野望",7,6,5 9190 SYMBOL@(35,21),"信長の野望",7,6,5,,XOR 9200 SYMBOL@(33,21),"信長の野望",7,6,4,,XOR 9210 FOR PP=0 TO 7:COLOR =(PP,PP):NEXT 9220 COLOR 4:LOCATE 19,18:PRINT "By KOEI MICOM SYSTEM"; 9230 こめ=10000!:武器=10000!:兵士=10000! 9240 RESTORE 12310:FOR I=0 TO 13:GP$(I)="":READ J:FOR K=1 TO J:READ L:GP$(I)=GP$(I)+CHR$(L):NEXT:NEXT 9250 RESTORE 12020:FOR I=0 TO 16:READ TN$(I),TC(0,I),KN$(I),KC(2,I),KC(3,I):KC(4,I)=I:KC(14,I)=0:KC(15,I)=2:NEXT 9260 RESTORE 12000:FOR JPP=0 TO 3:FOR JP1=0 TO 2:READ JHI(JP1,JPP):NEXT:NEXT 9270 RESTORE 12110:FOR I=0 TO 16:J=0 9280 READ PP:IF PP<>-1 THEN J=J+1:隣国(I,J)=PP:GOTO 9280 9290 隣国(I,0)=J:NEXT 9300 COLOR 7 9310 LOCATE 27,10:PRINT "何かキーを押して下さい。";:GOSUB 9110:STOP OFF 9320 INCHIKI$="" 9330 IF IA$="ニ" OR IA$=CHR$(16) THEN FOR PP=1 TO 6:KEY(PP) ON:NEXT:STOP ON:INCHIKI$="i" 9340 IF IA$=CHR$(16) THEN INCHIKI$="@" 9350 COLOR 7:CLS:WIDTH 80,20 9360 LOCATE 20,10:INPUT "表示速度を設定します。(0から5まで) ",IA$ 9370 IF LEN(IA$)>1 THEN 9350 9380 U=VAL(IA$):IF U<0 OR U>5 THEN 9350 9390 U=U+1 9400 CLS 1:LOCATE 23,10:INPUT "Player は何人ですか ( 17 人まで ) ? ",IA$ 9410 MN=VAL(IA$):IF MN<1 OR MN>17 THEN LOCATE 0,10:PRINT TAB(78);"";:GOTO 9400 9420 PRINT IA$:IA=0 9430 FOR PPP=1 TO MN 9440 CHIZU=1:GOSUB 9050:CHIZU=0 9450 LOCATE 0,24:CLS 1:COLOR 7:PRINT "Player No.";:PRINT USING "##";PPP 9460 LINE INPUT " どの国でPlayしますか :",IA$:IA=VAL(IA$):GOSUB 2670:IF IA<1 OR IA>17 THEN 9450 ELSE IF PN(IA-1)=1 THEN 9450 9470 PRINT " ";TN$(IA-1);"の領地、";KN$(IA-1);"からスタートします。(y/n) ?";:GOSUB 9110:IF IA$="n" THEN 9450 9480 PN(IA-1)=1 9490 screen ,0,0:CLS:CONSOLE 0,25,0:FOR I=0 TO 7:COLOR =(I,0):NEXT 9500 LOCATE 5,3:PRINT "Player -";TN$(IA-1) 9510 LOCATE 18,4:PRINT "の各要素を決めて下さい。" 9520 TTL=0:FOR I=0 TO 4:COLOR 6-I 9530 LOCATE 10,I*2+6:PRINT I+1". "KMID$("IQ(知能指数)健康      野心      信頼度     運勢      ",I*8+1,8);SPC(15);"Push Space !!"; 9540 R=RND*60+55:LOCATE 35,I*2+6:PRINT USING"■###■";R 9550 IF INCHIKI$="@" THEN R=250:GOTO 9640 9560 IF Z2$="@" THEN Z$=INPUT$(1):GOTO 9580 9570 Z$=INKEY$ 9580 IF Z$=CHR$(27) THEN Z2$="@":GOTO 9540 9590 Z2$="":IF Z$="" THEN 9540 9600 J=INSTR("@ ",Z$)+1 9610 ON J GOTO 9540,9620,9640 9620 LOCATE 46,I*2+6:PRINT SPC(33);:LOCATE 46,I*2+6:INPUT "( 150 まで ) :",Z$ 9630 R=VAL(Z$):IF R<0 OR R>150 THEN 9620 9640 TC(I+1,IA-1)=R:TTL=TTL+R:GOSUB 2670 9650 NEXT 9660 COLOR 7:LOCATE 17,17:PRINT USING"各要素の平均   ●###●";TTL/5 9670 COLOR 7:LOCATE 7,19:PRINT "よろしいでしょうか ( RETURN/n ) ? ";:GOSUB 9110:IF IA$="n" THEN 9510 ELSE IF IA$=CHR$(13) THEN 9680 ELSE 9670 9680 NEXT 9690 IF INCHIKI$="@" THEN INCHIKI$="i" 9700 LOCATE 4,21:PRINT "最後にゲームのグレードを決めて下さい。";SPC(20):PRINT 9710 LOCATE 25,22:PRINT "( 1 〜 5 の範囲で入力して下さい ) :";TAB(78):LOCATE 62,22:INPUT "",IA$ 9720 GOSUB 2670:EF=VAL(IA$):IF EF<1 OR EF>5 THEN 9710 ELSE PRINT IA$ 9730 NE(0)=1559:NE(1)=3:NE(2)=0:EF=EF+3:MASA=INT(EF*2-RND*5):GOSUB 9050 9740 RESTORE 12070:FOR I=0 TO 16:READ K:IF K<>0 THEN 9770 9750 IF PN(I)=1 THEN 9810 9760 FOR J=1 TO 5:TC(J,I)=FNRELEM(0):NEXT:GOTO 9810 9770 FOR J=1 TO 5:READ K 9780 IF PN(I)=1 THEN 9800 9790 IF K=0 THEN TC(J,I)=FNRELEM(0)*.7 ELSE TC(J,I)=K+EF*2+RND*10 9800 NEXT 9810 NEXT 9820 RESTORE 12010 9830 FOR I=0 TO 16:READ 上限(I):上限(I)=(上限(I)+INT(RND*30))*10:NEXT 9840 RESTORE 12080:K=EF+15+INT(RND*5)*.9 9850 FOR I=0 TO 16:READ KC(5,I),KC(6,I),KC(13,I) 9860 KC(6,I)=KC(6,I)*1.6+RND*4*(1-PN(I)):KC(13,I)=KC(13,I)*(RND+2)+12+EF*(1-PN(I))*4:KC(0,I)=K*(1-PN(I))+12*PN(I)+RND*4:KC(1,I)=K*(1-PN(I))+11*PN(I)+RND*5:NEXT 9870 FOR I=0 TO 16:READ K:IF K<>0 THEN 9900 9880 FOR J=7 TO 12:KC(J,I)=FNRELEM(PN(I)):NEXT:GOTO 9960 9890 : 9900 FOR J=7 TO 12:READ KC(J,I):IF KC(J,I)<>0 THEN 9920 9910 KC(J,I)=FNRELEM(PN(I)):GOTO 9930 9920 KC(J,I)=KC(J,I)+FNRELEM(PN(I))*.07 9930 NEXT 9940 KC(10,I)=KC(10,I)+(1-PN(I))*(EF-3)*12 9950 IF KC(10,I)>200 THEN KC(10,I)=200 9960 NEXT 9970 FOR LC=0 TO 16:GOSUB 2690:NEXT:READ RM(0):FOR I=4 TO 6:READ RM(I):NEXT 9980 RESTORE 12360:FOR I=0 TO 16:READ 大雪(I):NEXT 9990 RETURN 10000 : 10010 ' ***** サブルーチン群 ***** 10020 : 10030 FOR PS=0 TO 2:BEEP 1:FOR BP=0 TO 50*U:NEXT:BEEP 0:FOR BP=0 TO 6*U:NEXT:NEXT 10040 IF FC>0 THEN FOR BP=0 TO 1000*U:NEXT:RETURN: ELSE RETURN 10050 FOR BP=0 TO 1000*(U+U2):NEXT:RETURN 10060 : 10070 WIDTH 80,25:CONSOLE 21,4,0:SCREEN 6,1,1:CLS:WINDOW (0,0)-(640,200) 10080 FOR PP=0 TO 7:COLOR =(PP,0):NEXT 10090 COLOR 7:LOCATE 30,12,0:PRINT "しばらくお待ち下さい"; 10100 LINE (0,0)-(512,160),PSET,7,B 10110 PA$=CHR$(0)+CHR$(204)+CHR$(0):PA2$=CHR$(0)+CHR$(51)+CHR$(0) 10120 PA$=PA$+PA$+PA2$+PA2$ 10130 PAINT (256,80),PA$,7 10140 OPEN "I",#1,"LINE2.DAT" 10150 INPUT #1,X,Y:POINT (X,Y) 10160 INPUT #1,X,Y:IF X=-1 AND Y=-1 THEN 10150 10170 IF X=-2 AND Y=-2 THEN 10190 10180 LINE -(X,Y),PSET,4:GOTO 10160 10190 PA$=CHR$(136)+CHR$(0)+CHR$(0):PA2$=CHR$(34)+CHR$(0)+CHR$(0) 10200 PA$=PA$+PA$+PA2$+PA2$ 10210 INPUT #1,X,Y 10220 PAINT (X,Y),PA$,7,4 10230 IF NOT(EOF(1)) THEN 10210 10240 CLOSE 10250 SYMBOL@(75,5),"信長の野望",2,2,2:SYMBOL@(73,4),"信長の野望",2,2,5 10260 LINE (5,2)-(58,54),PSET,4,BF:LINE (8,4)-(55,52),PSET,0,BF:LINE (7,3.5)-(56,52.5),PSET,2,B,&HAAAA:LINE (5,2)-(58,54),PSET,2,B,&H5555 10270 DIM Z$(16) 10280 RESTORE 12020:FOR I=0 TO 16:READ X$,X,Z$(I),X,X:NEXT 10290 RESTORE 12050:FOR I=0 TO 16:READ X,Y:SYMBOL@(X*8,Y*8),Z$(I),1,1,7,,PSET:NEXT 10300 RESTORE 12120:FOR I=3 TO 19:READ A$:SYMBOL@(520,I*8),A$,1,1,3,,PSET:NEXT 10310 ERASE Z$:screen ,,0:RETURN 10320 : 10330 WIDTH 80,25:CONSOLE 21,4:FOR I=0 TO 7:COLOR =(I,I*ABS(SGN(I-3))):NEXT 10340 FOR I=0 TO 16:LOCATE KC(2,I),KC(3,I) 10350 IF PN(KC(4,I))=1 THEN COLOR 5 ELSE COLOR 6 10360 PRINT TN$(KC(4,I)):NEXT 10370 RESTORE 12060:COLOR 5 10380 FOR I=1 TO 17:READ X,Y:LOCATE X,Y:PRINT USING"##";I:NEXT:RETURN 10390 : 10400 COLOR 5:LOCATE 6,22:PRINT "他国の武将はすべて死亡いたしました。":BEEP 1:FOR PP=0 TO 10000:NEXT:BEEP 0 10410 INTERVAL OFF:COLOR 2:LOCATE 5,23:PRINT "Game is Over":PRINT "何かキーを押して下さい。";:Z$=INPUT$(1) 10420 SCREEN ,0,0:CLS:IF DEATH THEN 10510 10430 LOCATE 1,3:COLOR 6:PRINT NE(0);"年" 10440 FOR PP=0 TO 7:COLOR =(PP,0):NEXT 10450 COLOR 7:SCREEN ,0,0:WINDOW (0,0)-(640,200):IF OW=0 THEN 10510 10460 WIN$=TN$(OW-1) 10470 SYMBOL@(32,44),KN$(OW-1)+"の国、"+RIGHT$(WIN$,LEN(WIN$)-1),2,1,2 10480 SYMBOL@(310,62),"は",2,1,7 10490 SYMBOL@(40,100),"中部17ヶ国を統一した。",3,3,5 10500 SYMBOL@(42,101),"中部17ヶ国を統一した。",3,3,5,,XOR :GOTO 10540 10510 SYMBOL@(32,44),"戦国の野望",2,1,7 10520 SYMBOL@(90,100),"17ヶ国統一は、夢と終わった。",2,2,5 10530 SYMBOL@(91,101),"17ヶ国統一は、夢と終わった。",2,2,5,,XOR 10540 FOR PP=0 TO 7:COLOR =(PP,PP):NEXT 10550 LOCATE 26,20:PRINT "何かキーを押して下さい。";:GOSUB 9110 10560 CONSOLE 0,25,0:GOSUB 11860:IF Z$="Y" OR Z$="y" THEN CLEAR:GOTO 1000 10570 CLS:WIDTH 80,25:PRINT "Bye...":END 10580 : 10590 *地震:FOR JPP=0 TO 3:ROLL -7:FOR JP1=0 TO 400:NEXT:ROLL 7:FOR JP1=0 TO 400:NEXT:NEXT 10600 CCX=POS(0):CCY=CSRLIN 10610 LOCATE 0,23:PRINT "@";:CCO=SCREEN(0,23,1) MOD 8:CCA=SCREEN(0,23,1)\8 10620 CLS 1:LOCATE 0,21:BEEP:COLOR 2,,,4:震源=INT(RND*4):震度!=.2+(EF-3)*.1+RND*.3:PRINT KN$(JHI(0,震源));" 中心に震度 (";:PRINT USING"##";震度!*4;:PRINT ") の地震発生!":FOR JP1=0 TO 10000:NEXT 10630 FOR JPP=0 TO 2:MD=JHI(JPP,震源):FOR JP1=5 TO 6:IF TN$(KC(4,MD))=" 政宗" THEN 10640 ELSE GOSUB 10710 10640 NEXT:FOR JP1=10 TO 12:GOSUB 10710:NEXT:JP1=14:GOSUB 10710 10650 IF KC(5,JPP)<1 THEN FOR JP1=11 TO 12:KC(JP1,JPP)=0:NEXT 10660 IF KC(6,JPP)<1 THEN FOR JP1=6 TO 9:KC(JP1,JPP)=0:NEXT 10670 IF PN(KC(4,MD))=1 THEN SWAP LC,MD:PRINT FNN$;KN$(LC);"領に被害を被りましたぞ!":SWAP LC,MD:GOSUB 2660 10680 NEXT 10690 INTERVAL OFF:INTERVAL (482+INT(RND*600)) 10700 ON INTERVAL GOSUB 10590:INTERVAL ON:COLOR CCO,,,CCA:LOCATE CCX,CCY:RETURN 10710 KC(JP1,MD)=KC(JP1,MD)/(震度!*((4-JPP)*.7+PN(KC(4,JP1)))) 10720 RETURN 10730 : 10740 IF DED(KC(4,I))=0 THEN RETURN 10750 CLS 1:LOCATE 0,21:BEEP:PRINT TN$(KC(4,I));"様、病気のため死亡いたしました 。" 10760 COLOR 7,,,0:PRINT "領地内の兵士は浪人となり各地へ散りました。" 10770 FOR PPI=0 TO 16 10780 IF KC(4,PPI)<>KC(4,I) THEN 10820 10790 FOR PP=6 TO 9:KC(PP,PPI)=0:NEXT 10800 FOR PP=0 TO 5:TC(PP,KC(4,PPI))=0:NEXT 10810 ZO(PPI)=0:KC(15,PPI)=1 10820 NEXT 10830 PN(KC(4,I))=0:DED(KC(4,I))=0:BAK(KC(4,I))=0:TN$(KC(4,I))="   " 10840 GOSUB 10030:GOSUB 10340:RETURN 10850 : 10860 IF DED(KC(4,I))=0 THEN RETURN 10870 LOCATE 2,5:COLOR 6:IF 不忠=1 THEN PRINT "一揆"; ELSE PRINT "謀反"; 10880 CLS 1:LOCATE 0,21 10890 COLOR 7:BEEP:IF PN(KC(4,I))=1 THEN COLOR 2:PRINT "わが国、"; 10900 ON 不忠 GOTO 10910,10920 10910 PRINT KN$(I);"の領民が一揆を起こしましたぞ!":GOTO 10930 10920 PRINT KN$(I);"の兵士が謀反を起こしましたぞ!" 10930 GOSUB 2660:GOSUB 10050 10940 IF KC(1,I)>1 OR KC(0,I)>0 THEN 11010 10950 IF PN(KC(4,I))=1 THEN PRINT "鎮圧できません! 無念で御座りまする。" 10960 ON 不忠 GOTO 10970,10980 10970 KC(5,I)=KC(5,I)*.7:KC(11,I)=KC(11,I)*.74:TC(4,KC(4,I))=FNFCT(4,I)*.8:GOTO 10990 10980 KC(6,I)=KC(6,I)*.66:KC(8,I)=KC(8,I)*.8:PP1=1:FOR PP=0 TO 2:TC(PP1,KC(4,I))=FNFCT(PP1,I)*.92:PP1=PP1*2:NEXT 10990 RETURN 11000 : 11010 IF PN(KC(4,I))=0 THEN 11050 11020 COLOR 4:PRINT "すべての金と米で説得いたしますか (y/n)?":IA$=INPUT$(1) 11030 IF IA$="n" THEN COLOR 3:PRINT "他国への逃亡者は後を絶ちません!":GOTO 10960 11040 COLOR 7:PRINT "鎮圧に成功いたしました。":GOSUB 10030 11050 TC(4,KC(4,I))=FNFCT(4,I)+1:KC(6,I)=KC(6,I)*(1-.08*(不忠-1)):KC(11,I)=KC(11,I)*(1-.06*(2-不忠)):FOR PP=0 TO 1:KC(PP,I)=0:NEXT:RETURN 11060 : 11070 IF INCHIKI$="i" THEN LOCATE 0,21:CLS 1:PRINT "Debug Mode :エラーが発生いたしました。( No";ERR;"in";ERL;")" 11080 OVER=1:RESUME NEXT 11090 : 11100 *忍者:FC=0:KC(0,LC)=KC(0,LC)-SF*相場(3):IF KC(0,LC)<0 THEN KC(0,LC)=0 11110 DUMM!=忍者-IA:IF DUMM!FNFCT(1,LC) THEN 11180 11170 FC=1:TC(2,LD)=TC(2,LD)*(SF+FNFCT(1,LD)/(SF+FNFCT(1,LC))) 11180 RETURN 11190 ' *** 兵離反 ******* 11200 IF (KC(7,LD)+FNFCT(5,LD))/(SF+(1-PN(KC(4,LC))*60))>1.2 THEN 11220 11210 FC=1:KC(6,LD)=KC(6,LD)*(.9-SF/(7000+KC(7,LD)/100)) 11220 RETURN 11230 ' *** 堤防破壊 ****** 11240 IF FNFCT(1,LD)/FNFCT(1,LC)>RND*.5+SF/7000 THEN 11260 11250 FC=1:KC(10,LD)=KC(10,LD)*(.9-SF/7000) 11260 RETURN 11270 ' *** 大火 ****** 11280 IF FNFCT(1,LD)/FNFCT(1,LC)>RND*.5+SF/7000 THEN 11300 11290 FC=1:KC(14,LD)=KC(14,LD)*(.87-SF/7000) 11300 RETURN 11310 ' *** 吹聴 ****** 11320 IF FNFCT(1,LD)/FNFCT(1,LC)>RND*.5+SF/7000 THEN 11350 11330 FC=1:PP=(RND*10)\5 11340 KC(7+PP*5,LD)=KC(7+PP*4,LD)*(.9-SF/7000) 11350 RETURN 11360 : 11370 IF KC(6,LD)>=1 THEN 11390 11380 FOR PP=6 TO 9:KC(PP,LD)=0:NEXT 11390 LOCATE 0,21:IF PN(KC(4,LC))=0 THEN 11440 11400 IF FC=0 THEN 11430 11410 PRINT "成功いたしました、敵は大混乱でござりまする!";TAB(79) 11420 GOSUB 10030:GOTO 11490 11430 PRINT "残念ながら失敗いたしました";TAB(79):GOSUB 2660:GOTO 11490 11440 IF PN(KC(4,LD))=0 THEN 11490 11450 COLOR 3:PRINT "どこかの国から忍者が送り込まれた模様です"TAB(79):BEEP 11460 IF FC=0 THEN 11490 11470 COLOR 2:PRINT " なにやら工作してゆきましたぞ!";TAB(79) 11480 GOSUB 2660:GOSUB 10050 11490 RETURN 11500 : 11510 *伊達:KU=INT(RND*4)+1 11520 COLOR 6:LOCATE 0,24:BEEP 11530 FOR PP1=0 TO 9:COLOR INT(RND*7)+1 11540 PRINT TAB(INT(RND*6)*2);"伊達政宗が";KN$(KU);"より参入してまいりました!" 11550 GOSUB 2660:NEXT 11560 IF PN(KC(4,KU))=1 THEN SWAP LC,KU:PRINT FNN$;"圧倒的な強さで我軍は壊滅いたしました!":PRINT:SWAP LC,KU:GOSUB 2660 11570 TN$(KC(4,KU))=" 政宗" 11580 TC(0,KC(4,KU))=40-MASA:PN(KC(4,KU))=0:BAK(KC(4,KU))=0 11590 FOR PP1=1 TO 5:TC(PP1,KC(4,KU))=250:NEXT:TC(3,KC(4,KU))=100 11600 FOR PP=0 TO 16 11610 IF KC(4,PP)<>KC(4,KU) THEN 11660 11620 FOR PP1=5 TO 12:KC(PP1,PP)=上限(PP):NEXT 11630 FOR PP1=0 TO 1:KC(PP1,PP)=上限(PP):NEXT 11640 KC(10,PP)=200:KC(14,PP)=上限(PP):KC(6,PP)=100:KC(5,PP)=KC(5,PP)\2 11650 IF KC(15,PP)=2 THEN KC(15,PP)=1 11660 NEXT 11670 KC(15,KU)=2:KC(6,KU)=400:GOSUB 10340 11680 RETURN 11690 : 11700 ' インチキ キー・ファンクション 11710 KC(0,IA)=KC(0,IA)+100:KC(1,IA)=KC(1,IA)+100:RETURN 11720 KC(5,IA)=KC(5,IA)+50:RETURN 11730 KC(6,IA)=KC(6,IA)+50:RETURN 11740 FOR PP=7 TO 12:KC(PP,IA)=KC(PP,IA)+100:NEXT:RETURN 11750 CLS 1:PRINT "お休み解除" 11760 INPUT "お休みを解除する領主の土地番号は :",KUNI$:KUNI=VAL(KUNI$) 11770 IF KUNI<1 OR KUNI>17 THEN 11750 11780 BAK(KC(4,KUNI-1))=0:RETURN 11790 CLS 1:INPUT "属領命令(国, 命令No.) :",KUNI,ZOKU 11800 KUNI=KUNI-1:ZO(KUNI)=ZOKU 11810 PRINT "大将:現在";KC(15,KUNI); 11820 INPUT ">> (1/2) :",TAISHO:IF TAISHO<1 OR TAISHO>2 THEN 11810 11830 KC(15,KUNI)=TAISHO 11840 RETURN 11850 ' ***** おしまいインフォメーション ***** 11860 screen ,0,0:CLS:WIDTH 80,20 11870 COLOR 7:PRINT 11880 PRINT "信長の野望は楽しかったですか?" 11890 LINE (90,65)-(550,170),PSET,7,B 11900 LINE (86,62)-(554,173),PSET,7,B 11910 COLOR 5:PRINT:PRINT 11920 PRINT TAB(19);"伊達政宗の軍隊を見る琴ができましたか、さて、" 11930 PRINT TAB(15);"このゲームは徹底的にやり尽くさなきゃならないのだよ。" 11940 COLOR 6:PRINT 11950 PRINT TAB(30);"* さあ、もう一度 *" 11960 COLOR 7:LOCATE 20,14,1 11970 PRINT "もう一度「信長の野望」をやりますか(Y/N)?"; 11980 Z$=INPUT$(1):CLS:RETURN 11990 ' ***** いろんなデータ達 ***** 12000 DATA 1,15,3,2,6,15,16,12,7,14,9,13 12010 DATA 563,865,770,794,628,688,812,761,675,644,762,752,677,700,713,972,746 12020 DATA " 畠山",29,能登,35,1," 上杉",30,越後,58,4," 北条",45,武蔵,56,17,本願寺,30,加賀越中,37,4," 朝倉",27,越前若狭,23,7,姉小路,44,飛騨,35,8 12030 DATA " 今川",41,駿河,43,17," 徳川",18,三河,32,17," 斎藤",35,美濃,29,11," 筒井",54,大和,10,18," 浅井",15,近江,16,13," 六角",60,伊賀,16,16 12040 DATA " 北畠",19,伊勢志摩,18,19," 足利",23,丹波,9,12," 三好",38,摂津,4,16," 武田",39,甲斐信濃,47,10," 織田",26,尾張,26,14 12050 DATA 35,0, 59,2, 59,16, 34,3, 17,6, 35,7, 44,16, 32,16, 28,10, 11,17, 18,11,19,15, 21,18, 8,11, 5,15, 46,8, 28,13 'ちめい 12060 DATA 32,0, 56,2, 59,15, 31,3, 14,6, 32,7, 41,16, 29,16, 25,10, 11,16, 15,11,16,15, 18,18, 5,11, 5,14, 43,8, 25,13 'とちNo. 12070 DATA 0,1,100,0,100,100,0,0,1,0,0,0,100,0,0,0,1,0,0,100,0,0,1,100,0,100,100,100,0,0,0,1,100,0,0,100,0,0,1,0,0,100,0,0,1,0,0,100,0,0,1,100,0,100,100,0,1,100,100,100,100,0 12080 DATA 20,5,5,80,15,10,60,10,5,100,10,5,60,10,5,20,5,5,80,15,10,40,10,5,60,10,10,40,5,10,60,10,5,20,5,5,20,5,5,60,5,20,80,10,15,80,15,10,40,10,15 12090 DATA 0, 1,110,0,0,122,104,0, 1,0,0,94,0,0,0, 1,110,0,0,0,120,0, 0, 0, 0, 1,0,100,0,100,0,0, 0, 0, 0, 1,100,0,85,100,100,0, 0, 0, 1,110,0,100,0,0,0, 1,106,0,0,0,120,106, 1,0,0,112,0,0,0 12100 DATA 10,15,20,12 12110 DATA 3,-1,2,3,15,-1,1,6,15,-1,0,1,4,5,15,-1,3,5,8,10,13,-1,3,4,8,15,-1,2,7,15,-1,6,8,15,16,-1,4,5,7,10,12,15,16,-1,11,12,13,14,-1,4,8,11,12,13,-1,9,10,12,13,-1,8,9,10,11,16,-1,4,9,10,11,14,-1,9,13,-1,1,2,3,5,6,7,8,-1,7,8,12,-1 12120 DATA 年齢,IQ,健康,野心,信頼度,運,金貨,兵糧,町の価値,米生産量,治水度,民の忠誠,民の財貨,兵力,兵士忠誠,兵士訓練,兵士武装 12130 DATA 兵士の移動,戦争,金/米の授与,金/米の移動,治水工事,町の拡張,開墾,雇用,堺の商人,兵士の訓練,他国の様子,属領命令,何もしない,国主の休養 12140 DATA 6877*0002040611207582848688*33354244*244864*462662 12150 DATA 060817288688*002060*334446557584*153548577753*512264 12160 DATA *000204087577848688*316026354453*2042465562*225115 12170 DATA 2840*0020607180*13355355578488*1726374246487586*246222 12180 DATA 0837*000211132022*354866*15264044577186*643375 12190 DATA 08172628406080**0233356684*001320243751535762778286*443164 12200 DATA 000211606280*082868778688*31445371*0415223342647384*553566 12210 DATA 0086*0608152446486888*515360*33426271*355522 12220 DATA 374860**0022316284*020411204042718077*336424 12230 DATA 00020880**26375753518488*172231424460737577*355524 12240 DATA 0408178088*35424453*02608486*11135157737782*263137 12250 DATA 0406081517518088**485366828486*3337407573*625522 12260 DATA 000280*48687582848688*04111320264042*0608153157*226435 12270 DATA 0002081184**51556466*1520374260737780*443353 12280 DATA 80828688*04061315*535568*20404251626675*442457 12290 DATA 00**0222243744465180*0406131720263540606468718288*335375 12300 DATA 0080*060815172628353777848688*316071*5162*223355 12310 DATA 6,238,32,32,32,32,239,12,238,32,32,32,32,32,32,239,128,128,128,128 12320 DATA 8,239,32,32,32,32,32,32,238,6,239,128,128,128,128,238 12330 DATA 4,148,148,148,148,4,226,226,226,226,4,152,155,154,153 12340 DATA 4,228,229,228,229,3,32,228,229,4,228,135,135,229,4,152,157,152,157 12350 DATA 4,159,158,159,158,6,238,239,238,239,238,239,6,239,238,239,238,239,238 12360 DATA 1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0