The present invention relates to gambling games More specifically, the present invention is concerned with a gambling game to be played on a personal computer.
Gambling games are conventionally controlled by an operator, such as, for example, a lottery corporation To ensure the integrity of the game and to eliminate any possibility of fraud, the operator foresees every aspect of the game, such as: collecting the wagers, issuing tickets or receipts, executing the draw, paying the winners, etc Examples of such games include: traditional lotteries, instant play lotteries (also called “scratch & win” lotteries), casino games and video lotteries.
The increasing performance and popularity of personal computers have brought new possibilities for gambling games. However, the main issue when using a personal computer for implementing a gambling game is the game integrity. Indeed, since the lottery corporation has no direct control over the hardware and software of the player's personal computer, other means for maintaining game integrity are required.
Solutions to this problem have been proposed by Kaye in two related United States patents both entitled “Personal Computer Lottery Game”: U.S. Pat. No. 5,569,082, issued on Oct. 29, 1996 and U.S. Pat. No. 5,709,603 issued on Jan. 20, 1998. Although these documents disclose the use of a code printed on a lottery ticket to play a lottery game on a personal computer, they do not disclose sufficient means to ensure the integrity of the game.
Another drawback of Kaye's game is that the code only provides information about the outcome of the game. Since all the codes that correspond to a winning outcome are likely to produce an identical game for the player, the player's enjoyment of the game is decreased by the game's predictability.
An object of the present invention is therefore to provide a secure personal computer gambling game.
Another object of the present invention is to provide a personal computer gambling game, wherein the use of a code provides information related to both the outcome and workflow of the game.
More specifically, in accordance with the present invention, there is provided a computer gambling game comprising:
According to another aspect of the present invention, there is providing a method for generating a computer gambling game initiated by an inputted initiator code, comprising:
According to still another aspect of the present invention, there is providing a method for playing a computer gambling game comprising:
acquiring a computer program that provides a plurality of sequences of game states; each of the sequences of game states leading to a predetermined game outcome; at least one of the game outcomes corresponding to gains;
acquiring an initiator code corresponding to one of the sequences of game states;
installing the computer program on a personal computer;
running the computer program; and
inputting the initiator code in the computer program; the computer program using the initiator code to select one of the sequences of game states that corresponds to the initiator code; said computer program executing the selected sequence of game states to yield a corresponding game outcome.
Other objects, advantages and features of the present invention will become more apparent upon reading of the following non restrictive description of preferred embodiments thereof, given by way of example only with reference to the accompanying drawings.
In the appended drawings:
According to the present invention, there is provided a gambling game to be played on a personal computer. In order to play the computer gambling game of the present invention, the player must first acquire an initiator code and a computer program that embodies the computer gambling game. The initiator code is required by the computer program to play the game and provides information on both the outcome of the game and its workflow.
More specifically, the computer program (hereinbelow also referred to as “computer game”) is optionally interactive and provides the player with a sequence of game states. The sequence of game states (also referred to as the “workflow”) is a series of states that are computed by the computer game according to the initiator code and the choices of the player. This sequence leads the player from the beginning of the game to its final outcome, also set by the initiator code.
A lottery based on a computer gambling game according to the present invention allows the operator to control the number and nature of gains by issuing the adequate initiator codes. The present invention advantageously allows the implementation of numerous gambling games to be played on a personal computer, without any prejudice to the integrity of the games.
As it is believed obvious to someone of ordinary skills in the art, the present computer gambling game, like any lottery, cannot be generated without first establishing certain parameters such as, for example, the number of initiator codes (or games) to be sold and the number and nature of the game outcomes (gains). These parameters are set in step 100 and stored in a computer-readable parameters database.
Step 100 also includes the overall design and programming parameters of the computer program that embodies the game. The computer game can take many forms, such as, for example, arcade games, adventure games and conventional casino simulation games. The computer game must be so programmed as to accept a set of parameters that will allow a plurality of sequences of states for each game played. This diversity is advantageous to keep the player's interest from game to game, and to eliminate the chance of the player guessing the final outcome of the game. To achieve this objective, the invention provides a computer game engine, i.e. a part of the computer program that is responsible for the linking of the game states, that is based on a pseudo-random generator. Starting with a game seed, indirectly obtained from the initiator code, as will be detailed later, the game engine generates a sequence of pseudo-random values that are then interpreted against the parameters of the game to output each state of the game.
Other characteristics and functions of the computer program that embodies the game will become apparent upon reading the following description.
In step 102, game seeds are randomly generated using traditional programming methods and fed to the computer game engine.
For each seed fed to the computer game engine, a simulated sequence of game states is produced. Each result obtained is then compared to the parameters predetermined in step 100.
Each time the outcome and the sequence of game states correspond to a desired value in the parameters database, the corresponding game seed-outcome pair is stored in a computer-readable seeds database (step 104).
When all the required game seeds, as specified by the parameters predetermined in step 100, have been generated and stored in the seeds database, the game seed-outcome pair are shuffled and stored, as entries, in a look-up table (step 106). The shuffling of the seed-outcome pairs prevents any individual, even someone familiar with the details of step 102, to figure out the sequence of seeds in the table. Alternatively, a binary value identifying the gains that correspond to each outcome can be stored in the look-up table instead of the explicit description of the outcome. This will save space in the table.
It is to be noted that the storing of the outcome in the look-up table is optional. However, as will be explained hereinbelow, the presence of the outcome in the look-up table will provide an additional way of increasing the integrity of the game.
Optionally, false entries, in the form of randomly generated strings of bits, can be inserted in the look-up table (step 108) to increase its protection against decoding by an individual trying to obtain the valid content of the table. This kind of attack would have for objective to obtain valid game seeds to play for free, which could be considered a major commercial drawback for the game even though no fraud is actually committed. As will become more apparent with the other protection measures described later, it is an objective of the invention to provide protection against computer hacking.
In step 110, a bootstrap generation technique and a one way algorithm are used to find a bootstrap for each valid game seed-outcome pair in the look-up table. Bootstraps are values that, when fed to a one way algorithm, will yield an index value, i.e. the relative position of a game seed-outcome pair entry in the look-up table generated in steps 106 to 108. One way algorithms are well known in the art and are characterized by the fact that their operation is not reversible, i.e. there is no deterministic procedure to obtain the source values from the results of the operation. In the context of the present invention, this means that there is no way to compute a bootstrap value from its corresponding index value.
The well documented field of modern cryptography provides numerous examples of one way algorithm that can be used to compute the index value from a bootstrap, and thus these techniques will not be described here in more detail. However the selection of a bootstrap for each index value in the look-up table requires a generation technique that will now be described. The technique, based on the simple mathematical operation called “Exclusive OR”, is both efficient and easy to program. With the proposed technique, the index value is obtained by applying an “Exclusive OR” between two parts of the bootstrap, with each part being, for example, of a length twice the length of the index value. To generate a bootstrap that will yield the index after applying the “Exclusive OR” to its two parts, a random number generator is used. The first half of the bootstrap is a binary sequence generated randomly. To obtain the second half of the bootstrap, the first half is “Exclusive OR” with the index value itself. Because of the special properties of the “Exclusive OR”, this will guarantee that the “Exclusive OR” of the two halves of the obtained bootstrap will produce the index value. And because more than one combination of two bootstrap halves could yield to the same index value, the number of combinations being depended of the length of the index value, there is no way to reverse the operation from the index value to the chosen bootstrap.
In order for the computer game to recognize the bootstrap that was selected for each index value in step 110, these bootstraps are stored with each corresponding entry in the look-up table. One skilled in the art will recognize that someone trying to guess a bootstrap for an index value will have to process by trial and error since only the pre-determined bootstrap value will be accepted by the computer game at playing time. One well versed in the art will also recognize that the chances of discovering a pre-determined bootstrap will decrease significantly as the length of the index value increases, and thus as the number of entries in the look-up table increases.
In step 112, initiator codes are generated. Each initiator code is in fact the conversion in readable format, such as, for example symbols, of the bootstrap for each valid entry in the look-up tables.
The symbols used to code the initiator code from the bootstraps may take many forms, including characters, letters, shapes, etc. Of course, the type of symbols used may vary from a computer game to another and may also depend on the position of the symbol itself in the code. This variety in the coding will render difficult the conversion from a bootstrap value that have been guessed by a player to a valid initiator code.
In step 114, a control number is generated for each valid entry in the look-up table that leads to a winning outcome when played. Each control number is generated independently from the initiator code, or any other value corresponding to the same entry in the look-up table. This control number will be used for validation purposes when the winning players claim their gains, and is stored along with the corresponding gain description in an outcome computer-readable database. Step 114 also produces the necessary data that is required to publish and distribute initiator codes to the players.
In step 116, the look-up table content is encrypted to preclude any individual from obtaining information that could allow playing the game for free. The encryption algorithm uses the bootstrap as an encryption key, hence varying the encryption from one entry to another in the look-up table and requiring the predetermined bootstrap of the entry to decrypt it. Known encryption algorithms, such as, for example, DES, could be used to protect the look-up table. However, they might not always be fitted as they impose certain lengths on the operands, the input and the output, and the encryption keys. An easy way to encrypt each entry of the table is to apply an “Exclusive OR” to each bit of the entry with each bit of the results of a one way operation on the bootstrap value. Digital digest algorithms, like MD5 or SHA, applied to the bootstrap provide good one way operation to generate apparently random string of bits. It is well known in the art of cryptography that an “Exclusive OR” with a random string of bits provides a robust method of encryption. Another advantage of this technique is that it can be used for any length the entries in the look-up table might have. To improve the protection, the digital digest algorithm could be applied successively numerous times, each time applying the algorithm on the output of the previous operation, starting with the bootstrap. This would lead to more apparent randomness in the string of bits to “Exclusive OR” with the entry, and significantly increase the time required to decrypt the table by “trial and error”.
Although the above described method allows the lottery operator to generate a look-up table that provides game seed values only by providing the adequate initiator code, other methods can be used to link an initiator code both to the corresponding outcome and workflow, that, without departing from the spirit of the present invention. However, the techniques proposed by the invention takes good care in decreasing the possibilities that initiator codes could be guessed to play for fun. An important corollary of this advantage is that the chances of not detecting a keying error when the player supplies an authorized initiator code are also extremely low, thus reducing the risks of presentation of false outcomes to a legitimate player. This aspect will become more apparent upon reading the following description.
Alternatively, check bits can be added to the game seed values to conventionally provide further integrity and verification means.
Turning now to
Generally stated, the method for playing the computer gambling game consists in the execution of the following steps in sequence:
Each of these steps will now be described in more detail.
To play the computer gambling game, a copy of a computer game must be acquired from the lottery corporation (step 200). The computer game is issued by the lottery corporation in the form of a computer-readable media, such as, for example, a CD-ROM or a floppy disk. The computer program can be purchased via a standard lottery sales network. Alternatively, the computer program can also be given, by the lottery corporation, for example in the form of a computer freeware. indeed, since the sequence of game states and the outcome are determined by the initiator code, the player has to acquire an initiator code to successfully play the game. The operation of a lottery sales network is believed well known in the art and thus will not be described in more detail herein.
It is to be noted that the computer program that embodies the game can alternatively be distributed via a public computer network, such as, for example, the Internet or via a private dedicated computer network. The computer program can also be remotely executed via such a computer network. In other words, the nature of the medium used to store and/or distribute the computer game is not relevant to the present invention.
In the case of the distribution of the computer program via a computer readable media, the integrity of the distribution process may be increased by advantageously incorporating a check value that the computer program will verify before proceeding with the execution of the game.
As discussed hereinabove, look-up table may be included on the computer program or can be provided independently of the computer-readable media, for example through a computer network, such as, for example, the Internet. For concision and clarity purposes, the expression “computer program” will now include both the computer program and the look-up table.
The next step is to install the computer game on a personal computer (step 202). The personal computer (not shown) conventionally includes a central processing unit, input devices, such as, for example a mouse and a keyboard, an output device in the form of a display monitor, a storing device, for example in the form of a CD-ROM drive and optionally networking means that allows the personal computer to be connected to a computer network, such as, for example, the Internet.
This description does not limit the types and configuration of hardware and software used for playing the computer gambling game herein described. It is believed within the reach of someone skilled in the art to configure and/or program, well know devices and system such as, for example, WebTV™, laptop computers, network computers, PDA (Personal Digital Assistants), public access terminals and cellular phones, in order to play the computer gambling game according to the present invention.
It is to be noted that steps 200 and 202 can be advantageously performed altogether within a single operation if the computer program is downloaded from a computer network.
Among the installation parameters, the player may optionally be offered to install an access control routine to limit the access of the computer gambling game. This routine could, for example, prompt the player to enter an additional access code to play the computer game. This access code may then prevent other family members, such as, for example, children, to play the game.
The installation of a computer program on a personal computer is believed well known and will not be further described herein.
The acquisition of an initiator code by the player (step 204) may be done any time before step 206, which is the actual initialization of the computer game, as will be described in more detail below.
According to a first embodiment of the method for playing the computer gambling game, the initiator code is purchased in the form of an instant play lottery ticket 300 (
The computer program and an instant play lottery ticket can either be acquired together or separately without departing from the spirit of the present invention. Since the workflow, outcome and gains advantageously vary according to the initiator code provided on the instant play lottery ticket, supplemental lottery tickets may be purchased by the players who already own or have access to the computer game.
Turning now to
As can be seen in
As can be seen in
The bar code 304 and validation code present in the validation zone 306 are related to one of the control numbers generated in step 114 and thus uniquely identify the ticket 300.
While the bar code 304 is normally used to validate the outcome claimed by the player by using a conventional validation machine in connection with the lottery corporation databanks (step 210,
The general configuration of lottery tickets and the use of bar codes and validation numbers are believed well known in the art and will therefore not be described in more detail herein.
Turning now to
As can be seen in
More specifically, the computer program first prompts the player to enter the symbols 320. Then, the computer game asks the user to scratch a portion of the latex coating of the code zone 314 to reveal one of the secondary codes 322. This number is entered into the computer program and compared with an expected value computed from the initiator code 320. If the two values match, the validation process is carried out. If not, the program stops. These supplemental numbers 322 are therefore advantageous since they make it more difficult to tabulate and distribute winning initiator codes so that players who want to play the computer gambling games only for fun without any gambling may do so. Indeed, since the computer game does not always ask for the same number, such a tabulation of winning outcomes would require the initiator code 320 and all the secondary codes 322.
Furthermore, the use of a plurality of code zones decreases the possibility of discovery by chance of an additional valid initiator code.
The minimum length of the initiator codes depends on the maximum number of initiator codes to be sold. For example, if the initiator codes are represented by 3 letters, only 17576 (26*26*26) different codes can be generated Alternatively, the same initiator code may be issued more than once. Evidently, two tickets having the same initiator code will provide the same outcome and the same sequence of game states, as discussed above.
The ticket surface may conventionally contain printed pictures or designs representing the game concept and thus allowing easy recognition of the gambling game while reducing the risk of fraud and error.
It is to be noted that each bar code (304 and 316) corresponds to a unique control number. However, as will now appear obvious to a person skilled in the art, one cannot obtain the initiator code or the game seed-outcome pair by knowing the control number since they are randomly associated by the process of step 114 (
Returning to
Step 206 includes the substeps of executing the computer program, providing the initiator code to the computer program, verifying the initiator code and searching the corresponding game seed-outcome pair in its look-up table.
More precisely, the player conventionally executes the computer program on a personal computer. The computer program then advantageously verifies the integrity of parameters, such as, for example, the look-up table.
The computer program then prompts the player to take the lottery ticket 300, to scratch the latex coating of the initiator code zone 302 and to enter the initiator code 308, using a conventional computer input means, such as, for example, a keyboard.
Then, the following substeps are performed by the computer game without notifying the player.
The symbols of the initiator code are converted into a bootstrap value which is a binary code as explained in step 112, FIG. 1. The resulting binary code may optionally include additional check bits to ensure that the code has been properly entered.
The bootstrap is then used by the computer program to compute the corresponding look-up table index, as described in step 110,
If the ticket bootstrap values and the index bootstrap values do not correspond, the computer program prompts the player to input the initiator code one more time according to the process discussed hereinabove. This prompt to the player will advantageously not give any indications of which symbols provided by the player are not part of the initiator code. Again, this shall help prevent the user from finding a valid initiator code by a trial and error process.
It is to be noted that an incorrect initiator code value, wrongly provided by the player or entered randomly for guessing purposes, will always produce an existing look-up table index value. The probability that the bootstrap value stored in the pointed look-up table entry (or randomly generated for invalid entries) corresponds to the bootstrap value of the initiator code depends on many factors, such as, for example, the algorithms used in steps 110 to 116 of the computer gambling game generation method of
An optional substep may be added in the initialization step 206, before the playing of the game. Indeed, the game may be simulated by the computer program to ensure that the game seed will correctly lead to the outcome optionally stored in the look-up table in step 104. The simulation will be done without displaying any of the usual graphical and sound references that come with most computer games. Conventional personal computers are believed powerful enough to perform such simulation in a relatively short time to thereby be transparent to the player. If the outcome of the simulated game does not correspond to the pre-defined outcome found in the look-up table entry, the computer program will consider the initiator code invalid and will prompt the player to re-enter the correct initiator code symbols.
In step 208, the computer program initiates the computer game by taking the game seed found in the just validated look-up table entry as a starting value for the computer game engine. As discussed earlier, this starting value will lead to the outcome that was stored with the game seed in the look-up table since this seed value was selected to correspond to the desired outcome in step 102.
Starting with the game seed, the computer program provides the player with the sequence of game states that will lead to the desired outcome. Depending on the computer game programmed, the player may interact with the computer game without changing the outcome. This is advantageous since it can simulate user's control over the game states even though the outcome is predetermined by the operator of the lottery.
At the end of the game (i.e. all the game states have been played by the computer program), the computer program indicates to the player the outcome of the game and optionally the gains that the player wins. The gains may take many forms, such as, for example, money, free initiator codes or extended play of the computer game. If the winning outcome corresponds to monetary gains, the computer program indicates to the player that the lottery ticket 300 must be conventionally validated in order to obtain the monetary gains.
To validate the winning outcome of the game (step 210), the player brings his instant play lottery ticket 300 to a lottery selling booth which is part of the lottery corporation network, such as, for example, a retail store that has been authorized by the lottery corporation to sell and validate lottery tickets. To validate the monetary gains claimed by the player, the instant play lottery ticket 300 is inserted in a validation terminal that reads the bar code 304. The validation terminal is remotely connected to the lottery corporation validation system. The bar code 304 on the instant play lottery ticket 300 is decoded in a binary value corresponding to the control number and is compared to the entries in the gains databases generated in step 114.
Alternatively, the latex coating of the validation zone 306 may be removed to reveal the validation code to determine if the ticket is a winner. In that case, the lottery ticket may be sent to the lottery corporation for later verification.
If the instant play lottery ticket 300 does not correspond to a winning outcome or if the bar code 304 is invalid or if the gains corresponding to the instant play lottery ticket 300 have already been claimed, a corresponding message is provided via the validation terminal.
If the lottery ticket corresponds to a winning outcome, the corresponding entry in the gains databases is marked as paid. This standard procedure prevents the lottery corporation from paying more than once for a winning ticket.
Configurations and operations of validation terminals and systems are believed well known to someone skilled in the art and thus will not be described in more detail herein.
A method for playing the computer gambling game according to a second embodiment of the present invention will now be described. Since this second embodiment is very similar to the first embodiment, only the differences therebetween will be described hereinafter.
The differences between the first and second embodiments are related to the acquisition of an initiator code (step 204) and the validation of the outcome of the computer game (step 210).
More specifically, according to the second embodiment of a method for playing the computer gambling game, the player purchases the initiator code first by creating an account on a computer network lottery site, such as, for example, the internet, and secondly, by downloading the bootstrap in the form of a binary code directly from the lottery site to his personal computer. Since, according to the second embodiment, bootstraps are read directly by the computer program, the conversion from a readable initiator code is not required.
The connection is preferably initiated by the computer program that has been advantageously provided with additional routines to execute the connection to the computer network and download automatically the computer game.
The computer program may either prompt the player to enter the information relative to the player's account or automatically send to the computer network this information that could have been previously entered into the computer.
The bootstrap is securely written on the client account file to provide a valid proof of purchase and game integrity. This account file would be made available to the player. Played bootstraps could optionally be marked in the database if the lottery operator must control winnings against published probabilities for the game.
According to this second embodiment, the bootstrap is taken randomly from a computer-readable database created during its computation in step 114,
After the game, the outcome is immediately validated (step 210) and the corresponding gains (if any) are credited on the player's account. It is to be noted that, although the gains can be credited any time after the communication between the player's computer and the lottery site has been initiated, it is advantageous to wait until the end of the game to help keep the player's interest throughout the game. The money won by the player may eventually be used to buy other bootstraps. Different options could be offered to the player to receive his gains.
The confidentiality of the information transferred on computer networks is ensured by incorporating known data encryption methods.
Similarly, methods to credit the player's account through the network are believed well known in the art and therefore will not be described herein.
It is to be noted that the two embodiments of the method of playing the computer gambling game according to the present invention are not mutually excluding. Indeed, some initiator codes may be distributed on instant play lottery tickets, while others may be distributed via the computer network.
As can be seen hereinabove, a computer gambling game according to the present invention provides many possibilities regarding the type of computer game that can be played, without compromising the integrity and control of the lottery corporation that manages such gambling game. The use of a game seed that pre-defines both the outcome and the workflow of the game allows to control the number of wins and their nature. On the other hand, each game seed being determined independently of the number of game seeds or allowable gains, the use of an initiator code to select an independent game seed does not impose any limits on the number and nature of the initiator codes. This is advantageous as the initiator code format must be of a reasonable length since it is provided by the player. The game seed itself can be of any length and format to accommodate any type of game.
An advantage of encoding both the outcome and the workflow through the initiator code is that repeat customers will continue to feel excitement when playing the game since it will be difficult to predict the outcome by the workflow of the game. Indeed, since a particular winning outcome may be reached by many different game seed-outcome pairs by repeating the method of
Furthermore, preferred embodiments of the present invention include many features to help prevent fraud, errors, disputes and playing for fun, which could greatly impact the commercial aspect of the game. Examples of such features include:
Moreover, preferred embodiments of the present invention present many advantages over the prior-art, including:
Although the present invention has been described hereinabove by way of preferred embodiments thereof, it can be modified, without departing from the spirit and nature of the subject invention as defined in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2258809 | Dec 1998 | CA | national |
This is a continuation of international application Ser. No. PCT/CA99/01228, filed Dec. 20, 1999, the entire disclosure of which is hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
4332389 | Loyd, Jr. et al. | Jun 1982 | A |
4582324 | Koza et al. | Apr 1986 | A |
4815741 | Small | Mar 1989 | A |
4937853 | Brule et al. | Jun 1990 | A |
4996705 | Entenmann et al. | Feb 1991 | A |
5110129 | Alvarez | May 1992 | A |
5212368 | Hara | May 1993 | A |
5231568 | Cohen et al. | Jul 1993 | A |
5327485 | Leaden | Jul 1994 | A |
5342047 | Heidel et al. | Aug 1994 | A |
5346258 | Behm et al. | Sep 1994 | A |
5377975 | Clapper, Jr. | Jan 1995 | A |
5532046 | Rich et al. | Jul 1996 | A |
5569082 | Kaye | Oct 1996 | A |
5569512 | Brawner et al. | Oct 1996 | A |
5595538 | Haste, III | Jan 1997 | A |
5628684 | Bouedec | May 1997 | A |
5709603 | Kaye | Jan 1998 | A |
5779545 | Berg et al. | Jul 1998 | A |
5791990 | Schroeder et al. | Aug 1998 | A |
5805784 | Crawford | Sep 1998 | A |
5816918 | Kelly et al. | Oct 1998 | A |
5816919 | Scagnelli et al. | Oct 1998 | A |
20040166942 | Muir | Aug 2004 | A1 |
Number | Date | Country |
---|---|---|
9631832 | Oct 1996 | WO |
9702073 | Jan 1997 | WO |
9856474 | Dec 1998 | WO |
Number | Date | Country | |
---|---|---|---|
20020090986 A1 | Jul 2002 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CA99/01228 | Dec 1999 | US |
Child | 09891875 | US |