[comp.sys.handhelds] Blackjack

grue@batserver.cs.uq.oz.au (Frobozz) (03/01/91)

hiya,

	Here is a another program, it is blackjack for the Casio FX602P.

	To play press P0 and follow instructions.  The program knows
	about most of blackjack, it doesn't know about splitting pairs
	or doubling down but it does know about 5 card tricks for the
	human player (yes, it provides an opponent).  The program as
	listed provides an 8 pack deck of cards and it will actually
	draw from the deck properly (so you can count cards if you so
	desire).  Aces are treated as 11 unless you bust when they get
	treated as 1 (this is quite normal).  The maximum bet is $500
	and fractional bets are ignored.  Buying cards is $2 per card
	(after the first).



P0:	GSBP4 MAC Goto2
Lbl0	AC Min1F Min15 Min16 GSBP5 MR1F x=0 Goto1 X>=0 Goto7 MR18 M+19 Goto2
Lbl7	"You bust" MR18 M-19
Lbl2	501 MinF GSBP6 AC "Wager>" HLT ABS INT x=0 Goto2 x>=F Goto3 Min18 Goto0
Lbl3	"Limit=500" Goto2
Lbl1	MR15 Min14 AC Min15 Min16 Min1F GSBP7 MR1F x=0 Goto4 "I bust" MR18 M+19
	Goto2
Lbl4	MR14 MinF MR15 x=F Goto5 x>=F Goto6 "You win" MR18 M+19 Goto2
Lbl6	"I win" MR18 M-19 Goto2
Lbl5	"We push" Goto2
[ 131 steps ]

P4:	"BLACKJACK!"
[ 12 steps]

P5:	1 Min17 GSBP9
Lbl0	"Total:ar15" PAUSE AC "Hit0/Stay1" HLT x=0 Goto1 Goto9
Lbl1	1 M+17 2 M+18 GSBP9 21 MinF MR15 x=F Goto2 x>=F Goto3
Lbl8	5 MinF MR17 x=F Goto6 Goto0
Lbl3	GSBP8 22 MinF MR15 x>=F Goto4 Goto8
Lbl4	1 Min1F Goto9
Lbl6	"Five under" Goto7
Lbl2	2 MinF MR17 x=F Goto5 Goto8
Lbl5	GSBP4
Lbl7	MR18 / 2 = INT M+18 1 +/- Min1F
Lbl9
[ 99 steps ]

P6:	"You are:" PAUSE MR19 x=0 Goto1 x>=0 Goto2 "behind" Goto3
Lbl1	"even" Goto4
Lbl2	"ahead"
Lbl3	PAUSE "ar19"
Lbl4	PAUSE
[ 48 steps ]

P7:	Min17
Lbl0	1 M+17 "Card:ar17" GSBP9
Lbl4	21 MinF MR15 "Total:ar15" x=F Goto2 x>=F Goto1 MR15 MinF 16 x>=F Goto0
	Goto9
Lbl2	2 MinF MR17 x=F Goto5 Goto9
Lbl5	GSBP4 1 Min14 Goto9
Lbl1	GSBP8 22 MinF MR15 x>=F Goto3 Goto4
Lbl3	1 Min1F
Lbl9
[ 63 steps ]

P8:
Lbl8	MR16 x=0 Goto9 10 M-15 1 M-16 22 MinF MR15 x>=F Goto8
Lbl9
[ 16 steps ]

P9:	13 Min00 MinF AC
Lbl0	+ IND MR00 DSZ Goto0 = x>=F x=F Goto1
Lbl9	"Draw " RAN# * 13 + 1 = INT Min00 MinF IND MR00 x=0 Goto9 1 IND M-00
	9 x>=F Goto4 5 M-00 IND Goto0
Lbl5	";Jack" 9 Goto3
Lbl6	";Queen" 9 Goto3
Lbl7	";King" 9 Goto3
Lbl8	";Ace" 1 M+16 10 Goto3
Lbl4	1 + MR00 = ";#" MR00 Goto3
Lbl1	"Shuffling" 13 Min00 32
Lbl2	IND Min00 DSZ Goto2 Goto9
Lbl3	Min00 ISZ MR00 M+15
[ 129 steps ]


For those who want to, change all PAUSEs in the program to GSBP3s
and enter the following for P3...

P3:	15 Min00
Lbl0	DSZ Goto0

This stops cheating from being possible during the pauses and speeds up
the play a little.




							Pauli
seeya

Paul Dale               | Internet/CSnet:            grue@batserver.cs.uq.oz.au
Dept of Computer Science| Bitnet:       grue%batserver.cs.uq.oz.au@uunet.uu.net
Uni of Qld              | JANET:           grue%batserver.cs.uq.oz.au@uk.ac.ukc
Australia, 4072         | EAN:                          grue@batserver.cs.uq.oz
                        | UUCP:           uunet!munnari!batserver.cs.uq.oz!grue
f4e6g4Qh4++             | JUNET:                     grue@batserver.cs.uq.oz.au
--