Technical Field
The present invention is directed to a dart game, and more particularly to a dart game with dart hit versus non-dart hit impact discrimination and a software implemented automatic player change feature.
Background of the Invention
Known dart games have included a microprocessor-controlled dart head having a number of scoring segments. Each of the scoring segments is actuatable by an impact thereon to generate a signal. One such known dart game includes software to determine whether an actuated scoring segment represents a stuck segment by determining whether the segment has remained in a continuously actuated state for a given period of time, such as 700-800 msecs. In this dart game, the microcontroller of the dart head transmits to a main microcontroller a code representing the identity of an actuated segment and an indication of whether the actuated segment is a stuck segment or not. The main microcontroller is then responsive to the information transmitted from the dart head microcontroller for controlling the scoring of the dart game. This known dart game also includes a missed dart detector switch mounted on the dart head. The missed dart detector is responsive to vibration of the dart head by a dart that does not hit a scoring segment, but causes an impact on or vibration of the dart head. The dart head microcontroller is responsive to the actuation of the missed dart detector to transmit a code representing a missed dart, i.e., a dart that is thrown but has missed hitting a scoring segment, to the main microcontroller. The main microcontroller of the dart game is responsive to a total of three dart hits and/or missed darts to transmit a signal to light a player change lamp in order to provide an indication to the players that it is the next player's turn. In order to proceed with the game, a player has to manually actuate a player change switch mounted on the housing of the dart game. In response to the actuation of the player change switch, the game is not responsive to impacts on the dart head for a period of six seconds, for example, to enable the player to remove his darts from the dart head without causing a dart hit to be recognized by the game. After this time period expires, the main microprocessor controller causes a "throw dart" lamp to be lit to indicate that it is ready to score the next player's dart hits.
Other known dart games have included an infrared sensor or the like to detect the proximity of a player to the dart head. Such dart games are responsive to a player's proximity to the game as detected by the sensor by ignoring impacts on the dart head, the game assuming that any impacts which occur during the time that a player is detected in proximity to the sensor are the result of a player removing his darts from the dart head. These known dart games are also responsive to the player proximity sensor to effect an automatic player change feature. Although these games do not require a player to manually actuate a switch in order for the game to recognize a change in the player throwing the darts, the operation of this type of automatic player change feature has been found to malfunction fairly frequently, causing problems in scoring. Further, the addition of the player proximity sensor adds to the cost of the dart game.
Summary of the Invention
In accordance with the present invention, the disadvantages of prior dart games, as discussed above, have been overcome. The dart game of the present invention includes a software implemented automatic player change feature with the ability to discriminate between dart hit impacts and non-dart hit impacts such as a finger touch on the dart head so as to provide a dart game that accurately scores a player's dart hits.
More particularly, the dart game of the present invention includes a dart head having a plurality of scoring segments, each of which is actuatable by an impact thereon, including a dart hit impact and a non-dart hit impact. The dart game also includes a microcontroller that determines the occurrence of an event representing the actuation of a scoring segment. In response to a scoring segment actuation event determination, the controller further determines whether the actuated scoring segment was actuated by a dart hit impact, which should contribute to a player's score, or by a non-dart hit impact, which should be ignored with regard to the player's score. The microcontroller discriminates between dart hit impacts and non-dart hit impacts by determining whether a scoring segment remains actuated for a predetermined period of time. If the actuated scoring segment does remain actuated for that predetermined period of time, the dart hit discrimination means determines that the scoring segment was actuated by a non-dart hit impact. Because dart hit impacts have been found to actuate the scoring segment for a relatively short period of time, if the actuated scoring segment remains actuated for a predetermined period of time of at least 200-300 milliseconds, the dart hit discrimination means determines that the scoring segment was actuated by a non-dart hit impact.
In accordance with the present invention, the dart head also includes a missed dart detection apparatus associated therewith, and actuatable by vibration of the dart head such as caused by a dart hitting the cabinet housing the game. The microcontroller further includes means for determining the occurrence of an event representing the actuation of the missed dart detection apparatus, and in response thereto determines whether the missed dart detection apparatus is functioning properly or not. The microcontroller also includes means for determining the occurrence of a predetermined total number of dart hit impacts and missed darts detected by a properly-functioning missed dart detection apparatus to automatically generate a player change signal.
The automatic player change function of the present invention eliminates the need for a player to manually actuate a player change switch in order to signal the dart game that subsequent dart hits on the dart head should be attributable to the next player. Further, because the dart game of the present invention can discriminate between dart hit
impacts and non-dart hit impacts, when a player touches the dart head while removing his darts the dart game will not interpret a scoring segment actuated by a finger-touch as a dart hit attributable to the next player.
These and other objects, advantages, and novel
features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and from the drawing.
Brief Description of the Drawing
FIG. 1 is a block diagram illustrating a dart game in accordance with the present invention; and
FIGS. 2A-2C form a flow chart illustrating the dart head microcontroller operating software routine of the present invention.
Description of the Preferred Embodiment
The dart game of the present invention as shown in FIG. 1 includes a conventional dart head 10 having a number of scoring segments 12. Each of the scoring segments 12 is actuated by an impact thereon to close a switch associated with the segment. The scoring segment switches form a switch matrix that is coupled to a dart head microcontroller 14. The dart head microcontroller 14 scans the switch matrix of the dart head 10; identifies any actuated scoring segment and determines whether the actuated segment was actuated by a dart hit impact or a non-dart hit impact, such as a finger-touch. The dart head microcontroller 14 transmits to a main microcontroller 20 a code representing the identity of an actuated scoring segment 12 and a designation of whether the segment was actuated by a dart hit or not. The dart head microcontroller 14 also includes a missed dart detector switch 16 which is in a normally closed position but opens in response to vibrations of the dart head 10 such as caused by a dart that misses a scoring segment but bounces off of the front, upper portion of a cabinet housing the dart head 10. In response to a detected missed dart, the dart head microcontroller 14 transmits a code representative thereof to the main microcontroller 20. The dart head microcontroller 14 monitors the total number of dart hits and missed darts, and in response to a total number of three, the microcontroller 14 couples an ENTER signal, representing that a change in players is to occur, on lines 22 to the main microcontroller 20. A manually-actuatable player change switch 18 is also provided and coupled to the dart head microcontroller 14 to allow a player to actuate the switch 18 to signal that a change in players is to occur in the event that a player throws a dart that misses the dart head 10 and the dart game cabinet so that neither a scoring segment 12 or the missed dart detector 16 is actuated. The main microcontroller 20 is responsive to the information transmitted from the dart head microcontroller 14 to accurately score each player's dart hits, the player's score being depicted on a display 24.
FIGS. 2A-C illustrate the software routine according to which the dart head microcontroller 14 operates. It is noted that the dart head microcontroller 14 may be an 8749AH microcontroller or the like, and includes a read-only memory for storing the software routine according to which the microcontroller operates. The microcontroller 14 also includes a battery backed-up RAM used for data manipulation and temporary data storage. As shown in FIG. 2A, at the start of its operation, the dart head microcontroller 14 determines at a block 26 whether a player change has been requested or not. A player change will be requested in response to actuation of the switch 18 or in response to the microcontroller determining that three dart hits and/or missed darts have been detected, as discussed below. If a player change has been requested, the microcontroller 14 proceeds to block 28. At block 28 the microcontroller 14 clears a dart hit/missed dart detector counter by resetting the counter to 2. Thereafter, the microcontroller 14 waits until the switch 18 has been released, and thereafter activates an "ENTER" bit which is transmitted to the main microcontroller 20 via lines 22. After activating the ENTER bit which signals the main microcontroller 20 that a player change is to occur, the microcontroller waits at block 28 for approximately five seconds. This five-second waiting period is provided so that the microcontroller 14 will not be responsive to the actuation of a scoring segment by a player touching the segment when removing his darts from the dart head 10. If a player does not remove his darts from the dart head 10 within the five seconds, the microcontroller 14 distinguishes non-dart hit impacts, such as finger-touches, on the dart head 10 from actual dart hit impacts so as to prevent a player's finger-touch that actuates a scoring segment from being interpreted as a dart hit, as discussed below.
If the microcontroller 14 determines at block 26 that a player change has not been requested, the microcontroller 14 proceeds to block 30 to reset an event counter. The event counter keeps track of the number of times that a closed scoring segment switch has been detected and is used to distinguish a dart hit from a finger impact or noise on the dart head 10. At block 30 the microcontroller checks the missed dart detector switch 16, and if the switch 16 is not closed, the microcontroller 14 flags the switch 16 as inactive, since at this point in the operation, if the missed dart detector switch 16 is operating properly, the switch 16 should be closed. The microcontroller 14 also resets the row counter at block 30 so as to initialize the row counter for the scanning of the scoring segment switch matrix. At a block 32, the microcontroller 14 outputs a row value and at block 34 determines whether any column within that row has a non-zero value therein representing an actuated scoring segment 12. If an actuated scoring segment 12 is not detected at block 34, the microcontroller 14 proceeds to block 36 to increment the row value of the scoring segment switch matrix. Thereafter, the microcontroller 14 proceeds to block 38 to determine whether the last row of the switch matrix has been checked. If not, the microcontroller 14 increments the row value at block 40 and returns to block 34 to determine whether any column in the next row has a non-zero value indicating an actuated scoring segment.
If the microcontroller 14 does not detect an actuated scoring segment during the scan of the scoring segment switch matrix, the microcontroller proceeds from block 38 to block 42 to determine whether the missed dart detector flag indicates that the detector 16 is inactive or not. If the microcontroller 14 determines that the missed dart detector switch 16 is inactive, the microcontroller proceeds back to block 26. If, however, the missed dart detector switch 16 is active, the microcontroller 14 proceeds to block 44 to determine whether the missed dart detector switch 16 is open or not. If the missed dart detector switch is closed, the microcontroller 14 proceeds back to block 30 to initialize the system for another scan or the scoring segment switch matrix. If, however, the missed dart detector switch 16 is open, the microcontroller 14 proceeds from block 44 to block 46. At block 46 the microcontroller 14 determines whether the missed dart detector switch is still open after reading the switch 256 times, and if so, the microprocessor proceeds to block 48 wherein the microcontroller 14 determines that the missed dart detector switch is malfunctioning and should be ignored. From block 48 the microcontroller proceeds back to block 26. However, if after 256 readings, the missed dart detector switch 16 is no longer open, the microcontroller 14 proceeds to a block 50 in order to synchronize the transmission of a code representing a detected missed dart to the main microcontroller 20. When the microcontroller 14 determines that it is the correct time to transmit a bit of the event code, the microprocessor proceeds to block 52 to transmit one bit of the code to the main microcontroller 20. The microcontroller 14 continues to transmit the bits of the code until it detects that the last bit has been transmitted at block 54.
If during the scan of the scoring segment switch matrix the microcontroller 14 determines that a scoring segment has been actuated at block 34, the microcontroller proceeds to block 56, shown in FIG. 2B. At block 56, the microcontroller 14 sets an increment counter to zero and begins a loop to read the scoring segment switch matrix bus. At a block 58, the microcontroller 14 determines whether the activated switch segment is still closed after 256 readings, which represents a predetermined time period of between approximately 200-300 msec. A true dart hit impact on the dart head 10 will close the switch associated with a scoring segment for a short period of time that is less than 300 msec. Therefore, if the activated switch segment is determined to still be closed after 300 msec., the microcontroller proceeds to block 60 to flag the activated switch segment as a stuck segment, or a finger-impacted segment. Thereafter, the microcontroller proceeds to block 62 to find the code representing the identity of the actuated scoring segment 12 from a look-up table. At block 62, the microcontroller also sets one bit of the code to designate whether the actuated segment was actuated by a detected dart hit or a non-dart hit impact. Thereafter, the microcontroller proceeds to blocks 50, 52, and 54 to transmit the code representing the actuated scoring segment to the main microcontroller 20.
After the last bit of a code has been transmitted to the main microcontroller 20, as determined by the microcontroller 14 at block 54, the microcontroller 14 proceeds to block 64. At block 64, the microcontroller 14 waits for three seconds and turns an LED on and off to provide a communication transmission indication. At block 64, the microcontroller 14 also decrements the hit/missed dart detector counter if the code transmitted to the microcontroller 20 indicates either a missed dart or a dart hit. Thereafter, the microcontroller proceeds to block 66 to determine whether the hit/missed dart detector counter has been decremented to zero, indicating a total of three dart hits and/or missed darts. If the hit/missed dart detector counter has been decremented to zero, the microcontroller issues a player change request and proceeds to block 26 and from 26 to block 28 to effect an automatic player change. If, however, three dart hits and/or missed darts have not been detected, the microcontroller proceeds to block 26 without issuing the player change request.
Details of the software illustrated in the flow chart of FIGS. 2A-C are provided by the following code:
Many modifications and variations of the present invention are possible in light of the above teachings. Thus, it is be understood that, within the scope of the appended claims, the invention may be practiced otherwise than as described hereinabove.