1  REM  ****  HP BASIC PROGRAM LIBRARY  *****************************
2  REM
3  REM        POLSYS:  SIMULATION OF CITY COUNCIL
4  REM
5  REM        36640  REV B   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  **********************************
10  REM POLSYS - SIMULATION OF CITY COUNCIL
20  REM COPYRIGHT 1971 POLYTECHNIC INSTITUTE OF BROOKLYN 
30  REM M IS 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 REVISED 8/13/71
110  DIM M[3,3],T[2,3],C[2,9],S[2,3],P[2],W[2],K[3,3]
113  LET H2=0
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=1 TO 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  PRINT T[1,1];T[1,2];T[1,3];"   ";
1037  PRINT T[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 
