mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-01 01:19:17 +00:00
182 lines
4.2 KiB
QBasic
182 lines
4.2 KiB
QBasic
|
||
10 REM POLSYS - SIMULATION OF CITY COUNCIL
|
||
20 REM COPYRIGHT 1971 STATE UNIVERSITY OF NEW YORK
|
||
30 REM M: STRATEGY MATRIX; S IS RESOURCE EXPENDITURE FOR CURRENT ROUND
|
||
40 REM K IS RELATIVE WEIGHTS OF RESOURCE UNITS
|
||
50 REM C IS RESOURCE EXPENDITURE BREAKDOWN BY GROUP AND TYPE X TYPE
|
||
60 REM T IS TOTAL REMAINING RESOURCES
|
||
70 REM W(I) IS NUMBER OF BOXES WON BY GROUP I
|
||
105 REM LATEST REVISION 8-27-72
|
||
110 DIM M(3,3),T(2,3),C(2,9),S(2,3),P(2),W(2),K(3,3)
|
||
115 PRINT "ENTER ISSUE NUMBER ";
|
||
117 RESTORE
|
||
120 INPUT Q
|
||
121 IF Q>3 THEN 115
|
||
122 IF Q<1 THEN 115
|
||
125 FOR I=1 TO 3
|
||
130 FOR J=1 TO 3
|
||
135 READ K(I,J)
|
||
140 IF Q=I THEN 145
|
||
141 IF Q<>J THEN 155
|
||
142 LET M(I,J)=1
|
||
143 GOTO 160
|
||
145 LET M(I,J)=1
|
||
146 GOTO 160
|
||
155 LET M(I,J)=0
|
||
156 LET M(J,I)=0
|
||
160 NEXT J
|
||
165 NEXT I
|
||
170 PRINT "ENTER ROUND";
|
||
175 INPUT R
|
||
176 IF R=4 THEN 182
|
||
177 IF R=1 THEN 182
|
||
178 PRINT "INPUT PREVIOUS STRATEGY QUALITY POINTS";
|
||
179 INPUT S7
|
||
180 GOTO 190
|
||
182 LET S7=0
|
||
190 PRINT
|
||
191 IF H2=1 THEN 235
|
||
192 PRINT
|
||
195 FOR I=1 TO 2
|
||
197 GOSUB 850
|
||
198 PRINT
|
||
200 PRINT "TOTAL RES.;PUBLICITY(PBU),SUPPORT(SU),";
|
||
201 PRINT "KNOWLEDGE(KU)";
|
||
210 INPUT T(I,1),T(I,2),T(I,3)
|
||
215 FOR J=1TO 10
|
||
220 PRINT
|
||
225 NEXT J
|
||
230 NEXT I
|
||
235 FOR I= 1 TO 2
|
||
240 GOSUB 850
|
||
241 PRINT
|
||
245 PRINT "REMAINING RESOURCES (PBU,SU,KU)"
|
||
250 PRINT T(I,1);T(I,2);T(I,3)
|
||
255 FOR B=1 TO 3
|
||
257 PRINT
|
||
265 GOSUB 370
|
||
270 PRINT"RES. TO BE USED";
|
||
275 INPUT S(I,B)
|
||
280 IF S(I,B)>T(I,B) THEN 265
|
||
283 LET T(I,B)=T(I,B)-S(I,B)
|
||
285 GOSUB 330
|
||
290 GOSUB 955
|
||
295 IF P=1 THEN 265
|
||
300 NEXT B
|
||
305 FOR A = 1 TO 10
|
||
310 PRINT
|
||
315 NEXT A
|
||
320 NEXT I
|
||
325 GOTO 455
|
||
330 PRINT
|
||
335 FOR J=1 TO 3
|
||
340 GOSUB 370
|
||
345 PRINT" X ";
|
||
350 GOSUB 415
|
||
355 INPUT C(I,B+3*(J-1))
|
||
360 NEXT J
|
||
365 RETURN
|
||
370 IF B=1 THEN 385
|
||
375 IF B=2 THEN 395
|
||
380 IF B=3 THEN 405
|
||
385 PRINT" PBU ";
|
||
390 GOTO 410
|
||
395 PRINT" SU ";
|
||
400 GOTO 410
|
||
405 PRINT" KU ";
|
||
410 RETURN
|
||
415 IF J=2 THEN 435
|
||
420 IF J=3 THEN 445
|
||
425 PRINT" PBU ";
|
||
430 GOTO 450
|
||
435 PRINT" SU ";
|
||
440 GOTO 450
|
||
445 PRINT" KU ";
|
||
450 RETURN
|
||
455 GOSUB 1075
|
||
460 IF R=1 THEN 500
|
||
465 IF R=2 THEN 600
|
||
470 IF R=3 THEN 700
|
||
475 IF R=4 THEN 800
|
||
500 IF W(1)>=1 THEN 530
|
||
510 PRINT "CITY COUNCIL CAN'T ACCEPT PROPOSAL. TRY ANOTHER STRATEGY."
|
||
515 PRINT "REMAIN IN ROUND 1"
|
||
520 GOTO 1017
|
||
530 PRINT "CITY COUNCIL WILL CONSIDER DEMAND."
|
||
535 PRINT "PROCEED TO ROUND 2"
|
||
540 GOTO 1017
|
||
600 IF W(1)>W(2) THEN 630
|
||
610 PRINT "THE CITY COUNCIL IS CONSIDERING THE PROPOSAL UNFAVORABLY."
|
||
620 GOTO 640
|
||
630 PRINT "THE CITY COUNCIL IS CONSIDERING THE PROPOSAL FAVORABLY."
|
||
640 PRINT "PROCEED TO ROUND 3"
|
||
650 GOTO 1017
|
||
700 IF W(1)>W(2) THEN 750
|
||
710 IF S7>0 THEN 770
|
||
720 PRINT "THE CITY COUNCIL HAS REJECTED THE PROPOSAL."
|
||
730 STOP
|
||
750 IF S7<0 THEN 770
|
||
755 PRINT "THE CITY COUNCIL HAS APPROVED THE PROPOSAL."
|
||
760 STOP
|
||
770 PRINT "THE CITY COUNCIL HAS POSTPONED ITS DECISION."
|
||
775 PRINT "PROCEED TO ROUND 4"
|
||
777 FOR I=1 TO 2
|
||
778 FOR J=1 TO 3
|
||
779 LET T(I,J)=T(I,J)+S(I,J)
|
||
780 NEXT J
|
||
781 NEXT I
|
||
782 GOTO 1017
|
||
800 IF W(1)>W(2) THEN 755
|
||
810 GOTO 720
|
||
850 IF I=2 THEN 865
|
||
855 PRINT "TEAM 1 (PRO) ";
|
||
860 RETURN
|
||
865 PRINT "TEAM 2 (CON) ";
|
||
870 RETURN
|
||
945 STOP
|
||
955 LET D=0
|
||
960 LET P=0
|
||
965 FOR J=1 TO 3
|
||
970 LET D=D+C(I,B+3*(J-1))*K(B,J)
|
||
975 NEXT J
|
||
980 IF ABS(S(I,B)-D)<.01 THEN 1000
|
||
985 PRINT "TOTAL DOES NOT MATCH SUM OF INPUTS"
|
||
990 LET T(I,B)=T(I,B)+S(I,B)
|
||
995 LET P=1
|
||
997 RETURN
|
||
1000 IF I=1 THEN 1014
|
||
1005 FOR J=1 TO 3
|
||
1010 LET C(I,B+3*(J-1))=C(I,B+3*(J-1))*K(B,J)
|
||
1013 NEXT J
|
||
1014 RETURN
|
||
1015 REM NEXT ROUND
|
||
1017 PRINT "STRATEGY QUALITY POINTS=";S7
|
||
1020 PRINT"ANOTHER RUN(YES=1,NO=0)";
|
||
1025 INPUT H2
|
||
1027 IF H2=1 THEN 1045
|
||
1030 PRINT"RES. GROUP 1";" ";"RES. GROUP 2"
|
||
1035 PRINTT(1,1);T(1,2);T(1,3);" ";
|
||
1037 PRINTT(2,1);T(2,2);T(2,3)
|
||
1038 PRINT "END OF ROUND ";R
|
||
1040 STOP
|
||
1045 FOR I=1 TO 10
|
||
1050 PRINT
|
||
1055 NEXT I
|
||
1065 GOTO 115
|
||
1070 REM NUMBER OF WINS
|
||
1075 FOR I=1 TO 2
|
||
1080 LET W(I)=0
|
||
1085 FOR J=1 TO 3
|
||
1090 FOR K=1 TO 3
|
||
1095 IF C(I,J+3*(K-1))*M(J,K)>C(3-I,K+3*(J-1)) THEN 1105
|
||
1100 GOTO 1106
|
||
1105 LET W(I)=W(I)+1
|
||
1106 IF I=2 THEN 1110
|
||
1107 LET S7=S7+(M(J,K)/K(K,1))*(C(1,J+3*(K-1))-C(2,K+3*(J-1)))
|
||
1110 NEXT K
|
||
1114 NEXT J
|
||
1120 NEXT I
|
||
1125 RETURN
|
||
1200 DATA 1,5,10,.2,1,2,.1,.5,1
|
||
1205 END
|
||
*U*6 |