Jimbo
All that's needed is to dim a few variables, which I don't think you can figure out. This code
is very simple and took less than 1o minutes. None of the interface code is included just the
important stuff, rng's and scores. Get some help jimbo. I will make a video and provide a link
for anyone who is stupid enough to believe the ramblings of this idiot.
'LPM = LOWEST PRIZE MATCH
LPM=2
NSET=39
PICKT=5
randomize timer
NCR = Factorial(NSET) / (Factorial(PICKT) * Factorial(NSET-PICKT)):
NCR$ = LTRIM$(STR$(NCR))
DP1=0
IF INSTR(NCR$, ".") > 0 THEN DP1=CINT(VAL(MID$(NCR$,INSTR(NCR$, "."), 10)))
IF INSTR(NCR$, ".") > 0 THEN NCR$=MID$(NCR$,1,(INSTR(NCR$, ".")-1))
NCR=VAL(NCR$) + DP1
LNCR=LEN(NCR$)
NEXTRAND:
'RIGHT SIDE RNG'S
QP1$=""
LEX1 = INT(RND*(NCR-1))+1
SET1$="": L1=NSET: LEXHI=(NCR-LEX1):PICK1 = PICKT
NEXTQP1:
NC1 = Factorial(L1) / (Factorial(PICK1) * Factorial(L1 - PICK1)):
NC1$ = LTRIM$(STR$(NC1))
DP1=0
IF INSTR(NC1$, ".") > 0 THEN DP1=CINT(VAL(MID$(NC1$,INSTR(NC1$, "."), 10)))
IF INSTR(NC1$, ".") > 0 THEN NC1$=MID$(NC1$,1,(INSTR(NC1$, ".")-1))
NC1=VAL(NC1$) + DP1
DO UNTIL NC1 <= LEXHI
L1 = L1 - 1: IF L1 <= (PICK1-1) THEN EXIT DO
NC1 = Factorial(L1) / (Factorial(PICK1) * Factorial(L1 - PICK1)):
NC1$ = LTRIM$(STR$(NC1))
DP1=0
IF INSTR(NC1$, ".") > 0 THEN DP1=CINT(VAL(MID$(NC1$,INSTR(NC1$, "."), 10)))
IF INSTR(NC1$, ".") > 0 THEN NC1$=MID$(NC1$,1,(INSTR(NC1$, ".")-1))
NC1=VAL(NC1$) + DP1
LOOP
IF (NSET - L1) < 10 THEN SET1$ = SET1$ + "0" + LTRIM$(STR$(NSET - L1)) + " "
IF (NSET - L1) > 9 THEN SET1$ = SET1$ + LTRIM$(STR$(NSET - L1)) + " "
LEXHI = LEXHI - NC1: PICK1 = PICK1 - 1
IF PICK1 > 0 THEN GOTO NEXTQP1
QP1$=SET1$
RANQP2:
QP2$=""
DO WHILE LEN(QP2$) < (PICKT*3)
L1 = RAND(1,NSET)
IF L1 < 10 THEN L1$ = "0" + LTRIM$(RTRIM$(STR$(L1))) ELSE L1$ = LTRIM$(RTRIM$(STR$(L1)))
IF INSTR(QP2$, L1$) < 1 THEN QP2$=QP2$+L1$+" "
LOOP
'LEFT SIDE RNG'S
QP3$=""
LEX1 = INT(RND*(NCR-1))+1
SET1$="": L1=NSET: LEXHI=(NCR-LEX1):PICK1 = PICKT
NEXTQP2:
NC1 = Factorial(L1) / (Factorial(PICK1) * Factorial(L1 - PICK1)):
NC1$ = LTRIM$(STR$(NC1))
DP1=0
IF INSTR(NC1$, ".") > 0 THEN DP1=CINT(VAL(MID$(NC1$,INSTR(NC1$, "."), 10)))
IF INSTR(NC1$, ".") > 0 THEN NC1$=MID$(NC1$,1,(INSTR(NC1$, ".")-1))
NC1=VAL(NC1$) + DP1
DO UNTIL NC1 <= LEXHI
L1 = L1 - 1: IF L1 <= (PICK1-1) THEN EXIT DO
NC1 = Factorial(L1) / (Factorial(PICK1) * Factorial(L1 - PICK1)):
NC1$ = LTRIM$(STR$(NC1))
DP1=0
IF INSTR(NC1$, ".") > 0 THEN DP1=CINT(VAL(MID$(NC1$,INSTR(NC1$, "."), 10)))
IF INSTR(NC1$, ".") > 0 THEN NC1$=MID$(NC1$,1,(INSTR(NC1$, ".")-1))
NC1=VAL(NC1$) + DP1
LOOP
IF (NSET - L1) < 10 THEN SET1$ = SET1$ + "0" + LTRIM$(STR$(NSET - L1)) + " "
IF (NSET - L1) > 9 THEN SET1$ = SET1$ + LTRIM$(STR$(NSET - L1)) + " "
LEXHI = LEXHI - NC1: PICK1 = PICK1 - 1
IF PICK1 > 0 THEN GOTO NEXTQP2
QP3$=SET1$
FLTQP2:
QP4$=""
DO WHILE LEN(QP4$) < (PICKT*3)
L1 = RAND(1,NSET)
IF L1 < 10 THEN L1$ = "0" + LTRIM$(RTRIM$(STR$(L1))) ELSE L1$ = LTRIM$(RTRIM$(STR$(L1)))
IF INSTR(QP4$, L1$) < 1 THEN QP4$=QP4$+L1$+" "
LOOP
IF PICKT >= 1 THEN N1$=MID$(QP1$, 1, 2)
IF PICKT >= 2 THEN N2$=MID$(QP1$, 4, 2)
IF PICKT >= 3 THEN N3$=MID$(QP1$, 7, 2)
IF PICKT >= 4 THEN N4$=MID$(QP1$,10, 2)
IF PICKT >= 5 THEN N5$=MID$(QP1$,13, 2)
IF PICKT >= 6 THEN N6$=MID$(QP1$,16, 2)
H0=0
IF PICKT >= 1 AND INSTR(QP2$, N1$) >0 THEN H0=H0+1
IF PICKT >= 2 AND INSTR(QP2$, N2$) >0 THEN H0=H0+1
IF PICKT >= 3 AND INSTR(QP2$, N3$) >0 THEN H0=H0+1
IF PICKT >= 4 AND INSTR(QP2$, N4$) >0 THEN H0=H0+1
IF PICKT >= 5 AND INSTR(QP2$, N5$) >0 THEN H0=H0+1
IF PICKT >= 6 AND INSTR(QP2$, N6$) >0 THEN H0=H0+1
IF H0=0 THEN M0=M0+1
IF H0=1 THEN M1=M1+1
IF H0=2 THEN M2=M2+1
IF H0=3 THEN M3=M3+1
IF H0=4 THEN M4=M4+1
IF H0=5 THEN M5=M5+1
IF H0=6 THEN M6=M6+1
IF PICKT = 4 THEN _printstring(144, 163), MID$(QP2$, 1, 2)
IF PICKT = 4 THEN _printstring(184, 163), MID$(QP2$, 4, 2)
IF PICKT = 4 THEN _printstring(224, 163), MID$(QP2$, 7, 2)
IF PICKT = 4 THEN _printstring(264, 163), MID$(QP2$,10, 2)
IF PICKT = 5 THEN _printstring(124, 163), MID$(QP2$, 1, 2)
IF PICKT = 5 THEN _printstring(164, 163), MID$(QP2$, 4, 2)
IF PICKT = 5 THEN _printstring(204, 163), MID$(QP2$, 7, 2)
IF PICKT = 5 THEN _printstring(244, 163), MID$(QP2$,10, 2)
IF PICKT = 5 THEN _printstring(284, 163), MID$(QP2$,13, 2)
IF PICKT = 6 THEN _printstring(104, 163), MID$(QP2$, 1, 2)
IF PICKT = 6 THEN _printstring(144, 163), MID$(QP2$, 4, 2)
IF PICKT = 6 THEN _printstring(184, 163), MID$(QP2$, 7, 2)
IF PICKT = 6 THEN _printstring(224, 163), MID$(QP2$,10, 2)
IF PICKT = 6 THEN _printstring(264, 163), MID$(QP2$,13, 2)
IF PICKT = 6 THEN _printstring(304, 163), MID$(QP2$,16, 2)
IF PICKT >= 0 THEN _PRINTSTRING (284, 229),LTRIM$(STR$(M0))
IF PICKT >= 1 THEN _PRINTSTRING (284, 249),LTRIM$(STR$(M1))
IF PICKT >= 2 THEN _PRINTSTRING (284, 269),LTRIM$(STR$(M2))
IF PICKT >= 3 THEN _PRINTSTRING (284, 289),LTRIM$(STR$(M3))
IF PICKT >= 4 THEN _PRINTSTRING (284, 309),LTRIM$(STR$(M4))
IF PICKT >= 5 THEN _PRINTSTRING (284, 329),LTRIM$(STR$(M5))
IF PICKT >= 6 THEN _PRINTSTRING (284, 349),LTRIM$(STR$(M6))
IF H0 >= LPM THEN HIT1=HIT1+1
COUNT1=COUNT1+1
_PRINTSTRING (42 ,389), LTRIM$(RTRIM$(STR$(COUNT1)))
_PRINTSTRING (283,389), LTRIM$(RTRIM$(STR$(HIT1)))
'SIMULATOR #2
IF PICKT >= 1 THEN N1$=MID$(QP3$, 1, 2)
IF PICKT >= 2 THEN N2$=MID$(QP3$, 4, 2)
IF PICKT >= 3 THEN N3$=MID$(QP3$, 7, 2)
IF PICKT >= 4 THEN N4$=MID$(QP3$,10, 2)
IF PICKT >= 5 THEN N5$=MID$(QP3$,13, 2)
IF PICKT >= 6 THEN N6$=MID$(QP3$,16, 2)
H0=0
IF PICKT >= 1 AND INSTR(QP4$, N1$) >0 THEN H0=H0+1
IF PICKT >= 2 AND INSTR(QP4$, N2$) >0 THEN H0=H0+1
IF PICKT >= 3 AND INSTR(QP4$, N3$) >0 THEN H0=H0+1
IF PICKT >= 4 AND INSTR(QP4$, N4$) >0 THEN H0=H0+1
IF PICKT >= 5 AND INSTR(QP4$, N5$) >0 THEN H0=H0+1
IF PICKT >= 6 AND INSTR(QP4$, N6$) >0 THEN H0=H0+1
IF H0=0 THEN Z0=Z0+1
IF H0=1 THEN Z1=Z1+1
IF H0=2 THEN Z2=Z2+1
IF H0=3 THEN Z3=Z3+1
IF H0=4 THEN Z4=Z4+1
IF H0=5 THEN Z5=Z5+1
IF H0=6 THEN Z6=Z6+1
IF PICKT >= 0 THEN _PRINTSTRING (650, 229),LTRIM$(STR$(Z0))
IF PICKT >= 1 THEN _PRINTSTRING (650, 249),LTRIM$(STR$(Z1))
IF PICKT >= 2 THEN _PRINTSTRING (650, 269),LTRIM$(STR$(Z2))
IF PICKT >= 3 THEN _PRINTSTRING (650, 289),LTRIM$(STR$(Z3))
IF PICKT >= 4 THEN _PRINTSTRING (650, 309),LTRIM$(STR$(Z4))
IF PICKT >= 5 THEN _PRINTSTRING (650, 329),LTRIM$(STR$(Z5))
IF PICKT >= 6 THEN _PRINTSTRING (650, 349),LTRIM$(STR$(Z6))
IF H0 >= LPM THEN HIT2=HIT2+1
COUNT2=COUNT2+1
_PRINTSTRING (406,389), LTRIM$(RTRIM$(STR$(COUNT2)))
_PRINTSTRING (649,389), LTRIM$(RTRIM$(STR$(HIT2)))
GOTO NEXTRAND
FUNCTION Factorial# (n AS DOUBLE)
CONST maxNToCache = 99
STATIC resultCache() AS DOUBLE
STATIC FIRSTCALL AS INTEGER
IF firstCall = 0 THEN
firstCall = -1
REDIM resultCache(maxNToCache) AS DOUBLE
resultCache(0) = 1
resultCache(1) = 1
resultCache(2) = 2
END IF
IF n <= maxNToCache THEN
IF resultCache(n) <> 0 THEN
Factorial = resultCache(n)
EXIT FUNCTION
END IF
END IF
resultCache(n) = INT(n) * Factorial(INT(n) - 1)
Factorial = resultCache(n)
END FUNCTION