REM
########################################
REM # ACSL
Intermediate Division Contest 4 #
REM ######### By:
Andrew Meglathery ########
REM
########################################
DIM
w$(7),wn(7),ws$(7),l$(7),ln(7),ls$(7),valid(7)
INPUT w$(1),w$(2),w$(3),w$(4),w$(5),w$(6),w$(7)
FOR i=1 to 7
IF w$(i)[1:1]="T" then
LET wn(i)=10
ELSE IF w$(i)[1:1]="J" then
LET wn(i)=11
ELSE IF w$(i)[1:1]="Q" then
LET wn(i)=12
ELSE IF w$(i)[1:1]="K" then
LET wn(i)=13
ELSE IF w$(i)[1:1]="A" then
LET wn(i)=1B
ELSE
LET wn(i)=VAL(w$(i)[1:1])
END IF
LET ws$(i)=w$(i)[2:2]
NEXT i
DO
REM ########################### SETS
######################
FOR i=1 to 13
LET count=0
FOR j=1 to 7
IF wn(j)=i then LET count=count+1
NEXT j
IF count>=3 then
FOR h=1 to 7
IF wn(h)=i then LET setnum=wn(h)
NEXT h
END IF
NEXT i
REM ####################### 3 CARD RUNS
###################
FOR i=1 to 7
FOR j=1 to 7
FOR k=1 to 7
IF wn(j)=wn(i)+1 and
wn(k)=wn(j)+1 and ws$(j)=ws$(i) and ws$(k)=ws$(i) then
LET trunlow=wn(i)
LET trunhigh=wn(k)
LET trunsuit$=ws$(i)
END IF
NEXT k
NEXT j
NEXT i
REM ###################### 4 CARD RUNS
####################
FOR i=1 to 7
FOR j=1 to 7
FOR k=1 to 7
FOR l=1 to 7
IF wn(j)=wn(i)+1 and
wn(k)=wn(j)+1 and wn(l)=wn(k)+1 and ws$(j)=ws$(i) and ws$(k)=ws$(i) and
ws$(l)=ws$(i) then
LET frunlow=wn(i)
LET frunhigh=wn(l)
LET frunsuit$=ws$(i)
END IF
NEXT l
NEXT k
NEXT j
NEXT i
INPUT
l$(1),l$(2),l$(3),l$(4),l$(5),l$(6),l$(7)
FOR i=1 to 7
IF l$(i)[1:1]="T" then
LET ln(i)=10
ELSE IF l$(i)[1:1]="J" then
LET ln(i)=11
ELSE IF l$(i)[1:1]="Q" then
LET ln(i)=12
ELSE IF l$(i)[1:1]="K" then
LET ln(i)=13
ELSE IF l$(i)[1:1]="A" then
LET ln(i)=1
ELSE
LET ln(i)=VAL(l$(i)[1:1])
END IF
LET ls$(i)=l$(i)[2:2]
LET valid(i)=1
NEXT i
FOR h=1 to 7
FOR i=1 to 7
IF ln(i)=trunlow-1 and
ls$(i)=trunsuit$ then
LET valid(i)=0
LET trunlow=ln(i)
ELSE IF ln(i)=trunhigh+1 and
ls$(i)=trunsuit$ then
LET valid(i)=0
LET trunhigh=ln(i)
ELSE IF ln(i)=frunlow-1 and
ls$(i)=frunsuit$ then
LET valid(i)=0
LET frunlow=ln(i)
ELSE IF ln(i)=frunhigh+1 and
ls$(i)=frunsuit$ then
LET valid(i)=0
LET frunhigh=ln(i)
ELSE IF ln(i)=setnum then
LET valid(i)=0
END IF
NEXT i
NEXT h
LET total=0
FOR i=1 to 7
IF valid(i)=1 then
IF ln(i)>10 then LET ln(i)=10
LET total=total+ln(i)
END IF
NEXT i
PRINT
PRINT total
PRINT
LOOP
END