1 ' High Low Poker BY: Gene Leone CIS# 73116,3507 2 ' Written for the M100 Radio Shack Lap Computer. 3 ' Enable line 10 to generate a Poker top 5 list. After that, disable 4 ' line 10 othewise a new list will be created each time you run the 5 ' game. Game is self explaining. All you need to know is how to play 6 ' Poker and that you have 3 turns to accumulate points. Free turns 7 ' are available for hands better than 2 pair and HIGH/LOW play is 8 ' granted for hands of 1 pair or better. Time$ is used to seed the 9 ' random number generator. 10 ' GOTO356:' Start new data list 12 DEFINTA-L,R-Y:SCREEN0,0:MAXFILES=2:GOSUB288:CLEAR:PRINT@240,"Lowest score 'or' ENTER to End ";:GOSUB360:IFVAL(Z$)=0THENMENU 14 FORI=1TOVAL(RIGHT$(TIME$,2)):B=INT(55*RND(1)):NEXT:M=2000:DIMC$(54),S$(54),C1$(5),S1$(5),A(5),B(5):CL$=CHR$(27)+"K":D$=STRING$(7,45):SP$=SPACE$(7) 16 C=1:FORI=1TO4:READA$:FORR=1TO13:S$(C)=A$:C=C+1:NEXTR:NEXTI:READA$:FORI=1TO2:S$(C)=A$:C=C+1:NEXTI:C=1:FORR=1TO4:FORI=1TO13:READA$:C$(C)=A$:C=C+1:NEXT:RESTORE:FORI=1TO5:READA$:NEXT:NEXTR:A$="Joker ":FORI=1TO2:C$(C)=A$:C=C+1:NEXT:C=1 18 DATA"Hearts ","Diamond","Club ","Spades "," ","Ace ","Two ","Three ","Four ","Five ","Six ","Seven ","Eight ","Nine ","Ten ","Jack ","Queen ","King ":RESTORE:IFH=1THEN22 20 FORW=1TO3 22 C=C+5:IFC>=45THENPRINT@200,"Re-shuffle":H=1:Z1=500:GOSUB354:GOTO16 24 GOSUB270:FORI=1TOVAL(RIGHT$(TIME$,2)):B=INT(56*RND(1)):NEXT:FORI=1TO5 26 A=INT(55*RND(1)):IFA>54THEN26 28 IFA<1THEN26 30 IFC$(A)="*"THEN26 32 IFU=1THEN74 34 C1$(I)=C$(A):S1$(I)=S$(A):C$(A)="*":NEXT:IFU=2THEN330 36 ' STANDINGS DISPLAY HERE 38 CLS:IFU<>2THEN40ELSEGOTO42 40 PRINT"Card #1:Card #2:Card #3:Card #4:Card #5":IFU<>2THEN48 42 PRINT"Card #1:Card #2":PRINTD$" "D$:GOTO58 44 PRINTC1$(1):PRINTS1$(1):PRINTD$" "D$:GOTO334 46 CLS:PRINT"Card #1:Card #2":PRINTD$" "D$:PRINTC1$(1);" ";C1$(2):PRINTS1$(1);" ";S1$(2):PRINTD$" "D$:GOTO52 48 ' PRINTING OUT CARDS 50 PRINTD$" "D$" "D$" "D$" "D$:PRINTC1$(1);" ";C1$(2);" ";C1$(3);" ";C1$(4);" ";C1$(5):PRINTS1$(1);" ";S1$(2);" ";S1$(3);" ";S1$(4);" ";S1$(5):PRINTD$" "D$" "D$" "D$" "D$ 52 IFU=3THEN336 54 IFU=4THENU=0:GOTO342 56 IFU=1THENU=0:GOTO76 58 IFU=2THENFORI=1TO2:GOTO26 60 PRINT@200,"Options:1=Draw 2=Stand Select";:GOSUB360:A=VAL(Z$):IFA=2THENGOSUB358 62 IFA>2THEN38 64 ONAGOTO66,76 66 ' DRAWING CARDS 68 PRINT@200,"Draw from 1 to 5 cards(e.g.32154)";:INPUTA1$:D=LEN(A1$):IFD>5THENPRINT@200,"No Spaces-OR-No more than 5 numbers" 70 IFD>5THENGOSUB358:GOTO68 72 U=1:FORI=1TOD:B$=LEFT$(A1$,I):C$=RIGHT$(B$,1):B(I)=VAL(C$):NEXT:FORI=1TOD:GOTO26 74 C=C+1:C1$(B(I))=C$(A):S1$(B(I))=S$(A):C$(A)="*":NEXT:GOTO38 76 ' ASSIGN CARDS 78 J=0:J1=0:FORI=1TO5:IFC1$(I)="Ace "THENH9=I 80 IFC1$(I)="Ace "THENA(I)=1 82 IFC1$(I)="Two "THENA(I)=2 84 IFC1$(I)="Three "THENA(I)=3 86 IFC1$(I)="Four "THENA(I)=4 88 IFC1$(I)="Five "THENA(I)=5 90 IFC1$(I)="Six "THENA(I)=6 92 IFC1$(I)="Eight "THENA(I)=8 94 IFC1$(I)="Nine "THENA(I)=9 96 IFC1$(I)="Ten "THENA(I)=10 98 IFC1$(I)="Jack "THENA(I)=11 100 IFC1$(I)="Queen "THENA(I)=12 102 IFC1$(I)="King "THENA(I)=13 104 IFC1$(I)="Seven "THENA(I)=7 106 IFC1$(I)="Joker "THENA(I)=15:J=J+1:J1=J 108 NEXT:IFU=2THEN332 110 T=0:S=0:FORI=1TO5:REM 5 OF A KIND CHECK 112 A=A(I):FORI=1TO5:IFA(I)=ATHENT=T+1:NEXT:GOTO116 114 IFJ1>0THENJ1=J1-1:T=T+1:NEXT 116 IFT=5THENT=0:S=10:GOTO258 118 T=0:J1=J:' FLUSH CHECK 120 IFS1$(2)<>SP$THENA$=S1$(2):GOTO124 122 A$=S1$(3) 124 FORI=1TO5:IFS1$(I)=A$THENT=T+1:NEXT:GOTO130 126 IFJ1>0THENJ1=J1-1:T=T+1:NEXT:GOTO130 128 GOTO144:' NO FLUSH GOTO 4 OF A KIND 130 T=0:J1=J:' ROYAL CHECK 132 IFH9=0THEN158:' NO ACE FOR ROYAL 134 A(H9)=14:FORI=10TO14:FORR=1TO5:IFA(R)=ITHENT=T+1:NEXTI:GOTO140 136 NEXTR:IFJ1>0THENJ1=J1-1:T=T+1:NEXTI:GOTO140 138 A(H9)=1:GOTO158:' NO ROYAL GOTO STR FLUSH 140 IFT=5THENS=9:GOTO258 142 A(H9)=1:GOTO158 144 ' 4 OF A KIND CHECK 146 T=0:J1=J:FORR=1TO5:FORI=1TO5:IFR=ITHENNEXTI:GOTO154 148 IFA(R)=15THENNEXTR:GOTO178 150 IFA(I)=A(R)THENT=T+1 152 NEXTI 154 T=T+J1:IFT=3THENS=7:GOTO258 156 T=0:NEXTR:GOTO178 158 ' STR FLUSH TEST 160 IFH9=0THENX=1ELSEX=2 162 FORX1=1TOX:IFX1=2THENA(H9)=14 164 J1=J:A=A(1):FORI=2TO5:IFA(I)0THENJ1=J1-1:NEXTR:GOTO176 172 IFH9>0THENH9=0:NEXTX1 174 S=5:GOTO258 176 S=8:GOTO258 178 ' FULL HOUSE CHECK 180 T=0:J1=J:IFJ1=2THENS=3:GOTO258 182 FORR=1TO5:FORI=1TO5:IFR=ITHENNEXTI:NEXTR:GOTO188 184 IFA(R)=A(I)THENT=T+1 186 NEXTI:NEXTR 188 IFT>=4THEN192 190 GOTO198 192 T=T+J1:IFT=5THENS=6:GOTO258 194 IFT=8THENS=6:GOTO258 196 GOTO198 198 ' STRAIGHT CHECK 200 IFH9>0THENX=2 202 FORX1=1TOX:IFX1=2THENA(H9)=14 204 J1=J:A=A(1):FORI=2TO5:IFA(I)0THENJ1=J1-1:NEXTR:GOTO216 212 IFH9>0THENNEXTX1 214 A(H9)=1:H9=0:GOTO218:' NO STRAIGHT GOTO 3 OF A KIND 216 H9=0:S=4:GOTO258 218 ' 3 OF A KIND CHECK 220 T=0:IFJ=2THENS=3:GOTO258 222 FORR=1TO5:IFA(R)=15THENNEXTR:GOTO230 224 FORI=1TO5:IFA(I)=A(R)THENT=T+1 226 NEXT:T=T+J:IFT=3THENS=3:GOTO258 228 T=0:NEXTR 230 ' 2 PAIR CHECK 232 B=0:IFJ>0THENS=1:GOTO258 234 FORR=1TO5:FORI=1TO5:IFR=ITHEN238 236 IFA(R)=A(I)THENS=1:GOTO242 238 NEXTI:NEXTR:IFS>0THEN258 240 S=11:GOTO258 242 B=B+1:ONBGOTO244,246,248 244 A=A(R):NEXTR:S=1:GOTO258 246 IFA(R)=ATHENNEXTI:NEXTR:GOTO258 248 S=2:GOTO258 250 ' A PAIR CHECK 252 FORI=1TO5:FORR=1TO5:IFR=ITHEN256 254 IFA(R)=A(I)THENS=1:GOTO258 256 NEXTR:NEXTI:S=11:GOTO258 258 ' S IS THE KEY TO SCORING. S=10 MEANS 5 OF A KIND OK. 260 IFS<>0ANDS<>11THENPRINT@212,"** A winner **":Z1=500:GOSUB354:GOSUB358 262 IFH9>0THENH9=0 264 IFS=11THEN314 266 IFS>2THENW=W-1 268 M1=M1*S:M=M+M1:GOTO318 270 ' BETTING 272 IFM=0GOTO12 274 M1=0 276 CLS 278 PRINT@200,"Current points:"M" turn:"W:PRINT"Bet or ENTER to bet all ";:LINEINPUTPO$:IFPO$=""THENM1=MELSEM1=VAL(PO$) 280 IFM1>MTHENCLS:PRINT@200,"You don't have those points.":Z1=500:GOSUB354 282 IFM1>MTHEN276 284 IFU=3THEN338 286 RETURN 288 ' TOP STANDINGS DISPLAY 290 CLS:OPEN"poker.do"FORINPUTAS1:LINEINPUT#1,A1$:PRINTA1$:FORI=1TO5:N=0:FORP=1TO4:LINEINPUT#1,A1$:PRINTA1$;TAB(11*N);:N=N+1:NEXTP:PRINT:NEXTI:CLOSE1:PRINT@240,"** Press ENTER **";:GOSUB360:RETURN 292 CLS:PRINT"Your final points=";M:Z1=500:GOSUB354:IFM=0THENZ1=1000:GOSUB354:GOTO12 294 ' FINDING A PLACE IN THE TOP 10 296 OPEN"poker.do"FORINPUTAS1:OPEN"data.do"FOROUTPUTAS2:Y=6:LINEINPUT#1,A1$:PRINT#2,A1$:FORI=1TO5:INPUT#1,A1$:INPUT#1,A2$:INPUT#1,A3$:INPUT#1,N:IFM<=NTHENPRINT#2,A1$:PRINT#2,A2$:PRINT#2,A3$:PRINT#2,N:NEXTI:GOTO308 298 Y=I:GOSUB300:PRINT#2,I+1:PRINT#2,A2$:PRINT#2,A3$:PRINT#2,N:I=I+2:GOTO306 300 CLS:INPUT"Your name (6 LETTERS MAX)";A6$:U=LEN(A6$):IFU>6THENPRINT"TOO LONG. TRY AGAIN.":GOTO300 302 PRINT#2,I:PRINT#2,A6$:PRINT#2,DATE$:PRINT#2,M:IFI=5THEN308 304 RETURN 306 FORP=ITO5:INPUT#1,A1$:INPUT#1,A2$:INPUT#1,A3$:INPUT#1,N:PRINT#2,P:PRINT#2,A2$:PRINT#2,A3$:PRINT#2,N:NEXTP 308 CLOSE#1:CLOSE#2:OPEN"poker.do"FOROUTPUTAS1:OPEN"data.do"FORINPUTAS2:LINEINPUT#2,A1$:PRINT#1,A1$:FORI=1TO5:INPUT#2,A1$:INPUT#2,A2$:INPUT#2,A3$:INPUT#2,N:PRINT#1,A1$:PRINT#1,A2$:PRINT#1,A3$:PRINT#1,N:NEXTI:CLOSE#1:CLOSE#2:KILL"data.do" 310 IFY<6THENPRINT"You placed #";Y;" on the top 5.":Z1=2000:GOSUB354:GOTO12 312 PRINT"Not good enough for the TOP 5.":Z1=1000:GOSUB354:GOTO12 314 ' FREE TURN AND SCORE UPDATE 316 M=M-M1:' LOSE POINTS 318 IFS<11ANDS>2THENPRINT@211,"A free turn::::":Z1=500:GOSUB354:GOSUB358 320 Z1=500:GOSUB354:GOSUB322:GOSUB354:NEXTW:GOTO292 322 IFM=0THEN270 324 IFS=11THENRETURN 326 PRINT@200,"High/Low Yes=1 No=2";:GOSUB360:K=VAL(Z$):IFK=2THENRETURN 328 C=C+2:FORI=1TO5:C1$(I)=SP$:S1$(I)=SP$:NEXTI:U=2:GOTO38 330 FORI=1TO2:GOTO80 332 GOTO44 334 PRINT@200,"Joker Wins. Ace is Low.":Z1=600:GOSUB354:GOSUB358:U=3:I=1:GOTO278 336 GOTO278 338 GOSUB358:PRINT@240," 1=High 2=Low: : : select-->1 or 2";:GOSUB360:H=VAL(Z$):IFH>2THEN338 340 I=2:U=4:GOTO46 342 IFA(1)=15ORA(2)=15THENM=M+M1:RETURN 344 IFH=1THEN350 346 IFA(1)>A(2)THENM=M+M1:RETURN 348 M=M-M1:RETURN 350 IFA(1)