This disclosure is generally related to gaming, and particularly but not exclusively, relates to card games, such as blackjack.
Card games are a well-known form of recreation and entertainment. Games are typically played with one or more decks of cards, where each deck typically includes 52 cards. Each deck of cards will typically include four suits of cards, including: hearts, diamonds, clubs, and spades, each suit including fourteen cards having rank: 2-10, Jack, Queen, King and Ace. Card games may, or may not, include wagering based on the game's outcome.
One popular card game is known as blackjack. In blackjack, one or more players each compete against a dealer. The players attempt to collect a hand having a total value equal to, or as close to twenty-one, without going over. The value of the hand is determined by the rank of the card. Thus, cards having rank 2-10 have the value 2-10, respectively. Face cards (i.e., Jack, Queen, King) have the value 10, while Aces can have the value 1 or 10 at the player's discretion. An initial hand of two cards having the value of twenty-one (i.e., an Ace plus a ten or a face card) is referred to as a natural “21”, or blackjack, and beats other hands with the value of twenty-one. Suits have no bearing on the game of blackjack.
In blackjack, the dealer will initially deal two cards to each of the players and the dealer. The dealer deals in two passes around the table, starting with players at the dealer's far left (i.e., first base) and extending through players at the dealer's far right (i.e., third base) and finally to the dealer. The players' cards are dealt face up in games where the cards are dealt from a shoe, and face down in hand-held games (i.e., games dealt by hand). The rules of play for the dealer are strictly dictated, leaving no decisions up to the dealer. Therefore, there is not a problem with the dealer, or any of the other players at the table, seeing the cards in a player's hand.
The dealer turns over or is dealt one of the dealer's first two cards face up, such that the value of the card is visible to the players at the table. This card is commonly referred to as the “top” card. The dealer leaves or is dealt the second card face down, such that the value of the card is not visible to the players at the table. The face down card is commonly referred to as the “hole” card. In some variations of blackjack, the dealer will immediately determine the value of the hole card, while in other variations of the game the dealer waits until all players have played their hands before checking the value of the hole card.
The dealer then offers each player in succession, from the dealer's left to right the opportunity to accept additional cards from the deck. Each player's hand is completed before the dealer offers the next player the opportunity to receive additional cards. Accepting cards is commonly referred to as “hitting” or taking a “hit.” At each player's turn, the player may accept cards, one at a time, trying to build a hand with a value as close to twenty-one as possible, without going over twenty-one. The player may decline further cards at anytime, which is commonly referred to as “standing.” The player must terminate play if the value of the player's hand exceeds twenty-one. A hand with a value exceeding twenty-one is commonly referred to as a “bust” or “busted.” If the player busts, or has a natural twenty-one (i.e., blackjack), the dealer must complete the player's hand and place that player's cards into a discard holder. Before receiving a third card after the initial hands are dealt, a player can split the player's initial hand. This is commonly referred to as “splitting.” The player uses one of the initial cards to form a new hand, placing a wager for the new hand, and retains the other of the initial cards as a part of the original hand.
After each player in turn has declined to accept further cards, the dealer may accept further cards from the deck, with goal of obtaining a hand having a value as close to twenty-one as possible, without exceeding twenty-one. Casinos have rules based on the value of the dealer's hand that dictate when the dealer must take an additional card from the deck (i.e., hit) and when the player must decline further additional cards (i.e., stand). For example, many casinos require the dealer to stand if the dealer's hand has a value of seventeen or more. Some, casinos permit the dealer to take an additional card if the value of the dealer's hand is a soft seventeen, that is, if the value of the dealer's hand is seventeen by counting an Ace held by the dealer as eleven.
If the dealer busts, players who have not also busted win. If the dealer does not bust, all remaining players and the dealer must display their hands to allow the dealer to compare each of the player's hands to the dealer's hand. Those players having a hand with a higher value than the dealer's hand, and who have not exceed twenty-one win. The winning players are paid based on the size of their wager and the odds. Blackjack includes additional rules such as “doubling down” and “insurance” bets, and other variations that are commonly known by those who play blackjack, and will not be further described in the interest of brevity.
Blackjack is particularly popular in casinos and other gaming establishments. Players wager large sums of money while playing blackjack. Thus, it is important to ensure that those playing the game are not cheating. It is also important to monitor the game in a relatively unobtrusive manner to allow casino customers to feel comfortable in their surroundings.
In one aspect, a method of evaluating card games is provided. The method includes automatically determining a sequence of a set of playing cards in a deck of playing cards, prior to dealing any of the playing cards from the deck in a card game having a plurality of players. For each player, the method generates a plurality of working solutions representing possible outcomes of that player's hand, based at least in part on the determined sequence of the set of playing cards. For each player, the method reduces the plurality of working solutions to a final solution representing a valid outcome of that player's hand, based at least in part on identities of playing cards that have been discarded during the card game.
In the drawings, identical reference numbers identify similar elements or acts. The size and relative positions of elements in the drawings are not necessarily drawn to scale. For example, the shapes of various elements are not drawn to scale, and some of these elements are arbitrarily enlarged and positioned to improve drawing legibility. Further, the particular shapes of elements, as drawn are not intended to convey any information regarding the actual shape of the particular elements, and have been solely selected for their ease and recognition in the drawings.
In the following description, certain specific details are set forth in order to provide a thorough understanding of various embodiments. However, one skilled in the art will understand that the invention may be practiced without these details. In other instances, well-known structures associated with cameras, optics, computers, computer networks, data structures, databases and networks such as the Internet, have not been described in detail to avoid unnecessarily obscuring the descriptions of the embodiments.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Unless the context requires otherwise, throughout the specification and claims which follow, the word “comprise” and variations thereof, such as “comprises” and “comprising” are to be construed in an open, inclusive sense, that is as “including but not limited to.”
As an overview, one embodiment provides a card game evaluation system that can be used to evaluate a card game, such as blackjack. The cards have identifiers thereon that can be read to identify the cards in an initial sequence in a deck, before the cards are dealt to the players. The identity of discarded cards can also be read from the identifiers. In an embodiment, the initial deck sequence, the identity of a dealer's initial hand, and the number of active players are initially determined. Based on this information and based on the rules of the game, the embodiment can create a decision tree having a plurality of possible solutions indicative of how individual player hands may have been played. This creation of the decision tree can be performed without knowing the identity of discarded cards.
Then, the decision tree can be “pruned” or otherwise eliminated of invalid solutions. The pruning and determination of invalid solutions can be based at least in part on the identity of some discarded cards or other known card identities, as well as being based at least in part on the rules of the game, on the possible solutions of other players' hands on which other player hands may depend, and other information. After the decision tree has been pruned, only valid solutions remain, which can be used to validate or otherwise authenticate the results of the round of blackjack.
System Environment
The client computing systems 12 each include a display 20, screen 22, cabinet 24, keyboard 26 and mouse 28. The mouse 28 can have one or more user selectable buttons for interacting with a graphical user interface (“GUI”) displayed on the screen 22. The cabinet 24 includes a slot 30 for receiving computer-readable media, such as a CD-ROM disk 32. Although the computer-readable media is represented as a CD-ROM disk 32, the card game evaluation system 10 can employ other computer-readable media, including but not limited to, floppy disks, tape, flash memory, system memory, and hard drives. The CD-ROM disk 32 can hold software applications discussed in detail below.
The server computing system 14 includes a cabinet 29 having a slot 30 for receiving computer-readable media, such as a CD-ROM disk similar to the CD-ROM disk 32. The server computing system 14 can optionally include a display, screen, keyboard, and/or mouse as described above. The server computing system 14 also includes a server database 34. The server database 34 is shown as being external to the cabinet 29 for ease of representation in the drawings, although in many embodiments the server database 34 can be located within the cabinet 29.
The card hand reader 15 has a slot 19 sized and dimensioned for receiving a hand of cards, such as the dealer's initial hand 21 that includes the face up top card 23 and the face down hole card 25. An indicator light 55 is placed on the card reader 15 such that it is visible to the dealer. As described in detail in commonly assigned U.S. patent application 60/259,658, filed Jan. 4, 2001, and entitled “Method, Apparatus And Article for Verifying Card Games, Such As Blackjack,” the card hand reader 15 is capable of reading an identifier associated with each of the cards 23, 25. The identifier can be encoded, for example, in a machine-readable symbol such as a bar code, or in a magnetic strip, carried by the card 23, 25. The identifier may take the form of a unique identifier, such as a serial number that uniquely identifies each card in the deck of cards, and/or the rank and/or suit of the cards 23, 25. As illustrated, the card hand reader 15 can be directly connected to one of the client computing systems 12, or can be coupled to a client computing system 12 via the network 18.
The card deck reader can take a hand-held form 17A for games dealt by hand, or can take a card shoe form 17B for games dealt from a card shoe. The hand-held card deck reader 17A includes a slot 11 sized and dimensioned to receive one or more decks of playing cards 27. The dealer can insert the deck 27 into the slot 11 prior to beginning a game. The shoe card deck reader 17B contains one or more decks of playing cards 27, and includes a slot 11 sized and dimensioned to allow the dealer to remove one card at a time. The card deck reader 17A, 17B is capable of reading a unique identifier such as a serial number, identifying each card in the deck of cards 27, and/or the rank and suit of the cards in the deck of cards 27. A similar reader is described in commonly assigned patent application Ser. No. 60/130,368 filed Apr. 21, 1999 and Ser. No. 09/474,858 filed Dec. 30, 1999 and entitled “METHOD AND APPARATUS FOR MONITORING CASINO GAMING.” Thus, the sequence of the cards in the deck 27 is known to the card game evaluation system 10 at the start of the game. As illustrated, the card deck reader 17A, 17B can be directly connected to one of the client computing systems 12, or can be coupled to a client computing system 12 via the network 18.
The discard rack 16A, 16B includes a slot 13 for receiving cards collected by the dealer after the hands are completed. The discard rack includes suitable electronics and/or optics for identifying the cards placed in the slot 13, for example by reading a unique identifier such as a serial number or the rank and suit of each card, as described in detail below.
One or more optical reader devices 100 may be present in one embodiment to read the presence of bets on the gaming table. For instance, the optical reader devices 100 can have sufficient fields of view to detect the presence of players' betting chips that have been placed in each player's betting circle on a gaming table (not shown). In an embodiment, the optical reader device 100 is also able to determine the amount of a bet, such as for example, by determining the color of the chips placed in the betting circle and the height of a stack of chips. Moreover, it is noted that by determining the presence of bets at each player position, via use of the optical reader devices 100, the card game evaluation system 10 can determine the number of players present in a round of blackjack. Suitable devices can be employed by the optical reader devices 100 to detect the presence of bets, such as image scanners, infrared detectors, cameras, and so forth.
The network 18 can take the form of any conventional network, such as one or more local area networks (“LANs”), wide area networks (“WANs”), and/or extranets, intranets, the Internet, or other wireless or hardwire network.
Low-Level System
The client computing systems 12 can take any of a variety of forms, such as a micro- or personal computer, a mini-computer, a workstation, or a palm-top or hand-held computing appliance. The processor 36 can take the form of any suitable microprocessor, for example, a PENTIUM II, PENTIUM III, PENTIUM IV, POWER PC 603 or POWER PC 604 processor. The system memory 38 can take the form of random access memory (“RAM”) or other dynamic storage that temporarily stores instructions and data for execution by the processor 36. The fixed persistent memory 40 can take the form of a hard drive or other nonvolatile computer-readable media. The media drive 42 can take the form of a CD-ROM reader, a DVD reader, an optical disk reader, floppy disk reader, or other similar device that reads instructions and/or data from computer-readable media.
While not shown in detail, the server computing system 14 can have a similar structure to the client computing systems 12, as shown in
The computing systems 12, 14 are illustrative of the numerous computing systems suitable for use with various embodiments. Other suitable configurations of computing systems will be readily apparent to one of ordinary skill in the art having the benefit of this disclosure. Other configurations can include additional subsystems, or fewer subsystems, as is suitable for the particular application. For example, a suitable computing system 12, 14 can include more than one processor 36 (i.e., a multiprocessor system) and/or a cache memory. The arrows 52 are illustrative of any interconnection scheme serving to link the subsystems. Other suitable interconnection schemes will be readily apparent to one skilled in the art having the benefit of this disclosure. For example, a local bus could be utilized to connect the processor 36 to the system memory 38 and the display adapter 44.
Discard Card Reader
The machine-readable symbol can be printed on an end 54 of a face 56 of the cards 21 (shown in
A card guide 62 holds the cards 61 and ensures that the cards 61 are properly positioned with respect to a set of reading components, such as electronics and optical components, described below. The card guide 62 includes a card support surface 63. The card support surface 63 is sloped with respect to a base of the discard rack 16 (
The reading electronics and optics can include an optical lens assembly 68, a reflector 69, and an imager 70 aligned along an optical path illustrated by broken line arrow 71. The optical lens assembly 68 can include one or more optical lenses and filters. For example, a 9.9 FL lens assembly available from Sunex Inc., Carlsbad, Calif., part number DSL900, can serve as a suitable optical lens. Also for example, the optical lens assembly 68 can include a narrow band pass filter that passes light having a wavelength of approximately 450 nanometers, while stopping other light, such as light coming directly from an illumination source 72. A suitable filter is available from Edmond Scientific, of Barrington, N.J., as part number 00151-11859.
The imager 70 includes photo-sensitive elements, such as charged-coupled devices (“CCDs”) and suitable electronics for producing a digital representation of a captured image. A CMOS color sensor, such as the CMOS color sensor available from Photobit Corporation, Pasadena, Calif., part number PB300, can serve as a suitable imager 70.
The reflector 69 can be positioned at an angle, such as a 45-degree angle, to the top end wall 66 and the imager 70 to pass an image of the ends 54 of the cards 61 to the imager 70. The discard card reader 60 can include additional optical components, such as reflectors, defractors, splitters, polarizers, filters and lenses, where such would be suitable to the particular application. For example, the discard card reader 60 can include an aperture 73 between the reflector 69 and the top end wall 66, which can improve the field of depth of the imager 70. The optical path 71 is defined by the optical properties and position of the optical components, and thus does not necessarily have to be a straight line. Many of the components can be housed in an arm 74, formed from a pair of molded plastic halves.
The discard card reader 60 includes an illumination system 59 having one or more illumination sources 72 that provide low intensity illumination for the cards 61. The illumination sources 72 can take the form of one or more lamps. The illumination sources 72 produce light suitable to the particular embodiment. For example, the discard card reader 60 can employ illumination sources 72 that produce predominately UV light where the machine-readable symbols are only visible under UV illumination. Suitable lamps can include ultraviolet (“UV”) lamps available from JKL Components Corporation of Pacoima, California, as part number BF350-UV1, having a diameter of 3 millimeters and a length of 50 millimeters. The illumination sources 72 are located proximate the top end wall 66 of the card guide 62. The illumination sources 72 receive power from a high voltage power inverter 75 via a printed circuit board 76 that receives power from a 5V power source 77. A suitable high voltage power inverter is available from JKL Components Corporation as part number BXA 501A.
The discard card reader 60 is coupled to the network 18 or host computer 12 by way of a connector 78, such as a FIREWIRE connector or Universal Serial Bus (“USB”) connector. For example, a FIREWIRE connector available from Molex Electronics, Ltd. of Canada, part number 52462-0611, can serve as a suitable connector 78. The connector 78 can deliver the digital representation of the captured image to the appropriate client computing system 12 for image processing and card validation.
The embodiment shown in
The discard card reader 60 employs an actuator, such as a jack screw or a hydraulic actuator 79, to incrementally move the cards past the field of view of the imager 70. The actuator 79 moves the card support surface 63 to incrementally pass the cards 61 by the aperture 73. The card support surface 63 is slidably mounted with respect to the bottom end wall 64, top end wall 66 and side walls 67. The card support surface 63 can include a number of tabs 80 which fit in grooves 81 formed in the side walls 67 to guide the card support surface 63 as it advances upward and downward in the card guide 62. The tops and bottoms of the grooves can serve as stops to limit the travel of the card support surface 63. The discard card reader 60 can, of course, employ other guide mechanisms, or may function without such a mechanism. While the illustrated embodiment shows the actuator 79 moving the cards 61, other embodiments can move the reflector 69, imager 70, and/or one or more of these components to sweep the field of view of the imager 70 across all of the cards 61 in the card guide 62.
The hydraulic actuator 79 includes a cylinder 82 and piston 83, which is moved relative to the cylinder 82 by controlling the pressure within the cylinder 82 via a reservoir 84, valve 85 and conduit 86. The discard card reader 60 can of course employ other types of actuators 79. The valve 85 is operated by a solenoid 87 that is controlled via a processor, such as a microprocessor 88 mounted on the circuit board 76.
The discard card reader 60 includes one or more position sensors 89 that detect the position of the card support surface 63, the piston 83, or the cards 61 to determine the height of cards in the card guide 62. This allows the microprocessor 88 to activate the solenoid to adjust the level of the card support surface 63 so that the cards are properly positioned with respect to the aperture 73 to be imaged. The position sensors 89 can take the form of optical switches, mechanical switches, or magnetic switches. For example, an optical switch can take the form of a light source, such as a light emitting diode (“LED”), and a light sensor opposed to the light source across the card guide 62. The insertion of the cards 61 between the light source and light sensor interrupts the reception of light by the light sensor, that acts as the switch. Also for example, a conductor mounted on, or forming a part of, the card support surface 63 can contact one of a number of conductors on the side walls 67 to close a circuit, providing an indication of the position of the card support surface 63, and hence the position of the cards 61. Similarly, a magnet mounted on the card support surface 63 or piston 83 can pass one of a number of magnetic sensors such as a reed switch to provide position information to the microprocessor 88.
The discard card reader 60 incrementally reads groups of cards. The microprocessor 88 can be programmed to advance the cards in set increments, for example ¼ inch increments, past the aperture 73. The microprocessor employs the position of the cards 61 as a trigger for advancing the cards. For example, a signal from a single position sensor 89 positioned above the aperture 73 can indicate that there are cards 61 in the card guide 62 that have not been read. The microprocessor 88 advances the cards by activating the solenoid 87 to open and close the value 85 to the reservoir 84, thereby controlling the flow of a fluid, such as air, into the cylinder 82. The discard card reader 60 can employ other methods of positioning the cards, for example turning a jack screw coupled to the card support surface 63.
Magnetic Discard Card Reader
Software
As shown in
The system memory 38 of the client and server computing systems 12, 14 can also include additional communications or networking software (not shown) for wired and/or wireless communications on networks, such as local area networks (“LANs”), wide area networks (“WANs”), or the Internet. For example, the client computing system 12 can include a Web client or browser for communicating across the World Wide Web portion of the Internet using standard protocol (e.g., Transportation Control Protocol/Internet Protocol (“TCP/IP”), User Datagram Protocol (“UDP”)). A number of Web browsers are commercially available, such as NETSCAPE NAVIGATOR from America Online, and INTERNET EXPLORER available from Microsoft of Redmond, Wash. The server computing system 14 can include a Web server, such as any of the many commercially available Web server applications.
The system memory 38 of the client computing system 12 includes instructions and/or data in the form of a decoding application 97 for resolving the digital image into machine-readable symbols and converting the machine-readable symbols into their respective identifiers and/or ranks and suits. Software for resolving digital images into machine-readable symbols and converting the machine-readable symbols into identifiers is commonly known in the automatic data collection (“ADC”) arts. The system can additionally or alternatively include other software for reading and converting other types of identifiers, such a magnetic strips.
The system memory 38 of the client computing system 12 also includes instructions and/or data in the form of an evaluation application 98 for determining the value and/or status of the hand (e.g., blackjack or not). The evaluation application 98 also can authenticate the cards in the hand (i.e., determine that the cards belong to the deck being played), and validate the sequence of the cards comprising the hand with respect to a known sequence of cards for the deck (i.e., no cards missing or inserted).
Overall Method
An embodiment of a technique to evaluate a card game, such as blackjack, using the card evaluation system 10 will now be described. For the sake of simplicity, the rules of blackjack will not be described in detail herein, except when appropriate to further illustrate operation of the embodiment. For further details regarding the game of blackjack and of an embodiment of a technique to evaluate a card game, reference can be made to U.S. patent application Ser. No. 09/790,480, entitled “METHOD, APPARATUS AND ARTICLE FOR EVALUATING CARD GAMES, SUCH AS BLACKJACK,” filed Feb. 21, 2001, and assigned to the same assignee as the present application.
Initially,
Various flowcharts that represent an embodiment of the technique to evaluate the card game will be illustrated and explained next. At least some elements of these flowcharts can be embodied in software, code, or other machine-readable instruction stored on a machine-readable medium. For example, the evaluation application 98 of
The dealer inserts his initial two cards into the card hand reader 15 at a block 906. At a block 908, the card hand reader 15 reads the identities of the dealer's cards. As another piece of input information, the card deck reader 17A or 17B reads the initial deck sequence at a block 910 before the cards are dealt. The number and amount of player wagers may also be scanned or otherwise determined at a block 912, such as via use of the optical reader devices 100.
From knowledge of the dealer's initial hand and of the initial deck sequence, the start location of the cards being played in the round in the initial deck sequence can be determined at a block 914. At a block 916, the number of spots or active player positions is determined. Two techniques may be used alternatively or in combination to determine and confirm this information. First, the number of cards dealt between the dealer's initial cards can be counted, using the information from the initial deck sequence. The number of cards between the dealer's initial hand corresponds to the number of players. Second, the number of scanned wagers also corresponds to the number of players.
At a block 920, an object is populated with new information. In one example embodiment, this object is termed “RoundData” and includes the wager amounts, identification of initial two cards in each active player position, and the maximum number of hit cards. The RoundData object is a tracking object whose values can be continuously updated as the round progresses. The identification of the initial hit cards can be in the form of a numerical index, starting at 0 for example, that corresponds to each card in the initial deck sequence. The maximum number of hit cards per player position includes the maximum theoretical number of hit cards that each player can take to bust. This maximum number can be determined through extrapolation by knowing the initial deck sequence and the number of players.
At a block 918, the number of cards dealt in the previous round is set. That is, since there is knowledge of the first card dealt in the current round, the last card dealt in the previous round can also be determined. Knowing the last card dealt in the previous round, plus the initial deck sequence, allows determination of the number of cards dealt in the previous round. An object, such as one termed “Old RoundData” is updated at a block 922 with the number of cards dealt in the previous round.
At a block 1006, the card game evaluation system 10 “sleeps” at user configurable intervals. If no untracked rounds are detected at a block 1008 (signifying that every round has been tracked or no round has been played), then the sleeping continues, as there are no rounds to evaluate. If there are untracked rounds at the block 1008, then the card game evaluation system “wakes up” and periodically scans the discard reader 60, for instance, at a block 1010 for discarded cards and reads the identities of the cards therein.
At a block 1012, the card game evaluation system 10 determines if the dealer's cards are in the card hand reader 15. More specifically, certain events may have occurred while the dealer cards are still in the reader. For example, a player may have busted or taken even money. If the dealer's cards are in the card hand reader 15, then the card game evaluation system 10 calls a “Check Pre-Dealer Hands” function at a block 1014. The Check Pre-Dealer Hands function will be described in greater detail later.
If no dealer hands are in the card hand reader 15 at the block 1012, then the card game evaluation system 10 calls a “Resolve Busted Hands” function at a block 1016. Since there are cards in the discard reader and as will be described fully below, the Resolve Busted Hands function attempts to determine which hit cards were taken to bust a hand.
At a block 1018, the card game evaluation system 10 calls an “Infer Hands” function. The Infer Hands function examines the information collected thus far and attempts to determine what has occurred with each hand (e.g., attempts to complete each hand), based on the initial deck sequence and the rules of blackjack and without examining the cards in the discard reader 60.
The card game evaluation system 10 then calls a “Parse Round” function at a block 1020. The Parse Round function builds a decision tree and “prunes” the decision tree to arrive at a valid solution for an outcome of each hand. The Infer Hands and Parse Round functions will be described in greater detail later.
If the round is complete at a block 1022, then the data for the round is output at a block 1024. Otherwise, the technique repeats as described above.
If the player has a blackjack at the block 1106, then a block 1110 checks if an insurance opportunity is offered. The RoundData object is updated to mark that particular hand as “blackjack” if the insurance opportunity is not offered at the block 1110, and the Check Pre-Dealer Hands function then continues to evaluate remaining positions at block 1102 and exits at the block 1120 when no more positions remain.
If the insurance opportunity is offered at the block 1110, then the card game evaluation system 10 checks if the dealer has peaked at the hole card at a block 1114. If yes, then the card game evaluation system 10 checks at a block 1118 if the hand is marked as “take even money.” If the hand is not marked as such, then the RoundData object is updated at the block 1112 to mark the hand as blackjack. Else, if the hand is marked as “take even money,” then the card game evaluation system 10 continues to evaluate remaining positions at block 1102 and exits the Check Pre-Dealer Hands function at the block 1120 when no more positions remain. Also, if the dealer has not peaked at the hole card at the block 1114, then the RoundData object is updated to mark the hand as “take even money” at a block 1116, and the Check Pre-Dealer Hands function then continues to evaluate remaining positions at block 1102 and exits at the block 1120 when no more positions remain.
If the hand is marked as busted and not yet completed, then the card game evaluation system 10 determines at a block 1206 whether the index of the first hit card is known. This first hit card index can be obtained from the RoundData object. If the first hit card index is known, the identity of the first hit card index is thus known from the initial deck sequence. From the first hit card index and the initial deck sequence, the RoundData object can be updated at a block 1208 to compute the number of cards needed to bust the hand. For the next hand (i.e., the next player position), the first hit card index can be identified as the next card from the initial deck sequence, and the RoundData object is updated accordingly. The iteration is continued for remaining positions at a block 1202. The maximum number of hit cards is updated in the RoundData object at a block 1210, and the Resolve Busted Hands function exits at a block 1212 after completing analysis of each active player position.
If the first hit card index is not known at the block 1206, then the card game evaluation system 10 checks the discard reader 60 to attempt to locate the hand's initial two cards in the discard sequence at a block 1214, and then adds the adjacent cards from the discard sequence at a block 1216 until the hand busts. It is noted that the adjacent cards will be either before or after the initial cards in the discard sequence, based on whether the game is dealt from a shoe or handheld.
If the hit card sequence cannot be found in the initial deck sequence at a block 1218, then the card game evaluation system 10 does not have sufficient information to complete the hand. The card game evaluation system 10 moves to the next active position at the block 1202.
If the hit card sequence can be found in the initial deck sequence at the block 1218, then the card game evaluation system 10 determines at a block 1220 whether the game is shoe dealt. If dealt from a shoe, then the RoundData object is updated at a block 1222 to add the hit cards to complete the hand (until a bust). The next card in the initial deck sequence corresponds to the first hit card index of the next hand, and the RoundData object is updated accordingly at the block 1222.
If the game is not a shoe dealt game (i.e., is a handheld game) at the block 1220, the card game evaluation system 10 checks for another possible bust sequence with the previous card from the initial deck sequence (if the previous card has not already been used) at a block 1224. The hit cards are added, the hand is completed, and the first hit card index for the next hand is updated in the RoundData object if there was no other possible solution determined at a block 1226. Else, there is another possible solution and insufficient information to determine what happened in the hand. In this case, the RoundData object is updated with the first hit card index for the next hand at a block 1228.
For each active position at a block 1302, the card game evaluation system 10 repeatedly scans until an incomplete hand is detected at a block 1304. If a complete hand is detected at the block 1304, the count of the number of hit cards consumed or dealt is incremented (in the RoundData object) at a block 1306, and the iteration continues for the remaining positions at a block 1302. When no more positions remain, the maximum number of hit cards in the RoundData object is updated at a block 1308.
If an incomplete hand is detected at the block 1304, a block 1310 determines if the hand is a dealer hand. Since the number of hit cards consumed has been tracked at the block 1306 (and therefore the next hit card for the dealer can be determined), since the dealer hand is the last hand in a deck sequence, and since the dealer's play is strictly dictated by the rules of the game, the number of dealer hit cards to reach a hand value of 17 or better can be computed at a block 1312, and the dealer's hand can be completed. Furthermore, the first hit card index for this hand and the number of hit cards dealt in this round can be updated.
If the incomplete hand is determined to not be a dealer hand at the block 1310, the card game evaluation system 10 attempts to find the next hand with a known first hit card index, by counting the number of unassigned hit cards before the next assigned hit card at a block 1314. At a block 1316, the card game evaluation system 10 determines if the incomplete hand cannot split or if the number of unassigned hit cards is less than or equal to 1 (which indicates that the hand cannot split, since 2 hit cards are required for a split). If the hand can split or the number of unassigned hit cards is greater than 1, then there is insufficient information to complete the hand, and the card game evaluation system 10 locates the next hand with a known initial hit card index at a block 1318.
If the conditions are met at the block 1316, however, then the card game evaluation system 10 moves to the next active player position at a block 1320, and determines whether the next active player position corresponds to a dealer hand at a block 1322. If the next active player position does correspond to a dealer hand, then a subroutine A is performed at a block 1324 (explained later).
If the next active position does not correspond to a dealer hand at the block 1322, then a block 1326 determines whether that hand is complete. If complete, a block 1328 determines if the first hit card index is known. If the first hit card index is known, the RoundData object is updated to set the first hit card index for this hand at a block 1330. Additionally if the hand cannot double down or the difference in hit card indices does not equal 1, the cards in the hand are added and the hand is completed. The card game evaluation system 10 then moves to the next hand with a known initial hit card index at the block 1318.
If the first hit card index is not known at the block 1328, then the number of hit cards that went to this hand cannot be determined, and the card game evaluation system 10 moves to the next hand at the block 1318. If the hand is not complete at the block 1326 and if the number of unassigned hit cards equals 0 at a block 1332, then the RoundData object is updated to complete this hand with no hit cards and to set the first hit card index for the next hand. If the number of unassigned hit cards does not equal 0 at the block 1332, then there is insufficient information to complete the hand and the card game evaluation system 10 moves to the next hand at the block 1318.
If the dealer hand is not complete at the block 1402, a block 1408 determines whether the number of hit cards dealt in this round is known. If the number of hit cards in this round is known, it is possible to determine which cards the dealer and the prior player took, since the dealer has to strictly follow the rules of the game. If the number of hit cards is not known, there is insufficient information for the subroutine A to proceed, and it exits at the block 1406.
If the number of hit cards in this round is known at the block 1408, a block 1410 determines whether the hand prior to the dealer's hand is marked as busted. If not marked as busted, the number of bust cards needed for this player and the number of hit cards needed for the dealer are computed at a block 1412. If the number of cards remaining in the round equals the number of player bust cards and the number of dealer hit cards and if all other hand outcomes are known at a block 1414, then the subroutine A exits at the block 1406 since the outcome cannot be determined (e.g., cannot determine whether the player busted or took additional hit cards).
Otherwise, all possible dealer hit card solutions, based on and knowing the last hit card of the round, are computed at a block 1416. If more than 1 dealer hit card solution exists at a block 1418, then the subroutine A exits at the block 1406. Otherwise, the RoundData object is updated at 1420 to add the hit cards to the dealer hand and to mark the player hand as complete. The initial deck start indices are set for the player and dealer hands.
A block 1422 determines whether the player hand cannot double down or whether the number of remaining player hit cards does not equal 1. If these conditions are not met, the subroutine A exits at the block 1406. If these conditions are met, then the RoundData object is updated at a block 1424 to add cards from the initial deck sequence to the player hand and to mark that player hand as complete.
If the player hand is marked as busted, back at the block 1410, then the card game evaluation system 10 computes the number of hit cards for the player hand based on the initial deck start index and the initial deck sequence at a block 1426. The RoundData object is updated at a block 1428 to add hit cards to the player hand and to mark the player hand as complete.
If the dealer must hit at the block 1430, then the card game evaluation system 10 computes the number of hit cards for the dealer hand based on the initial deck start index and the initial deck sequence at a block 1432. The RoundData object is updated at a block 1434 to add hit cards and to complete the dealer hand.
Checkpoints are located at a block 1502, which involves identifying all hands with known initial hit card indices. An initial hit card index is both a starting point and an ending point, in that if a starting point for a hand is known, then the end point from the prior hand will be known (as will be the total number of hit cards dealt in the prior hand, although the assignments of the hit cards to the other hands are not necessarily known). Therefore according to one embodiment, a particular solution in the decision tree is invalid if it takes more or less cards than necessary to make an initial hit card index the starting point—a valid solution confirms that the initial hit card index is the starting point, as the exact number of hit cards of the prior hands were dealt. The checkpoints can be thought of as non-prunable branches of the tree, which in turn have their own branches made up of working solutions, some of which are invalid and are pruned and some of which are valid and become final solutions.
According to one embodiment, the flowchart 1500 includes a plurality of iterative loops. In a first loop 1504, working solutions are iteratively generated for each checkpoint (branch). In a second loop 1506 nested within the first loop 1504, multiple working solutions (branches) are generated for each checkpoint and checked for validity. An object called “WorkingSolution,” for example, is updated at a block 1508 with a working solution for each checkpoint, wherein that working solution is “seeded” with a current player index and a next hit card index (both indexes being contained in the Working Solution object. This procedure creates a new branch in the decision tree, and provides a reference as to where the branch is in the initial deck sequence, which player position is being processed, and operates on the first sub-hand for the player. There is thus initially just one solution.
In the second loop 1506, a block 1508 checks if the current player in the working solution is the dealer. If the current player is the dealer, then the hit cards are added together and the dealer hand is completed at a block 1510. This operation is based in part on knowledge that the dealer needs to follow the rules of the game, such as whether the dealer has to stand or hold at 17, and therefore the next hit card index is known.
At a block 1512, the card game evaluation system 10 determines if the current working solution is a valid solution. An embodiment of a technique to determine validity is illustrated in a flowchart 1900 in
Returning to the flowchart 1500, if the solution was determined to be valid by the flowchart 1900, then the solution (a working solution) is added to a list of final solutions at a block 1514. If invalid, the working solution is discarded at a block 1516, thereby pruning that branch from the decision tree. The flowchart proceeds to analyze the next working solution in the loop at the block 1506.
Back at the block 1508, if the current player in the working solution is not the dealer, then the working solution is updated by recording the next hit card index for the current player at a block 1518. The current player's hand is then resolved at a block 1520.
One sub-hand is processed at a time. If a current sub-hand is already complete at a block 1602, then the working solution is duplicated, the initial hit card index is updated, the current sub-hand index is incremented (since this sub-hand is complete and now the analysis needs to move to the next sub-hand), and the current solution is added to the result list at a block 1604. If the current sub-hand is not complete at the block 1602, then the card game evaluation system 10 locates all candidate positions for the current sub-hand's initial two cards in the discard sequence (from the discard reader 60). For each candidate position in the discard sequence, a subroutine B is performed at a block 1610 to obtain possible working solutions.
An embodiment of the subroutine B from the block 1610 is illustrated in
If the condition at the block 1706 is met, then a block 1708 determines whether the card next to the initial two cards in the discard sequence has been used. If used, then the subroutine B exits at the block 1714. Else, the card next to the initial two cards in the discard sequence is added to the sub-hand and marked as used, and the sub-hand is marked as complete at a block 1710. Also, the next hit card index and the current sub-hand index are incremented in the copy of the working solution. The copy of the working solution is added to the result list in a block 1712.
Back at the block 1704, if the sub-hand is not marked double down, then a block 1716 determines whether the current sub-hand can double down. If yes, then a block 1718 determines whether the next hit card is the same as the card adjacent to the initial two cards in the discard sequence. If the card is the same, then a block 1720 determines whether the card next to the initial two cards in the discard sequence has been used (i.e., whether the card has been previously accounted for in the solution—if previously accounted for, then there is something that is not right). If not used, then the working solution is duplicated at a block 1722. At a block 1724, the card is added to the sub-hand and marked as used, and the sub-hand is marked busted and complete. Also, the next hit card index and current sub-hand index are incremented in the copy of the working solution. The copy of the working solution is added to the result list at a block 1726.
The subroutine B then proceeds to a subroutine C at a block 1728. The subroutine C is also entered if the conditions at the blocks 1716 and 1718 are not met, and if the condition at the block 1720 is met. An embodiment of the subroutine C is shown in
In
At a block 1808, the card game evaluation system 10 determines whether the complete hit card sequence is found next to (above) the two initial cards for the sub-hand and no cards are marked used. If this condition is not met, then the process reverts back to the block 1806 to analyze the next possible total number of hit cards. If the condition is met and the game type is determined to be a hand-held game, a determination is made at a block 1810 whether the current sub-hand is the last sub-hand of the hand.
If the current sub-hand is the last sub-hand, then the working solution is duplicated at a block 1814. At a block 1816, the hit cards are added to the sub-hand and marked as used, and the sub-hand is marked as complete. Also, the next hit card index and the current-sub hand index in the copy of the working solution are incremented. The copy of the working solution is added to the result list at a block 1818, and the process repeats at the block 1806.
Back at the block 1810, if the condition therein is not met, then the hit solution is found at a block 1812. The subroutine C then exits back to the subroutine B of
Back at the block 1804, if the game is hand-held or is not split, an iterative process is performed at a block 1822 for each possible total number of hit cards, wherein a block 1824 determines whether a complete hit card sequence is found next to (above) the two initial hit cards for the sub-hand and no cards are marked used. If these conditions are not met, then the process is repeated for the next possible total number of hit cards at the block 1822. Otherwise, the hit solution is found at the block 1812, and the subroutine C exits at the block 1820 back to the subroutine B of
In
At a block 1738, the card game evaluation system 10 determines whether the sub-hand is marked as busted. If not marked as such, the sub-hand is marked complete with no hit cards, and the current sub-hand index in the copy of the working solution is incremented at a block 1740. The copy of the working solution is added to the result list at a block 1742, and the subroutine B exits at a block 1714 back to the Resolve Hand function of
Back in
At a block 1618, the working solution is duplicated. The next hit card from the initial deck sequence is added to the current sub-hand, and the next hit card index is incremented. The Resolve Hand function is then called internally again at the block 1520 to resolve the sub-hand, and outputs a plurality of working solutions.
At a block 1622, an iterative process is performed for each working solution that is output by the Resolve Hand function. The next card from the initial deck sequence is added to the working solution for the current sub-hand, and the next hit card index is incremented at a block 1624.
The Resolve Hand function is internally called again at the block 1520 to resolve each second sub-hand. An iteration is performed at a block 1626 for each working solution output by the Resolve Hand function, wherein working solutions are added to the result list at a block 1628. When the iterations are complete, the Resolve Hand function exits at the block 1614, having a plurality of solutions in the result list.
Back to the flowchart 1500 of
The current player index is compared to the next checkpoint. If the current player index is past the start of the next checkpoint at a block 1526, then the technique of
Referring back now to
If the current player index is not past the start of the next checkpoint at the block 1526, then the validation technique of
The iteration repeats for the other solutions output by the Resolve Hand function. Other iterations are then performed for each working solution in a checkpoint's tree.
At a block 1540, confusions or other inconsistent results are eliminated from the checkpoint solution list. That is, an input to this function is a list of working solutions, and the function eliminates solutions that are not consistent with the data that was gathered while the round was tracked. Examples of confusion elimination at the block 1540 include, but are not limited to, the following:
Common solutions are found in the checkpoint solution list at a block 1542. At a block 1544, the RoundData object is updated to store the common hand solutions and the initial deck start indices from the checkpoint common solutions. The solutions in the checkpoint solution list are discarded at a block 1546, so as to clear the checkpoint solution list to store solutions for the next checkpoint in the iterative loop.
At a block 1548, a list of final solutions is obtained, and confusions are eliminated therefrom. If the number of resulting final solutions at a block 1550 is equal to 1, then the RoundData object is updated at a block 1552 to set the number of hit cards dealt in the round from the working solution, and the result for the round is copied from the working solution.
If the number of final solutions is greater than 1 at the block 1550, then the common solutions are found in the final solution list at a block 1554. The RoundData object is updated at a block 1556 to store common hand solutions and the initial deck start indices from the final common solutions. The Parse Round function exits at a block 1558, and returns to the flowchart 1000 of
Although specific embodiments and examples are described herein for illustrative purposes, various equivalent modifications can be made without departing from the spirit and scope of the invention, as will be recognized by those skilled in the relevant art. The teachings provided herein can be applied to other systems for evaluating card games, not necessarily the blackjack card evaluation system 10 generally described above. For example, the teachings can employ other networks, such as the World Wide Web portion of the Internet. The various embodiments described above can be combined to provide further embodiments. For example, the illustrated methods can be combined, or performed successively. The illustrated methods can omit some acts, can add other acts, and can execute the acts in a different order than that illustrated to achieve advantages. The teachings of the applications and patents referred to herein are incorporated by reference in their entirety.
These and other changes can be made in light of the above detailed description. In general, in the following claims, the terms used should not be construed to limit the invention to the specific embodiments disclosed in the specification, but should be construed to include all computers, networks and card reading and card evaluation systems that operate in accordance with the claims. Accordingly, the invention is not limited by the disclosure including what is disclosed in the Abstract, but instead its scope is to be determined entirely by the following claims.
All of the above U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications and non-patent publications referred to in this specification and/or listed in the Application Data Sheet, are incorporated herein by reference, in their entirety.