home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn User 4
/
AUCD4.iso
/
arcade
/
arcgames
/
blackjack
/
!High_Low
/
Highlow
(
.txt
)
< prev
next >
Wrap
RISC OS BBC BASIC V Source
|
1994-09-01
|
6KB
|
259 lines
>HIGHLOW
error_handler:
system_init
polling
"Wimp_CloseDown"
polling
polling%=
Wimp_Poll,%1,workspace%
reason%
reason%
"Wimp_OpenWindow",,workspace%
"Wimp_CloseWindow",,hilowwindow%
workspace%!8=2
quitmenu
&
workspace%!8=4
selects
keyspressed(
(workspace%!24))
menuchoice
17,18:
message_function
ending%
error_handler
)$(workspace%+4)=
$+" line "+
!workspace%=
"Wimp_ReportError",workspace%,1,"High/Low"
message_function
workspace%!16=0
ending%=
system_init
workspace% 500
SWIconversions
%'S%=
("HiLowSprts"):E%=
#S%+16:
card%(52),suit%(52)
hilowwindow% 400:
hilowindirect% 100
menuspace% 200
answer% 200
spritespace% E%
+9!spritespace%=E%:spritespace%!8=16:spritespace%!12=16
OS_SpriteOp,256+9,spritespace%
OS_SpriteOp,256+10,spritespace%,"HiLowSprts"
ending%=
$workspace%="TASK"
"Wimp_Initialise",200,!workspace%,"High/Low"
,task%
workspace%!0=-1
workspace%!4=0
workspace%!8=0
workspace%!12=70
workspace%!16=100
workspace%!20=&2102
iconbar$="!High/Low"
workspace%!24 (
iconbar$+1):workspace%!28=spritespace%:workspace%!32=(
iconbar$+1)
$(workspace%!24)=iconbar$
"Wimp_CreateIcon",,workspace%
baricon%
load_template
(500)
hilowwindow%!0=X%
hilowwindow%!4=500
?5hilowwindow%!8=X%+hilowwindow%!48-hilowwindow%!40
@7hilowwindow%!12=500+hilowwindow%!52-hilowwindow%!44
"Wimp_CreateWindow",,hilowwindow%
handle%
!hilowwindow%=handle%
workspace%!0=handle%
workspace%!4=10
workspace%!8=-140
workspace%!12=500
workspace%!16=100
workspace%!20=&2102
ondeck$="deck"
workspace%!24 (
ondeck$+1):workspace%!28=spritespace%:workspace%!32=(
ondeck$+1)
$(workspace%!24)=ondeck$
"Wimp_CreateIcon",,workspace%
deckicon%
cash%=2
playerwin%=5
playerscore%=0
computerscore%=0
cashpot=100
cash_icon
C%=1
13:X%+=1:
V%=0
12:card%(C%+V%)=V%+1:suit%(C%+V%)=X%:
shuffle
thiscard%=-1
lastcard%=-1
dealsetup
SWIconversions
"OS_SWINumberFromString",,"OS_SWINumberFromString"
OS_SWINumberFromString
OS_SWINumberFromString,,"Wimp_ReportError"
Wimp_ReportError
OS_SWINumberFromString,,"Wimp_Poll"
Wimp_Poll
OS_SWINumberFromString,,"OS_SpriteOp"
OS_SpriteOp
OS_SWINumberFromString,,"Wimp_ProcessKey"
Wimp_ProcessKey
OS_SWINumberFromString,,"Wimp_ForceRedraw"
Wimp_ForceRedraw
OS_SWINumberFromString,,"Wimp_GetIconState"
Wimp_GetIconState
OS_SWINumberFromString,,"Wimp_SetIconState"
Wimp_SetIconState
OS_SWINumberFromString,,"Wimp_SetCaretPosition"
Wimp_SetCaretPosition
quitmenu
workspace%!12<>-2
X%=!workspace%-64
$menuspace%="High/Low"
menuspace%?12=7
menuspace%?13=2
menuspace%?14=7
menuspace%?15=0
menuspace%!16=140
menuspace%!20=40
menuspace%!24=8
menuspace%?28=&80
menuspace%?29=0
menuspace%?30=0
menuspace%?31=0
menuspace%!32=-1
x3menuspace%!36=%00000111000000000011000000011001
y!$(menuspace%+40)="Quit"+
"Wimp_CreateMenu",,menuspace%,X%,180
menuchoice
!workspace%=0
ending%=
selects
workspace%!12=-2
openwindow:
X%=workspace%!16
keyspressed("H")
keyspressed("L")
openwindow
"Wimp_GetWindowState",,hilowwindow%
hilowwindow%!28=-1
"Wimp_OpenWindow",,hilowwindow%
keyspressed(key$)
key$
(13):
Wimp_SetCaretPosition,-1
"H","h":
dealcard:
thiscard%<lastcard%
thiscard%<>1
lastcard%<>1
endhand(
"L","l":
dealcard:
thiscard%>lastcard%
thiscard%<>1
lastcard%<>1
endhand(
Wimp_ProcessKey,workspace%!24
deckindex%=5
endhand(
icon_update(X%,message$)
icon_info(X%)
indirected%
/buffer%=workspace%!28:length%=workspace%!36
!$buffer%=
message$,length%-1)
workspace%!8=0
workspace%!12=0
Wimp_SetIconState,,workspace%
icon_info(X%)
workspace%!0=hilowwindow%!0
workspace%!4=X%
Wimp_GetIconState,,workspace%
((workspace%!24)
%100000000)>0
indirected%=
:text$=$workspace%!28
indirected%=
:text$=$(workspace%+28)
load_template
"Wimp_OpenTemplate",,"<High/Low>.HiLowTemp"
"Wimp_LoadTemplate",,hilowwindow%,hilowindirect%,hilowindirect%+99,-1,"HighLow",0
"Wimp_CloseTemplate"
cash_icon
icon_update(cash%,"
(cashpot))
shuffle
Q%=1
(5)+13
C%=1
(52):Y%=
card%(X%),card%(Y%)
suit%(X%),suit%(Y%)
dealcard
cardindex%+=1
card%(cardindex%)
1:S$="cardfront":D$="A"
11:S$="cardjack":D$=""
12:S$="cardqueen":D$=""
13:S$="cardking":D$=""
*S$="cardfront":D$=
(card%(cardindex%))
suit%(cardindex%)
1:T$="diamond"
2:T$="club"
3:T$="heart"
4:T$="spade"
lastcard%=thiscard%
thiscard%=card%(cardindex%)
displaycard
dealsetup
shuffle
!deckindex%=0:cardindex%=
D%=0
D%=0
dealcard
S$="cardback":T$="":D$="":
displaycard
deckindex%=1
displaycard
X%=10+deckindex%*95:Y%=5
OS_SpriteOp,256+60,spritespace%,"deck"
R0,R1,R2,R3
OS_SpriteOp,256+34,spritespace%,S$,X%,Y%,8
T$<>""
OS_SpriteOp,256+34,spritespace%,T$,X%+10,Y%+85,8
OS_SpriteOp,256+34,spritespace%,T$,X%+60,Y%+15,8
D$<>""
X%+35,Y%+75:
OS_SpriteOp,R0,R1,R2,R3
M!workspace%=handle%:workspace%!4=deckicon%:workspace%!8=0:workspace%!12=0
Wimp_SetIconState,,workspace%
deckindex%+=1
endhand(win%)
win%
ecashpot+=15:
cashpot>=200
playerscore%+=1:
icon_update(playerwin%,
(playerscore%)):cashpot=100
mcashpot-=10:
cashpot<=0
computerscore%+=1:
icon_update(playerwin%+1,
(computerscore%)):cashpot=100
T%=1
50000:
cash_icon
dealsetup