Basic Computer Games Small Basic Edition > Acey Ducey

 This is a simulation of the Acey Ducey card game. In the game, the dealer (the computer) deals two cards face up. You have an option to bet or not to bet depending on whether or not you feel the next card dealt will have a value between the first two. Your initial money (Q) is set to \$100; you may alter the line setting Q to 100 if you want to start with more or less than \$100. The game keeps going on until you lose all your money or interrupt the program. The original program author was Bill Palmby of Prairie View, Illinois. Code Listing (Small Basic File: aceyducy.sb): ``TextWindow.CursorLeft = 26 TextWindow.WriteLine("ACEY DUCEY CARD GAME") TextWindow.CursorLeft = 15 TextWindow.WriteLine("BIBLEBYTE BOOKS, MAPLE VALLEY, WASHINGTON") TextWindow.WriteLine("") TextWindow.WriteLine("") TextWindow.WriteLine("ACEY-DUCEY IS PLAYED IN THE FOLLOWING MANNER ") TextWindow.WriteLine("THE DEALER (COMPUTER) DEALS TWO CARDS FACE UP") TextWindow.WriteLine("YOU HAVE AN OPTION TO BET OR NOT BET DEPENDING") TextWindow.WriteLine("ON WHETHER OR NOT YOU FEEL THE CARD WILL HAVE") TextWindow.WriteLine("A VALUE BETWEEN THE FIRST TWO.") TextWindow.WriteLine("IF YOU DO NOT WANT TO BET, INPUT A 0") N=100 LN110: Q=100 LN120: TextWindow.WriteLine("YOU NOW HAVE " + Q +" DOLLARS.") TextWindow.WriteLine("") Goto LN260 LN210: Q=Q+M Goto LN120 LN240: Q=Q-M Goto LN120 LN260: TextWindow.WriteLine("HERE ARE YOUR NEXT TWO CARDS:") LN270: A=Math.GetRandomNumber(14) + 1 If A<2 Then Goto LN270 EndIf If A>14 Then Goto LN270 EndIf LN300: B=Math.GetRandomNumber(14) + 1 If B<2 Then Goto LN300 EndIf If B>14 Then Goto LN300 EndIf If A>=B Then Goto LN270 EndIf If A<11 Then Goto LN400 EndIf If A=11 Then Goto LN420 EndIf If A=12 Then Goto LN440 EndIf If A=13 Then Goto LN460 EndIf If A=14 Then Goto LN480 EndIf LN400: TextWindow.WriteLine(A) Goto LN500 LN420: TextWindow.WriteLine("JACK") Goto LN500 LN440: TextWindow.WriteLine("QUEEN") Goto LN500 LN460: TextWindow.WriteLine("KING") Goto LN500 LN480: TextWindow.WriteLine("ACE") LN500: If B<11 Then Goto LN550 EndIf If B=11 Then Goto LN570 EndIf If B=12 Then Goto LN590 EndIf If B=13 Then Goto LN610 EndIf If B=14 Then Goto LN630 EndIf LN550: TextWindow.WriteLine(B) Goto LN650 LN570: TextWindow.WriteLine("JACK") Goto LN650 LN590: TextWindow.WriteLine("QUEEN") Goto LN650 LN610: TextWindow.WriteLine("KING") Goto LN650 LN630: TextWindow.WriteLine("ACE") TextWindow.WriteLine("") LN650: TextWindow.WriteLine("") TextWindow.Write("WHAT IS YOUR BET ") M = TextWindow.ReadNumber() If M<>0 Then Goto LN680 EndIf TextWindow.WriteLine("CHICKEN!!") TextWindow.WriteLine("") Goto LN260 LN680: If M<=Q Then Goto LN730 EndIf TextWindow.WriteLine("SORRY, MY FRIEND, BUT YOU BET TOO MUCH.") TextWindow.WriteLine("YOU HAVE ONLY "+Q+" DOLLARS TO BET.") Goto LN650 LN730: C=Math.GetRandomNumber(14) + 1 If C<2 Then Goto LN730 EndIf If C>14 Then Goto LN730 EndIf If C<11 Then Goto LN810 EndIf If C=11 Then Goto LN830 EndIf If C=12 Then Goto LN850 EndIf If C=13 Then Goto LN870 EndIf If C=14 Then Goto LN890 EndIf LN810: TextWindow.WriteLine(C) Goto LN910 LN830: TextWindow.WriteLine("JACK") Goto LN910 LN850: TextWindow.WriteLine("QUEEN") Goto LN910 LN870: TextWindow.WriteLine("KING") Goto LN910 LN890: TextWindow.WriteLine("ACE") TextWindow.WriteLine("") LN910: If C>A Then Goto LN930 EndIf Goto LN970 LN930: If C>=B Then Goto LN970 EndIf TextWindow.WriteLine("YOU WIN!!!") Goto LN210 LN970: TextWindow.WriteLine("SORRY, YOU LOSE") If M

Sample Run:

Next Chapter > >