10 !====================== WESS7A ===================== ! OVERLAY FOR TMAZE ! SIMULATION OF PUNISHMENT IN ANIMAL DISCRIMINATION ! LEARNING; WITH 5 INDEPENDENT VARIABLES AND 3 15 ! DEPENDENT VARIABLES. !=================================================== ! WRITTEN BY DR. P.F.SPELT, WABASH COLLEGE ! MARCH 1, 1975 !=================================================== 25 !OTHER PROGRAMS CHAIN HERE 30 O$=SYS(CHR$(7%)) 35 OPEN O$ FOR INPUT AS FILE 1% 40 DIM #1%,X%(48),A9(1),A1$(5)=128,A2$(24,4)=128,D2(24,12),X2(24,384) 45 ! \-----ID RECORD ------/ \-----24 MODEL RECORDS-----------/ 48 DIM M%(30) 50 CHANGE SYS(CHR$(6%)+CHR$(9%)) TO M% : O2$="WESS"+CHR$(65%+M%(2%)/2%)+".TMP" : OPEN O2$ AS FILE 2% 55 DIM #2%,A3$(4)=128,Q(3,128),I(27),S(27),X(48),O(27),D(12),N(10), P(10),K(20),V(20),T$(500)=64 60 X9=V(1) : Q0=V(2) : P5=V(3) : P6=V(4) : D2=V(5) : Q2=V(6) : M2=V(7) : N=V(8) : A8=V(9) : A9=V(10) : J=V(11) 62 IF T$(0%)="BACKUP" THEN O3%=-1% 70 OPEN"DATA"+CHR$(65+M%(2)/2)+".TMP" AS FILE 3% 80 DIM#3%,E(200,20),L(3,5),M(4,2),B$(20),C$(20),D$(20),F(20),H(20),C(20) 90 O1=O(0) : P3=P(0) 95 C0$=CHR$(10%) : A0$=A1$(0%) 150 G2=S(1) : G1=S(2) 1130 H1=0 1140 FOR G3=1 TO G2 !THIS IS THE OUTPUT LOOP SO THE POOR KID CAN !FIND OUT HOW BADLY HE BLEW IT. 1170 T0$=C0$+"GROUP #"+NUM$(G3)+"[ "+B$(G3)+"-"+C$(G3)+"-"+D$(G3)+" ("+ NUM$(F(G3))+";"+NUM$(H(G3))+") ] :" : GOSUB 2060 1180 FOR G=1 TO G1 1190 H=1:N=0 1195 T0$=C0$ : GOSUB 2070 1199 &"S";G;":";TAB(4%); 1200 T0$=";S"+NUM$(G)+" : " : GOSUB 2070 1210 FOR K=1 TO C(G3) 1220 G4=G+H1:H2=H+H1 1230 IF E(G4,H2)=9999THEN GOTO 1280 1240 N=N+E(G4,H2) 1249 & USING " ####",E(G4,H2); 1250 T0$=";! ###!"+CVTF$(E(G4,H2)) : GOSUB 2070 1260 H=H+1 1270 NEXT K 1280 E(G4,0)=E(G4,0)+20*(K-2) : IF E(G4,0)>O9 THEN O9=E(G4,0) ! STORE LONGEST TRIAL SEQ. FOR COST. 1290 & : T0$=C0$ : GOSUB 2070 1299 & USING"\ \ ###"," # ERRS=",N; 1300 T0$=";! NO ERRS = ###!"+CVTF$(N) : GOSUB 2070 1309 & USING"\ \ ###"," TRIALS=", E(G4,0) : & 1310 T0$="! TRIALS = ###!"+CVTF$(E(G4,0)) : GOSUB 2070 1320 NEXTG : T0$=C0$+C0$ : GOSUB 2060:H1=H1+G1:NEXTG3 !BELOW WE COMPUTE RUN TIME, AND COST(BASED MOSTLY ON THE # !OF ANIMALS RUN, PLUS SOME FOR GREATER # OF TRIAL-BLOCKS, !AND FINALLY SOME FOR THE AMOUNT OF TIME TAKEN FOR THE EXPT.). 1325 T0$=C0$+C0$ : GOSUB 2070 1329 & USING"RUN TIME IN MIN. = ###.##", V(12)/60 1330 T0$="! RUN TIME IN MIN = ###.##!"+CVTF$(V(12)/60) : GOSUB 2070 1335 T0$=C0$ : GOSUB 2070 1339 & USING"COST = $ ###.##",(3.43*G2*G1)+(G2*G1(FNG(.25,.08)))+(O9*.1)+ (V(12)*.01) 1340 T0$="!COST = $###.##!"+CVTF$((3.43*G2*G1)+(G2*G1(FNG(.25, .08)))+(O9*.1)+(V(12)*.01)) : GOSUB 2070 1380 !LET'S CLEAN UP THE DISK: 1390 KILL"DATA"+CHR$(65+M%(2)/2)+".TMP" 1610 ! ================================<============ ! NORMALLY DISTRIBUTED RANDOM NUMBERS ! CALL FNG(W1,W2) WHERE W1=MEAN AND W2=STD DEV ! OF PARENT DISTRIBUTION ! ============================================= 1620 DEF FNG(W1,W2)=W2*SQR(-2.*LOG(RND))*COS(6.28318*RND)+W1 2020 X(4)=1 ! NO STATS; BACK TO WESS 2030 V(1)=X9 : V(2)=Q0 : V(3)=P5 : V(4)=P6 : V(5)=D2 : V(6)=Q2 : V(7)=M2 : V(8)=N : V(9)=A8 : V(10)=A9 : V(11)=J 2040 O$=SYS(CHR$(8%)+O$+"!2000") : CLOSE 1%,2%,3% 2050 &"." : & : CHAIN A0$+"WESS" 14 2060 PRINT T0$ 2070 IF O3%=0% THEN RETURN 2080 V(0)=V(0)+1 2090 IF LEN(T0$)<=64% THEN T$(V(0))=T0$ : RETURN 2100 T$(V(0))=";"+LEFT(T0$,63%) : T0$=RIGHT(T0$,64%) : GO TO 2080 2110 FOR I%=1% TO 8% 2120 T0$=";!"+Q$(K%,I%)+"!"+CVTF$(P(I%)):GOSUB 2070 2130 NEXT I% : T0$=" " : GOSUB 2070 : RETURN 2140 END