c64-basic/dice-poker/dice-poker.bas

35 lines
1.3 KiB
QBasic

10 PRINT CHR$(147):PRINT " DICE POKER":PRINT
20 PRINT "ROLL FIVE DICE. KEEP ANY DICE TWICE."
30 PRINT "ENTER POSITIONS TO KEEP, LIKE 135.":PRINT
40 PRINT "PRESS ANY KEY"
50 GET A$:IF A$="" THEN 50
60 R=RND(-TI):DIM D(5),C(6):K$=""
70 FOR T=1 TO 3:FOR I=1 TO 5:H=0
75 FOR J=1 TO LEN(K$):IF VAL(MID$(K$,J,1))=I THEN H=1
80 NEXT:IF T=1 OR H=0 THEN D(I)=INT(RND(1)*6)+1
90 NEXT I:PRINT CHR$(147):PRINT "ROLL";T;"OF 3":PRINT
100 FOR I=1 TO 5:PRINT " [";D(I);"]";:NEXT:PRINT:PRINT
110 IF T=3 THEN 150
120 PRINT "KEEP WHICH POSITIONS? (Q QUITS)";:INPUT K$
130 IF K$="Q" THEN 270
140 NEXT
150 FOR I=1 TO 6:C(I)=0:NEXT:SM=0
160 FOR I=1 TO 5:C(D(I))=C(D(I))+1:SM=SM+D(I):NEXT
170 P=0:TR=0:F=0:FOR I=1 TO 6
180 IF C(I)=2 THEN P=P+1
190 IF C(I)=3 THEN TR=1
200 IF C(I)=4 THEN F=1
210 IF C(I)=5 THEN F=2
220 NEXT:SC=SM:N$="HIGH DICE"
230 IF P=1 THEN SC=SM+10:N$="ONE PAIR"
235 IF P=2 THEN SC=SM+25:N$="TWO PAIRS"
240 IF TR THEN SC=SM+30:N$="THREE OF A KIND"
245 IF TR AND P THEN SC=40:N$="FULL HOUSE"
250 IF F=1 THEN SC=60:N$="FOUR OF A KIND"
255 IF F=2 THEN SC=75:N$="FIVE OF A KIND"
257 ST=C(1)*C(2)*C(3)*C(4)*C(5)+C(2)*C(3)*C(4)*C(5)*C(6)
260 IF ST THEN SC=50:N$="STRAIGHT"
265 PRINT N$:PRINT "SCORE";SC:PRINT:PRINT "R=PLAY AGAIN Q=QUIT"
270 GET A$:IF A$="R" THEN RUN
280 IF A$<>"Q" THEN 270
290 PRINT CHR$(147):END