home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / zip / portfoli / pbas41.lzh / reddog.bas < prev    next >
BASIC Source File  |  1990-11-25  |  6KB  |  178 lines

  1. cls:print:print
  2. print "           LAS VEGAS RED DOG"
  3. rem Adapted by Mark Damron
  4. rem from ACEY DUCEY in
  5. rem David Ahl's BASIC COMPUTER GAMES
  6. print
  7. print
  8. input "Instructions (y=1, n=0 or <CR>)";try
  9. if try <>0 then try=0:goto 100
  10. cls:goto 105
  11. 100 cls:print "RED DOG is an exciting, fast paced and"
  12. print "easy to play game that is often called"
  13. print "Acey-Ducey or In-Between."
  14. gosub 1100
  15. print "Two cards are dealt face up. If the two"
  16. print "cards are not consecutive or a pair,"
  17. print "the dealer will announce the 'spread',"
  18. print "or number of cards that fall between"
  19. print "the two original cards."
  20. gosub 1100
  21. print "At that point you may raise your bet up"
  22. print "to the amount of your original bet."
  23. gosub 1100
  24. print "The dealer will then turn up a third"
  25. print "card.  You win if the value of this"
  26. print "card is between the values of the"
  27. print "first two cards."
  28. gosub 1100
  29. print "Payoffs are made according to the"
  30. print "number of cards in the spread."
  31. gosub 1100
  32. print "If the spread consists of only one card"
  33. print "the bet pays 5 to 1. For a two card"
  34. print "spread, the bet pays 4 to 1."
  35. gosub 1100
  36. print "For a three card spread, the bet pays"
  37. print "2 to 1. For a spread of between 4 and"
  38. print "11, the payoff is 1 to 1."
  39. gosub 1100
  40. print "If the first two cards are consecutive"
  41. print "the hand is a tie, you do not win or"
  42. print "lose, and the third card is not drawn."
  43. gosub 1100
  44. print "If the first two cards are a pair, you"
  45. print "may not raise your bet.  A third card"
  46. print "is drawn, and, if it makes three of a"
  47. print "kind you win 11 times your bet."
  48. gosub 1100
  49. print "If the card does not make three of a"
  50. print "kind, the hand is a tie and you do not"
  51. print "win or lose."
  52. print:print "To quit input a negative bet."
  53. gosub 1100
  54. rem this is the 6 deck version
  55. 105 dim deck(312)
  56. 110 bank=100
  57. 115 for i=0 to 311:deck(i)=1:next i
  58. count=0:randomize
  59. 260 if count<200 then goto 270
  60. print "Reshuffling":goto 115
  61. 270 locate 1,1 : print "Bank = ";bank : print "Last Bet = ";bet : oldb = bet
  62. print "Press <CR> to use Last Bet"
  63. input "What is your bet";bet
  64. if bet<=bank then goto 280
  65. cls:print "You don't have that much!"
  66. goto 270
  67. 280 cls 
  68. if bet=0 then bet = oldb
  69. if bet<0 then goto 990
  70. gosub 1200:first=card:index=1
  71. gosub 1200:second=card:index=2
  72. third=0
  73. spread=abs(first-second)
  74. rem spread is one more than real spread
  75. if spread >1 then goto 290
  76. gosub 1300
  77. if spread=0 then mult=11:goto 730
  78. if spread=1 then mult=1:print "Tie - consecutive cards.":goto 976
  79. 290 if spread=2 then mult=5
  80. if spread=3 then mult=4
  81. if spread=4 then mult=2
  82. if spread>4 then mult=1
  83. gosub 1300
  84. 700 rem print "You can raise up to your original bet."
  85. locate 7,1:input "Raise bet, 0 or <CR> to not raise"; bet2
  86. if bet2<=bank-bet then goto 710
  87. cls:gosub 1300:print "You don't have that much."
  88. goto 700
  89. 710 if bet2>bet then cls:gosub 1300:goto 700
  90. bet=bet+bet2
  91. 730 gosub 1200:third=card:temp=third
  92. gosub 1300
  93. locate 5,1
  94. rem calculates win or lose
  95. if first<>second then goto 920
  96. if third<>first then print "Tie - non three of a kind.":goto 976
  97. if third<>second then print "Tie - non three of a kind.":goto 976
  98. print "Three of a kind!!":goto 960
  99. 920 if first>second then goto 950
  100. if third<=first then goto 970
  101. if third>=second then goto 970
  102. goto 960
  103. 950 if third>=first then goto 970
  104. if third<=second then goto 970
  105. 960 print "You win!! Pays ";mult*bet;"."
  106. bank=bank+bet*mult:goto 976
  107. 970 print "Sorry, you lose ";bet;".":bank=bank-bet
  108. if bank=0 then goto 980 else goto 976
  109. 976 gosub 1100:goto 260
  110. 980 print "Sorry, you're broke!!"
  111. 990 input "Try again (y=1, n=0 or <CR>)";try
  112. if try<>1 then goto 995
  113. cls:goto 110
  114. 995 cls:print "Thanks for playing!"
  115. if bank<=100 then goto 996
  116. print "You won ";bank-100;" dollars!"
  117. goto 1400
  118. 996 if bank<>100 then goto 997
  119. print "You broke even!":goto 1400
  120. 997 print "You lost ";100-bank;" dollars."
  121. goto 1400
  122. 1000 rem prints card names
  123. on index goto 1010, 1020, 1030
  124. 1010 box 1,25,3,29,0 : locate 2,27
  125. if temp<11 then print temp;:return
  126. if temp=11 then print "J";:return
  127. if temp=12 then print "Q";:return
  128. if temp=13 then print "K";:return
  129. print "A";:return
  130. 1020 box 1,35,3,39,0 : locate 2,37
  131. if temp<11 then print temp;:return
  132. if temp=11 then print "J";:return
  133. if temp=12 then print "Q";:return
  134. if temp=13 then print "K";:return
  135. print "A";:return
  136. 1030 box 4,30,6,34,0 : locate 5,32
  137. if temp<11 then print temp;:return
  138. if temp=11 then print "J";:return
  139. if temp=12 then print "Q";:return
  140. if temp=13 then print "K";:return
  141. print "A";:return
  142. 1100 rem screen display wait
  143. locate 8,1:print "Press any key to continue.";
  144. wait:cls:return
  145. 1200 rem gets card from deck
  146. rem for multiple decks change line 1210 and x, initialization in 115
  147. rem and re-dimension deck() and change reshuffle in line 360
  148. 1210 card=int(6*52*rnd)
  149. if deck(card)=0 then goto 1210
  150. deck(card)=0:count=count+1
  151. rem offset for 2 to ace
  152. card=card+2:suit=1
  153. rem x is (#cards/13) - 1 I think
  154. for x=23 to 1 step -1
  155. if card>13*x+1 then card=card-13:suit=suit+1
  156. next x
  157. rem suit=1,2,3,4==club,diamond,heart,spade
  158. rem suits not used currently
  159. return
  160. 1300 rem print subroutine
  161. rem cls
  162. locate 1,1
  163. if bet<>0 then goto 1310 else print "Bank = ";bank;".":goto 1315
  164. 1310 print "Bank = "; bank : print "Your bet is ";bet;"."
  165. 1315 index=1:temp=first:gosub 1000
  166. index=2:temp=second:gosub 1000
  167. locate 3,1 : print "The spread is"
  168. if spread <2 then goto 1330
  169. if spread>4 then goto 1320
  170. if spread =2 then print "1 card. Pays 5:1.":goto 1330
  171. print spread -1;" cards. Pays ";mult; ":1."
  172. goto 1330
  173. 1320 print "4 to 11 cards. Pays 1:1."
  174. 1330 if third=0 then goto 1390
  175. index=3:temp=third:gosub 1000
  176. 1390 return
  177. 1400 print "Hope you had fun!":end
  178. ə