Hi,
Below is my first crude attemp at writing a wheeling program. It is written in Liberty Basic. Is there another approach?
REM WHEELING DEVELOPEMENT PROGRAM
RESTORE
CLS
REM SPECIFY HOW MANY NUMBERS TO BE WHEELED
WAMT=20
REM VARY G2,G3, AND G4 TO CONFIGURE WHEEL OUTPUT
REM DIM STATEMENTS
DIM CNTA(60)
DIM CNTB(60)
DIM CNTC(60)
DIM CNTD(60)
DIM CNTE(60)
DIM CNTS(60)
DIM CNTP(60,60)
REM PRINT OUT SHIFTS
DL1=5:DL2=10:DL3=15:DL4=20:DL5=25
DL6=30:DL7=35:DL8=40:DL9=45:DL10=50
DL11=55:DL12=60:DL13=65:DL14=70:DL15=75
DL16=80:DL17=85:DL18=90:DL19=95:DL20=100
DL21=105:DL22=110:DL23=115:DL24=120:DL25=125
DL26=130:DL27=135:DL28=140:DL29=145:DL30=150
DL31=155:DL32=160:DL33=165:DL34=170:DL35=175
DL36=180:DL37=185:DL38=190:DL39=195:DL40=200
DL41=205:DL42=210:DL43=215:DL44=220:DL45=225
DL46=230:DL47=235:DL48=240:DL49=245:DL50=250
REM BEGIN LOOPS
FOR A=1 TO (WAMT-4)
FOR B=(A+1) TO (WAMT-3)
FOR C=(B+1) TO (WAMT-2)
FOR D=(C+1) TO (WAMT-1)
FOR E=(D+1) TO (WAMT)
REM SINGLES FILTER POSITIONAL
G4=1
IF CNTA(A)>G4 THEN GOTO [SKIP]
IF CNTB(B)>G4 THEN GOTO [SKIP]
IF CNTC(C)>G4 THEN GOTO [SKIP]
IF CNTD(D)>G4 THEN GOTO [SKIP]
IF CNTE(E)>G4 THEN GOTO [SKIP]
REM SINGLES FILTER (VERTICAL)
G2=5
IF CNTS(A)>G2 THEN GOTO [SKIP]
IF CNTS(B)>G2 THEN GOTO [SKIP]
IF CNTS(C)>G2 THEN GOTO [SKIP]
IF CNTS(D)>G2 THEN GOTO [SKIP]
IF CNTS(E)>G2 THEN GOTO [SKIP]
REM PAIRS FILTER (HORIZONTAL)
G3=1
IF CNTP(A,B)>G3 THEN GOTO [SKIP]
IF CNTP(A,C)>G3 THEN GOTO [SKIP]
IF CNTP(A,D)>G3 THEN GOTO [SKIP]
IF CNTP(A,E)>G3 THEN GOTO [SKIP]
IF CNTP(B,C)>G3 THEN GOTO [SKIP]
IF CNTP(B,D)>G3 THEN GOTO [SKIP]
IF CNTP(B,E)>G3 THEN GOTO [SKIP]
IF CNTP(C,D)>G3 THEN GOTO [SKIP]
IF CNTP(C,E)>G3 THEN GOTO [SKIP]
IF CNTP(D,E)>G3 THEN GOTO [SKIP]
REM POSITIONAL FILTER
REM AVERAGING
AVGWAMT=0
AVGWAMT=INT(WAMT/2)
AVGA=(AVGWAMT-2)+(AVGWAMT-1)+(AVGWAMT)+(AVGWAMT+1)+(AVGWAMT+2)
IF (A+B+C+D+E)>(AVGA*1.2) THEN GOTO [SKIP]
IF (A+B+C+D+E)<(AVGA*.8) THEN GOTO [SKIP]
REM COUNT SINGLES
CNTS(A)=CNTS(A)+1
CNTS(B)=CNTS(B)+1
CNTS(C)=CNTS(C)+1
CNTS(D)=CNTS(D)+1
CNTS(E)=CNTS(E)+1
REM COUNT SINGLES BY POSTION
CNTA(A)=CNTA(A)+1
CNTB(B)=CNTB(B)+1
CNTC(C)=CNTC(C)+1
CNTD(D)=CNTD(D)+1
CNTE(E)=CNTE(E)+1
REM COUNT PAIRS
CNTP(A,B)=CNTP(A,B)+1
CNTP(B,C)=CNTP(B,C)+1
CNTP(C,D)=CNTP(C,D)+1
CNTP(D,E)=CNTP(D,E)+1
LOCATE DL1,AA+6:PRINT A
LOCATE DL2,AA+6:PRINT B
LOCATE DL3,AA+6:PRINT C
LOCATE DL4,AA+6:PRINT D
LOCATE DL5,AA+6:PRINT E
AA=AA+1
[SKIP]
NEXT E
NEXT D
NEXT C
NEXT B
NEXT A
PRINT
PRINT AA
PRINT