home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 4 / AUCD4.iso / arcade / arcgames / blackjack / !High_Low / Highlow (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1994-09-01  |  6KB  |  259 lines

  1.  >HIGHLOW
  2. error_handler:
  3. system_init
  4. polling
  5.  "Wimp_CloseDown"
  6. polling
  7. polling%=
  8.  Wimp_Poll,%1,workspace% 
  9.  reason%
  10.  reason% 
  11.  "Wimp_OpenWindow",,workspace%
  12.  "Wimp_CloseWindow",,hilowwindow%
  13.  workspace%!8=2 
  14. quitmenu
  15. &       
  16.  workspace%!8=4 
  17. selects
  18. keyspressed(
  19. (workspace%!24))
  20. menuchoice
  21.  17,18:
  22. message_function
  23.  ending%
  24. error_handler
  25. )$(workspace%+4)=
  26. $+" line "+
  27. !workspace%=
  28.  "Wimp_ReportError",workspace%,1,"High/Low"
  29. message_function
  30.  workspace%!16=0 
  31.  ending%=
  32. system_init
  33.  workspace% 500
  34. SWIconversions
  35. %'S%=
  36. ("HiLowSprts"):E%=
  37. #S%+16:
  38.  card%(52),suit%(52)
  39.  hilowwindow% 400:
  40.  hilowindirect% 100
  41.  menuspace% 200
  42.  answer% 200
  43.  spritespace% E%
  44. +9!spritespace%=E%:spritespace%!8=16:spritespace%!12=16
  45.  OS_SpriteOp,256+9,spritespace%
  46.  OS_SpriteOp,256+10,spritespace%,"HiLowSprts"
  47. ending%=
  48. $workspace%="TASK"
  49.  "Wimp_Initialise",200,!workspace%,"High/Low" 
  50.  ,task%
  51. workspace%!0=-1
  52. workspace%!4=0
  53. workspace%!8=0
  54. workspace%!12=70
  55. workspace%!16=100
  56. workspace%!20=&2102
  57. iconbar$="!High/Low"
  58.  workspace%!24 (
  59. iconbar$+1):workspace%!28=spritespace%:workspace%!32=(
  60. iconbar$+1)
  61. $(workspace%!24)=iconbar$
  62.  "Wimp_CreateIcon",,workspace% 
  63.  baricon%
  64. load_template
  65. (500)
  66. hilowwindow%!0=X%
  67. hilowwindow%!4=500
  68. ?5hilowwindow%!8=X%+hilowwindow%!48-hilowwindow%!40
  69. @7hilowwindow%!12=500+hilowwindow%!52-hilowwindow%!44
  70.  "Wimp_CreateWindow",,hilowwindow% 
  71.  handle%
  72. !hilowwindow%=handle%
  73. workspace%!0=handle%
  74. workspace%!4=10
  75. workspace%!8=-140
  76. workspace%!12=500
  77. workspace%!16=100
  78. workspace%!20=&2102
  79. ondeck$="deck"
  80.  workspace%!24 (
  81. ondeck$+1):workspace%!28=spritespace%:workspace%!32=(
  82. ondeck$+1)
  83. $(workspace%!24)=ondeck$
  84.  "Wimp_CreateIcon",,workspace% 
  85.  deckicon%
  86. cash%=2
  87. playerwin%=5
  88. playerscore%=0
  89. computerscore%=0
  90. cashpot=100
  91. cash_icon
  92.  C%=1 
  93.  13:X%+=1:
  94.  V%=0 
  95.  12:card%(C%+V%)=V%+1:suit%(C%+V%)=X%:
  96. shuffle
  97. thiscard%=-1
  98. lastcard%=-1
  99. dealsetup
  100. SWIconversions
  101.  "OS_SWINumberFromString",,"OS_SWINumberFromString" 
  102.  OS_SWINumberFromString
  103.  OS_SWINumberFromString,,"Wimp_ReportError" 
  104.  Wimp_ReportError
  105.  OS_SWINumberFromString,,"Wimp_Poll" 
  106.  Wimp_Poll
  107.  OS_SWINumberFromString,,"OS_SpriteOp" 
  108.  OS_SpriteOp
  109.  OS_SWINumberFromString,,"Wimp_ProcessKey" 
  110.  Wimp_ProcessKey
  111.  OS_SWINumberFromString,,"Wimp_ForceRedraw" 
  112.  Wimp_ForceRedraw
  113.  OS_SWINumberFromString,,"Wimp_GetIconState" 
  114.  Wimp_GetIconState
  115.  OS_SWINumberFromString,,"Wimp_SetIconState" 
  116.  Wimp_SetIconState
  117.  OS_SWINumberFromString,,"Wimp_SetCaretPosition" 
  118.  Wimp_SetCaretPosition
  119. quitmenu
  120.  workspace%!12<>-2 
  121. X%=!workspace%-64
  122. $menuspace%="High/Low"
  123. menuspace%?12=7
  124. menuspace%?13=2
  125. menuspace%?14=7
  126. menuspace%?15=0
  127. menuspace%!16=140
  128. menuspace%!20=40
  129. menuspace%!24=8
  130. menuspace%?28=&80
  131. menuspace%?29=0
  132. menuspace%?30=0
  133. menuspace%?31=0
  134. menuspace%!32=-1
  135. x3menuspace%!36=%00000111000000000011000000011001
  136. y!$(menuspace%+40)="Quit"+
  137.  "Wimp_CreateMenu",,menuspace%,X%,180
  138. menuchoice
  139.  !workspace%=0 
  140.  ending%=
  141. selects
  142.  workspace%!12=-2 
  143. openwindow:
  144. X%=workspace%!16
  145. keyspressed("H")
  146. keyspressed("L")
  147. openwindow
  148.  "Wimp_GetWindowState",,hilowwindow%
  149. hilowwindow%!28=-1
  150.  "Wimp_OpenWindow",,hilowwindow%
  151. keyspressed(key$)
  152.  key$ 
  153. (13):
  154.  Wimp_SetCaretPosition,-1
  155.  "H","h":
  156. dealcard:
  157.  thiscard%<lastcard% 
  158.  thiscard%<>1 
  159.  lastcard%<>1 
  160. endhand(
  161.  "L","l":
  162. dealcard:
  163.  thiscard%>lastcard% 
  164.  thiscard%<>1 
  165.  lastcard%<>1 
  166. endhand(
  167.  Wimp_ProcessKey,workspace%!24
  168.  deckindex%=5 
  169. endhand(
  170. icon_update(X%,message$)
  171. icon_info(X%)
  172.  indirected% 
  173. /buffer%=workspace%!28:length%=workspace%!36
  174. !$buffer%=
  175. message$,length%-1)
  176. workspace%!8=0
  177. workspace%!12=0
  178.  Wimp_SetIconState,,workspace%
  179. icon_info(X%)
  180. workspace%!0=hilowwindow%!0
  181. workspace%!4=X%
  182.  Wimp_GetIconState,,workspace%
  183.  ((workspace%!24) 
  184.  %100000000)>0 
  185.  indirected%=
  186. :text$=$workspace%!28 
  187.  indirected%=
  188. :text$=$(workspace%+28)
  189. load_template
  190.  "Wimp_OpenTemplate",,"<High/Low>.HiLowTemp"
  191.  "Wimp_LoadTemplate",,hilowwindow%,hilowindirect%,hilowindirect%+99,-1,"HighLow",0
  192.  "Wimp_CloseTemplate"
  193. cash_icon
  194. icon_update(cash%,"
  195. (cashpot))
  196. shuffle
  197.  Q%=1 
  198. (5)+13
  199.  C%=1 
  200. (52):Y%=
  201.  card%(X%),card%(Y%)
  202.  suit%(X%),suit%(Y%)
  203. dealcard
  204. cardindex%+=1
  205.  card%(cardindex%) 
  206.  1:S$="cardfront":D$="A"
  207.  11:S$="cardjack":D$=""
  208.  12:S$="cardqueen":D$=""
  209.  13:S$="cardking":D$=""
  210. *S$="cardfront":D$=
  211. (card%(cardindex%))
  212.  suit%(cardindex%) 
  213.  1:T$="diamond"
  214.  2:T$="club"
  215.  3:T$="heart"
  216.  4:T$="spade"
  217. lastcard%=thiscard%
  218. thiscard%=card%(cardindex%)
  219. displaycard
  220. dealsetup
  221. shuffle
  222. !deckindex%=0:cardindex%=
  223.  D%=0 
  224.  D%=0 
  225. dealcard 
  226.  S$="cardback":T$="":D$="":
  227. displaycard
  228. deckindex%=1
  229. displaycard
  230. X%=10+deckindex%*95:Y%=5
  231.  OS_SpriteOp,256+60,spritespace%,"deck" 
  232.  R0,R1,R2,R3
  233.  OS_SpriteOp,256+34,spritespace%,S$,X%,Y%,8
  234.  T$<>"" 
  235.  OS_SpriteOp,256+34,spritespace%,T$,X%+10,Y%+85,8
  236.  OS_SpriteOp,256+34,spritespace%,T$,X%+60,Y%+15,8
  237.  D$<>"" 
  238.  X%+35,Y%+75:
  239.  OS_SpriteOp,R0,R1,R2,R3
  240. M!workspace%=handle%:workspace%!4=deckicon%:workspace%!8=0:workspace%!12=0
  241.  Wimp_SetIconState,,workspace%
  242. deckindex%+=1
  243. endhand(win%)
  244.  win% 
  245. ecashpot+=15:
  246.  cashpot>=200 
  247.  playerscore%+=1:
  248. icon_update(playerwin%,
  249. (playerscore%)):cashpot=100
  250. mcashpot-=10:
  251.  cashpot<=0 
  252.  computerscore%+=1:
  253. icon_update(playerwin%+1,
  254. (computerscore%)):cashpot=100
  255.  T%=1 
  256.  50000:
  257. cash_icon
  258. dealsetup
  259.