perm filename TESTBJ[1,VDS] blob sn#030879 filedate 1973-03-22 generic text, type T, neo UTF8
00100	BEGIN
00200	EXPR DOIT();
00300	BEGIN
00400	NEW II,I,J,REPLY,DUM,K;
00500	SPECIAL N,SOFT,DR,SUM,INDEX;
00600	INITIALIZE();
00700	SHUFFLE();
00800	N←1;
00900	A;  SOFT←NIL;
00950	REPLY←NIL;
01000	SUM←II←DRAW();
01100	D;  SUM←SUM+DRAW();
01200	IF NULL SOFT THEN
01300	  IF SUM LEQUAL 16 THEN GO D
01400	  ELSE GO ONN
01500	ELSE IF SUM GEQUAL 12 AND SUM LEQUAL 16 THEN GO D
01600	ELSE IF SUM LEQUAL 7 THEN GO D;
01700	ONN;  IF SUM LESSP 12 THEN SUM←SUM+10;
01800	IF SUM GREATERP 21 THEN J←6 ALSO BUST(DR)←BUST(DR)+1
01900	ELSE J←SUM-16;
02000	NUM(II,J)←NUM(II,J)+1;
02100	IF (N/10)*10=N THEN PRINT N;
02200	IF (N/200)*200=N THEN
02300	  BEGIN NEW REP1;
02350	  PRINTSTR("OUTPUT?");
02370	  REP1←READ();
02390	  IF REP1 NEQUAL 'Y THEN RETURN NIL;
02400	  FOR I←1 TO 10 DO 
02500	    BEGIN NEW SUM1;
02600	    SUM1←0;
02700	    DUM←NIL;
02800	    FOR J←6 TO 1 BY -1 DO
02900	      BEGIN  DUM←NUM(I,J) CONS DUM;
03000	           SUM1←SUM1+NUM(I,J); END;
03100	    PRINTSTR("I = " CAT I CAT ":    " CAT DUM);
03200	    DUM←NIL;
03300	    FOR J←6 TO 1 BY -1 DO
03400	      DUM←IF NUM(I,J)=0 THEN 0 CONS DUM ELSE
03500	            NUM(I,J)/(SUM1*1.0) CONS DUM;
03600	    PRINTSTR("PROBABILITIES  " CAT DUM)
03700	    END;
03800	  PRINTSTR("BUST");
03900	  FOR K←1 TO 5 DO PRINT BUST(K);
04000	  TERPRI(NIL);
04100	  PRINTSTR("NBUST");
04200	  FOR K←1 TO 5 DO PRINT NBUST(K);
04300	  TERPRI NIL; TERPRI NIL;
04400	  PRINTSTR("BUST PROBABILITIES");
04500	  FOR K←1 TO 5 DO PRINT IF BUST(K)=0 THEN 0 ELSE
04600	         BUST(K)*1.0/NBUST(K);
04700	  TERPRI NIL; TERPRI NIL;
04800	  PRINTSTR " ?";
04900	  REPLY←READ();
05000	  END;
05100	IF NULL REPLY OR REPLY='Y THEN N←N+1 ALSO GO A
05200	ELSE RETURN "BYE";
05400	END;
05500	
05600	EXPR INITIALIZE();
05700	  BEGIN NEW TEMP;
05800	  SUM←0; INDEX←1;
05900	  ARRAY (DK,7,'(1 . 52));
06000	  ARRAY (DKR,7, '(1 . 52));
06100	  ARRAY (NUM,20,'(1 . 10), '(1 . 6));
06200	  ARRAY (BUST,20,'(1 . 5));
06300	  ARRAY (NBUST,20,'(1 . 5));
06400	  ARRAY (TP,7,'(1 . 52));
06500	  TEMP←'(44 15 10 34 36 5 17 24 46 22
06600	  27 3 14 32 33 13 4 28 23 47
06700	  8 18 42 37 25 9 26 20 45 1
06800	  16 40 35 6 11 30 38 49 21 50
06900	  2 31 39 7 12 41 29 52 48 19
07000	  51 43);
07100	  FOR NEW I←1 TO 52 DO BEGIN TP(I)←CAR TEMP; TEMP←CDR TEMP;END;
07200	  FOR NEW I←1 TO 9 DO
07300	    BEGIN
07400	    DK(4*I-3)←DK(4*I-2)←DK(4*I-1)←DK(4*I)←I;
07500	    END;
07600	  FOR NEW I←37 TO 52 DO DK(I)←10;
07700	  END;
07800	 
07900	EXPR DRAW();
08000	  BEGIN NEW CARD;
08100	  IF SUM GEQUAL 12 AND SUM LEQUAL 16
08200	   THEN DR←SUM-11 ALSO NBUST(DR)←NBUST(DR)+1;
08300	  IF INDEX=53 THEN SHUFFLE() ALSO INDEX←1;
08400	  CARD←DK(INDEX);
08500	  IF CARD=1 THEN SOFT←T;
08600	  INDEX←INDEX+1;
08700	  RETURN CARD;
08800	  END;
08900	EXPR SHUFFLE();
09000	  BEGIN NEW X,I;
09100	  FOR I←1 TO 52 DO DKR(I)←DK(TP(I));
09200	  X←DKR(1);
09300	  FOR I←1 TO 52 DO
09400	    BEGIN NEW IND;
09500	    IND←I+X;
09600	    IF IND GREATERP 52 THEN IND←IND-52;
09700	    DK(I)←DKR(IND);
09800	    END;
09900	  END;
10000	END.