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

306 lines
6.8 KiB
QBasic
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
100 REM ELECT3 - ELECTION SIMULATION
105 REM COPYRIGHT 1972 - STATE UNIVERSITY OF NEW YORK
110 REM DEVELOPED BY D. KLASSEN, JUNE 1972
115 REM PROGRAMMED BY L. KAUFMAN, JUNE 1972
120 REM LATEST REVISION 2-21-73
125 DIMP(10),C(4),E(9),W(6),Y(3,2),I(3),S(3),T(3)
130 PRINT"PER";
135 INPUTR1
140 IF(R1-1)*(R1-2)*(R1-3)*(R1-4)<>0THEN130
145 PRINT"RES UNITS R,D";
150 INPUTP(5),P(6)
155 PRINT"INPUT FACTORS (1=YES, 0=NO)";
160 INPUTI
165 IFI=0THEN200
170 IFI<>1THEN155
175 PRINT"FAC";
180 INPUTP(1),P(2),C(1),C(2),C(3),C(4),P(9),P(10),P(7),P(3),P(4)
185 PRINT"CTRS";
190 INPUTN1,N2,N3,N4
195 GOTO265
200 RANDOMIZE
205 LETP(1)=4*RND(0)+1
210 LETP(2)=4*RND(0)+1
215 LETC(1)=INT(3*RND(0)+1)
220 LETC(2)=INT(3*RND(0)+1)
225 LETC(3)=INT(3*RND(0)+1)
230 LETC(4)=C(3)
235 LETP(9)=4*RND(0)+1
240 LETP(10)=4*RND(0)+1
245 LETP(3)=.06*RND(0)+.02
250 LETP(4)=.06*RND(0)+.02
255 READP(7),N1,N2,N3,N4
265 PRINT"INPUT MATRIX (1=YES, 0=NO)";
270 INPUTI
275 IFI=0THEN330
280 IFI<>1THEN270
290 FORI=1TO9
295 PRINT"CELL";I;" --- ";
300 INPUTX
305 IFABS(X-3)>2THEN295
310 IFX<>INT(X)THEN295
315 LETE(I)=X
320 NEXTI
325 GOTO375
330 PRINT"ADVANTAGE?(-1=REPUBLICAN,+1=DEMOCRAT,0=NO ADVANTAGE)";
335 INPUTI
340 IFI*(I-1)*(I+1)<>0THEN330
345 FORX=1TO9
350 LETE(X)=3
355 IFX=2*INT(X/2)THEN365
360 LETE(X)=3+I
365 NEXTX
375 PRINT
380 PRINT"MEDIA DISTORTION: R - ";INT(100*P(3));" PC D - ";
385 PRINTINT(100*P(4));" PC"
390 PRINT
395 PRINT"ALLOC RESOURCES - MIN. 20 PC FOR EACH AREA - TO"
400 PRINT"IMAGE, PARTY, AND ISSUES"
405 PRINT
410 PRINT"ALLOC. R (MAX";
415 PRINT" =";P(5);" )";
420 INPUTW(1),W(2),W(3)
425 IF(W(1)+W(2)+W(3))>P(5)THEN410
430 FORI=1TO3
435 IFW(I)<.2*P(5)THEN410
440 NEXTI
445 PRINT"ALLOC. D (MAX";
450 PRINT" =";P(6);" )";
455 INPUTW(4),W(5),W(6)
460 PRINT
465 IF(W(4)+W(5)+W(6))>P(6)THEN445
470 FORI=4TO6
475 IFW(I)<.2*P(6)THEN445
480 NEXTI
485 LETF5=1
490 LETF3=1
495 PRINT"TO HELP IMAGE -"
500 PRINT"STRESS EXP, ABIL, OR PERS"
505 GOTO520
510 PRINT"TO PUBLICIZE ISSUES -"
515 PRINT"STRESS ECO, DOMEST, OR FOR POL"
520 PRINT" R - HAS";W(F5);
525 GOTO535
530 PRINT" D - HAS";W(F5+3);
535 PRINT" UNITS -";
540 PRINT" ALLOC.";
545 INPUTI(1),I(2),I(3)
550 IF(I(1)-I(2))*(I(1)-I(3))*(I(2)-I(3))<>0THEN565
555 PRINT"NO EQUAL ALLOCATIONS!";
560 GOTO540
565 IFF3=2THEN580
570 LETX=W(F5)
575 GOTO585
580 LETX=W(F5+3)
585 IF(I(1)+I(2)+I(3))<=XTHEN600
590 PRINT"MAX =";X;
595 GOTO540
600 FORI=1TO3
605 IFI(I)<.2*XTHEN620
610 NEXTI
615 GOTO630
620 PRINT"NO ALLOC < 20 PC!";
625 GOTO540
630 LETX=1
635 IFI(2)>I(1)THEN650
640 LETI(2)=0
645 GOTO660
650 LETX=2
655 LETI(1)=0
660 IF(I(3)-I(1))*(I(3)-I(2))<0THEN670
665 LETX=3
670 LETY(F5,F3)=X
675 IFF3=2THEN695
680 LETS(F5)=I(X)
685 LETF3=2
690 GOTO530
695 LETT(F5)=I(X)
700 IFF5=3THEN720
705 LETF3=1
710 LETF5=3
715 GOTO510
720 PRINT
725 PRINT"UPDATE - "
730 IFP(7)>.65THEN755
735 IF(W(2)-.3*P(5))<0THEN745
740 LETP(7)=P(7)+.025
745 IF(W(5)-.3*P(6))<0THEN755
750 LETP(7)=P(7)+.025
755 PRINT"TURNOUT: ";INT(100*P(7));" PC"
760 LETF5=1
765 PRINT"IMPROVING IMAGE:"
770 GOTO780
775 PRINT"STRESSING RIGHT ISSUE:"
780 PRINT" R IS ";
785 IFY(F5,1)<>C(F5)THEN825
790 LETI=(.5+S(F5)/(2*W(F5)))*(1-P(3))
795 IFF5=3THEN815
805 LETN1=N1+1
810 GOTO860
815 LETN3=N3+1
820 GOTO860
825 PRINT"NOT ";
830 LETI=-.25*(1-P(3))
835 IFF5=3THEN855
845 LETN1=0
850 GOTO860
855 LETN3=0
860 PRINT"AND D IS ";
865 IFY(F5,2)<>C(F5+1)THEN905
870 LETX=(.5+T(F5)/(2*W(F5+3)))*(1-P(4))
875 IFF5<>3THEN895
880 LETN4=N4+1
885 GOTO965
895 LETN2=N2+1
900 GOTO940
905 PRINT"NOT ";
910 LETX=-.25*(1-P(4))
915 IFF5<>3THEN930
920 LETN4=0
925 GOTO965
930 LETN2=0
940 LETP(1)=P(1)+I
945 LETP(2)=P(2)+X
950 PRINT
955 LETF5=3
960 GOTO775
965 LETP(9)=P(9)+I
970 LETP(10)=P(10)+X
975 PRINT
980 PRINT
985 LETF5=1
990 IFABS(P(F5)-P(F5+1))>.5THEN1010
995 PRINT"NO ONE HAS";
1000 LETE(F5)=3
1005 GOTO1085
1010 IFP(F5+1)>P(F5)THEN1045
1015 PRINT"R ";
1020 IF(P(F5)-P(F5+1))>1.5THEN1035
1025 LETE(F5)=4
1030 GOTO1080
1035 LETE(F5)=5
1040 GOTO1070
1045 PRINT"D ";
1050 IF(P(F5+1)-P(F5))>1.5THEN1065
1055 LETE(F5)=2
1060 GOTO1080
1065 LETE(F5)=1
1070 PRINT"HAS A DECIDED";
1075 GOTO1085
1080 PRINT"HAS A SLIGHT";
1085 PRINT" ADVANTAGE ";
1090 IFF5=9THEN1110
1095 PRINT"IN IMAGE"
1100 LETF5=9
1105 GOTO990
1110 PRINT"WITH ISSUES"
1115 PRINT
1120 IFE(2)>4THEN1145
1125 IFN1<2THEN1145
1130 LETE(2)=E(2)+1
1135 PRINT" R";
1140 GOSUB1560
1145 IFE(4)<2THEN1170
1150 IFN2<2THEN1170
1155 LETE(4)=E(4)-1
1160 PRINT" D";
1165 GOSUB1560
1170 IFE(7)>4THEN1200
1175 IFN1<1THEN1200
1180 IFY(3,1)<>C(3)THEN1200
1185 LETE(7)=E(7)+1
1190 PRINT" R";
1195 GOSUB 1570
1200 IFE(3)<2THEN1230
1205 IFN2<1THEN1230
1210 IFY(3,2)<>C(4)THEN1230
1215 LETE(3)=E(3)-1
1220 PRINT" D";
1225 GOSUB1570
1230 IFN3<3THEN1255
1235 IFE(8)>4THEN1255
1240 LETE(8)=E(8)+1
1245 PRINT" R";
1250 GOSUB1580
1255 IFE(6)<2THEN1280
1260 IFN4<3THEN1280
1265 LETE(6)=E(6)-1
1270 PRINT" D";
1275 GOSUB1580
1280 PRINT"TURNOUT ";
1285 IFE(5)<>3THEN1300
1290 PRINT"HAS NO EFFECT"
1295 GOTO1390
1300 IFP(7)<.55THEN1355
1305 PRINT"FAVORS ";
1310 IFSGN(E(5)-3)=-1THEN1335
1315 PRINT"R"
1320 IFE(5)>4THEN1390
1325 LETE(5)=E(5)+1
1330 GOTO1390
1335 PRINT"D"
1340 IFE(5)<2THEN1390
1345 LETE(5)=E(5)-1
1350 GOTO1390
1355 PRINT"HINDERS ";
1360 IFSGN(E(5)-3)=-1THEN1380
1365 PRINT"R"
1370 LETE(5)=E(5)-1
1375 GOTO1390
1380 PRINT"D"
1385 LETE(5)=E(5)+1
1390 FORX=1TO3
1395 LETI(X)=(W(1)/P(5))*E(X)
1400 NEXTX
1405 FORX=4TO6
1410 LETY(X-3,1)=(W(2)/P(5))*E(X)
1415 NEXTX
1420 FORX=7TO9
1425 LETW(X-6)=(W(3)/P(5))*E(X)
1430 NEXTX
1435 LETI(1)=I(1)+Y(1,1)+W(1)
1440 LETI(2)=I(2)+Y(2,1)+W(2)
1445 LETI(3)=I(3)+Y(3,1)+W(3)
1450 LETI=I(1)*(W(4)/P(6))+I(2)*(W(5)/P(6))+I(3)*(W(6)/P(6))
1455 LETX=ABS(10*(I-3))+50
1460 PRINT
1465 IFR1=4THEN1480
1470 PRINT"THE LATEST POLL SHOWS ";
1475 GOTO1485
1480 PRINT"THE RESULT IS ";
1485 IFSGN(I-3)=0THEN1545
1490 IFSGN(I-3)=-1THEN1505
1495 PRINT"R ";
1500 GOTO1510
1505 PRINT"D ";
1510 IFR1=4THEN1525
1515 PRINT"LEADING ";
1520 GOTO1530
1525 PRINT"HAS WON ";
1530 PRINT"WITH";.1*INT(10*X);" PC OF THE VOTE"
1535 PRINT"AND HIS OPPONENT WITH";.1*INT(10*(100-X));" PC"
1540 GOTO1550
1545 PRINT"A TIE"
1550 IFR1=4THEN1650
1555 GOTO1600
1560 PRINT" HAS CHOSEN RIGHT IMAGE TWICE IN A ROW"
1565 GOTO1585
1570 PRINT" HAS CHOSEN CORRECT ISSUE AND IMAGE"
1575 GOTO1585
1580 PRINT" HAS CHOSEN RIGHT ISSUE 3 TIMES IN A ROW"
1585 PRINT" AND THIS SHOULD HELP HIM"
1590 PRINT
1595 RETURN
1600 PRINT
1605 PRINT"FAC";INT(100*P(1))/100;INT(100*P(2))/100;C(1);C(2);C(3);
1610 PRINTC(4);INT(100*P(9))/100;INT(100*P(10))/100;P(7);
1615 PRINTINT(100*P(3))/100;INT(100*P(4))/100
1620 PRINT"CTRS";N1;N2;N3;N4
1625 PRINT"MAT:"
1630 FORI=1TO9
1635 PRINT"CELL";I;" -- ";E(I)
1640 NEXTI
1645 DATA.45,0,0,0,0
1650 END
*U*,