1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-03-01 09:21:15 +00:00
Files
PDP-10.stacken/files/games_interchange/policy.bas
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

202 lines
4.7 KiB
QBasic

100 REM POLICY - NATIONAL POLICY FORMATION
110 REM CHANGES 18 INDICATORS IN RESPONSE TO WHICH OF THE
120 REM 14 PROPOSITIONS ARE PASSED.
130 REM COPYRIGHT 1972, STATE UNIVERSITY OF NEW YORK
140 REM S(X): VALUE OF INDICATOR X AT BEGINNING OF PERIOD
150 REM E(X): VALUE OF INDICATOR X AT END OF PERIOD
160 REM W(X): NUMBER OF POINTS TO BE USED BY GROUP X
170 REM Y(X): NUMBER OF MINUS POINTS TO BE USED BY GROUP X
180 REM Q(X): BETWEEN LINES 650 AND 1190 Q(X) IS THE NUMBER OF POINTS
190 REM FOR PROPOSITION X. AT OTHER TIMES Q(X) =
200 REM 1, IF PROPOSITION X PASSED
210 REM 0, IF PROPOSITION X DID NOT PASS
220 REM DEVELOPED BY D. KLASSEN AND J. MCGRATH
230 REM PROGRAMMED BY S. HOLLANDER AND L. OBERLANDER
240 REM LATEST REVISION 8-27-72
250 DIME(18),S(18),Q(14),W(6),Y(6)
260 FORZ=1TO18
270 READE(Z)
280 LETS(Z)=E(Z)
290 NEXTZ
300 PRINT
310 DATA 976.5,197,80,18.2,3,82
315 DATA 54,3,140,4.5,25,8.2
320 DATA 30,116.3,142,5568,20,0
330 PRINT"HOW MANY PERIODS";
340 INPUTP1
350 LETP2=0
360 PRINT
370 PRINT
380 IFP2>0THEN410
390 PRINT"INITIAL AMOUNTS:"
400 GOTO420
410 PRINT"END OF PERIOD";P2
420 PRINT
430 PRINT
440 PRINT"INDICATOR","CURRENTLY","INCREASE","PCT. INC."
450 FORZ=1TO18
460 LETD1=INT(100*(E(Z)-S(Z)))/100
470 IFS(Z)=0THEN490
480 LETD2=100*D1/S(Z)
490 LETD2=INT(100*D2)/100
500 PRINTZ+100,INT(100*E(Z))/100;
510 IFP2=0THEN530
520 PRINT" ",D1,D2;
530 PRINT
540 NEXTZ
550 PRINT
560 PRINT
570 LETP2=P2+1
580 FORZ=1TO18
590 LETS(Z)=E(Z)
600 NEXTZ
610 FORZ=1TO6
620 LETW(Z)=100
630 LETY(Z)=50
640 NEXTZ
650 FORZ=1TO14
660 LETQ(Z)=0
670 NEXTZ
680 PRINT"TAPE?(1=YES,0=NO)";
690 INPUTZ
700 IFZ=1THEN1900
710 IFP2>P1THEN2040
720 FORZ=1TO6
730 PRINT
740 IFZ>1THEN770
750 PRINT"BUSINESS"
760 GOTO900
770 IFZ>2THEN800
780 PRINT"LABOR"
790 GOTO900
800 IFZ>3THEN830
810 PRINT"CIVIL RIGHTS"
820 GOTO900
830 IFZ>4THEN860
840 PRINT"MILITARY"
850 GOTO900
860 IFZ>5THEN890
870 PRINT"NATIONALISTS"
880 GOTO900
890 PRINT"INTERNATIONALISTS"
900 PRINT
910 PRINT"TOTAL POINTS REMAINING : ";W(Z)
920 IFY(Z)<=W(Z)THEN940
930 LETY(Z)=W(Z)
940 PRINT"MAXIMUM MINUS POINTS : ";Y(Z)
950 PRINT"INPUT POLICY NO.,POINTS"
960 PRINT
970 INPUTA,B
980 LETA=INT(A)
990 LETB=INT(B)
1000 IFA>14THEN910
1010 IFA=0THEN1150
1020 IFB=0THEN910
1030 IFA>0THEN1080
1040 PRINT"TAPE?(1=YES,0=NO)";
1050 INPUTG
1060 IFG=1THEN1900
1070 GOTO910
1080 IFABS(B)>W(Z)THEN910
1090 IFB>=0THEN1120
1100 IFABS(B)>Y(Z)THEN910
1110 LETY(Z)=Y(Z)+B
1120 LETQ(A)=Q(A)+B
1130 LETW(Z)=W(Z)-ABS(B)
1140 IFW(Z)>0THEN970
1150 NEXTZ
1160 PRINT
1170 PRINT"PASSED : ";
1180 LETZ2=0
1190 FORZ=1TO14
1200 IFQ(Z)<101THEN1250
1210 PRINTZ;
1220 LETZ2=1
1230 LETQ(Z)=1
1240 GOTO1260
1250 LETQ(Z)=0
1260 NEXTZ
1270 IFZ2>0THEN1300
1280 PRINT"NONE"
1290 GOTO1600
1300 PRINT
1310 PRINT
1320 FORZ=1TO14
1330 IFQ(Z)<>0THEN1370
1340 READA,B
1350 IFA<>0THEN1340
1360 GOTO1410
1370 READA,B
1380 IFA=0THEN1410
1390 LETE(A)=E(A)+B
1400 GOTO1370
1410 NEXTZ
1420 RESTORE
1430 FORZ=1TO9
1440 READA,B
1450 NEXTZ
1460 DATA1,15.2,0,0
1470 DATA1,10,8,2,9,2.25,0,0
1480 DATA1,12,2,5,9,2.25,12,-1.5,13,-5,16,-100,0,0
1490 DATA2,4,3,1,12,2,13,3,0,0
1500 DATA1,12,2,3,6,1,7,1,10,-.1,11,-.05,12,-1,13,-3,16,-50,0,0
1510 DATA1,8,2,2,3,1,6,.5,10,-.1,14,3,0,0
1520 DATA2,1,16,-100,0,0
1530 DATA1,24,2,11,4,.3,6,3,11,-.05,13,-.1,16,-500,17,-2,0,0
1540 DATA1,9,2,8,4,-1,8,1,10,-.05,11,-2,12,-1,13,-.05,16,-300,17,-3,0,0
1550 DATA1,-8,2,-10,3,-30,5,1,6,-4,7,4,10,.25,13,1,14,-2,0,0
1560 DATA1,2,2,.5,6,-2,7,5,8,-1,14,1,15,-15,17,-1,0,0
1570 DATA1,4,2,2,3,2,6,.5,15,3,0,0
1580 DATA1,10,6,5,7,3,14,-4,0,0
1590 DATA1,3,2,1,5,1,0,0
1600 IFE(1)<>S(1)THEN1620
1610 LETE(1)=1.04*E(1)
1620 IFE(2)<>S(2)THEN1640
1630 LETE(2)=E(2)+1
1640 IFE(3)<>S(3)THEN1660
1650 LETE(3)=.99*E(3)
1660 IFE(4)<>S(4)THEN1680
1670 LETE(4)=E(4)*.99
1680 IFE(5)<>S(5)THEN1700
1690 LETE(5)=.9*E(5)
1700 IFE(8)<>S(8)THEN1720
1710 LETE(8)=1.01*E(8)
1720 IFS(1)=0THEN1750
1730 IF(E(1)-S(1))/S(1)<.04THEN1750
1740 LETE(10)=1.015*E(10)
1750 IFE(11)<>S(11)THEN1770
1760 LETE(11)=.99*E(11)
1770 IFE(12)<>S(12)THEN1810
1780 IFS(1)=0THEN1810
1790 IF(E(1)-S(1))/S(1)<.04THEN1810
1800 LETE(12)=1.03*E(12)
1810 IFE(13)<>S(13)THEN1830
1820 LETE(13)=.98*E(13)
1830 IFE(14)<>S(14)THEN1850
1840 LETE(14)=1.04*E(14)
1850 IFE(15)<>S(15)THEN1870
1860 LETE(15)=1.1*E(15)
1870 IFE(16)<>S(16)THEN360
1880 LETE(16)=1.18*E(16)
1890 GOTO360
1900 PRINT
1910 PRINT" "
1920 FORL=0TO12STEP6
1930 IFL>0THEN1960
1940 PRINT"310";
1950 GOTO2000
1960 IFL>6THEN1990
1970 PRINT"315";
1980 GOTO2000
1990 PRINT"320";
2000 PRINT"DATA";
2005 FORZ=L+1TOL+5
2010 PRINTE(Z);",";
2015 NEXTZ
2020 PRINTE(L+6)
2025 NEXTL
2030 PRINT
2035 PRINT
2040 END
*U*=
#