US 20090091087 A1
One detailed embodiment of a quiz-nested quiz game and system therefore, played by one or by one or more players. Each quiz comprises one information fragment for its answer and one for each clue. A unique identifier is assigned to the information fragments. The uniquely identified information fragments are associated into a quiz structure, wherein non-terminal members are an answer in one quiz and clue in an associated quiz. A system means comprises exposure, guessing and validation means. A user interface is provided. Clues in one quiz can be selectively exposed to the player(s), who can provide a guess at the associated answer. The guess is validated, and, depending on the validation result, the associated answer is exposed as a clue in a different, associated quiz. Other embodiments are described and shown.
1. A quiz game played by one or by one or more players, comprising:
(a) a plurality of clues;
(b) a plurality of answers;
(c) a plurality of clue/answer pairs, each comprising:
i. one of said clues, and
ii. one of said answers;
(d) a system means, which system means will:
i. reveal a clue comprised by a specific clue/answer pair, termed a lower clue/answer pair, to said player(s);
ii. allow a player from among said player(s) to provide a guess at said answer comprised by said lower clue/answer pair;
iii. accept said guess at said answer comprised by said lower clue/answer pair;
iv. validate said guess at said answer comprised by said lower clue/answer pair to determine a validation result;
v. depending on said validation result, reveal a clue comprised by a specific clue/answer pair, termed the upper clue/answer pair, to said player(s),
whereby a guess at said answer comprised by said lower clue/answer pair may yield a clue to said upper answer comprised by said upper clue/answer pair.
2. The quiz game of
3. The quiz game of
4. The quiz game of
(a) provide an indication of said answer comprised by said upper clue/answer pair to said player(s);
(b) provide a selector means to allow said player(s) to select said clue comprised by said lower clue/answer pair;
(c) attach said selector means to said indication of said answer comprised by said upper clue/answer pair,
whereby said player(s) may use said selector means attached to said indication of said answer comprised by said upper clue/answer pair to select said clue comprised by said lower clue/answer pair.
5. The quiz game of
6. The quiz game of
7. The quiz game of
8. The quiz game of
9. The quiz game of
10. The quiz game of
11. A method for providing a quiz with linked quiz levels, played for learning and/or entertainment by one or by one or more players, comprising:
(a) providing a quiz structure and supporting system means, comprising:
i. providing a plurality of information fragments, and
ii. providing a plurality of nodes, which comprises assigning a unique identifier to an information fragment for a multiplicity of information fragments from among said plurality of information fragments, using an identification means, and
iii. associating three or more of said nodes into a node chain, wherein a first node is associated to a second node by an association means and said second node is associated to a third node by an association means, and
(b) providing a user interface and supporting system means, which will:
i. provide a first exposure means for exposing said information fragment comprised by said third node to said player(s), and
ii. provide a second exposure means for exposing said information fragment comprised by said second node to said player(s), and
iii. provide a first guessing means by which said player(s) can provide a second-node guess at said information fragment comprised by said second node, and
iv. provide a first validation means for validating said second-node guess, which yields a second-node validation result, and
v. depending on said second-node validation result, use said second exposure means to expose said second node,
whereby at least three node levels are related to provide at least two linked quiz levels.
12. The method of
i. provide a third exposure means for exposing said information fragment comprised by said first node to said player(s), and
ii. provide a second guessing means by which said player(s) can provide a first-node guess at said information fragment comprised by said first node, and
iii. provide a second validation means for validating said first-node guess, which yields a first-node validation result, and
iv. depending on said first-node validation result, use said third exposure means to expose said first node.
13. The method of
i. provide an indicator means for providing an indication of said first node to said player(s), and
ii. provide a selector means for allowing said player(s) to expose said third node using said first exposure means, and
iii. provide an attachment means for attaching said selector means to said indication of said first node,
whereby said player(s) may use said selector means attached to said indication of said first node to expose said third node.
14. The method of
15. The method of
16. The method of
17. The method of
18. A quiz game, played by one or more players, for providing entertainment, and/or for testing knowledge, and/or for enhancing the general knowledge and associative ability of a player, said quiz game comprising:
(a) a plurality of quizzes, each comprising:
i. one or more clues, each of said clues having a content comprising data, and
ii. a corollary answer to said clue or clues, said answer having a content comprising data, and
(b) an upper quiz from among said plurality of quizzes, and
(c) a lower quiz from among said plurality of quizzes, and
(d) an association means for associating said upper quiz and said lower quiz, wherein the content of said corollary answer of said lower quiz is equivalent to the content of a specific clue belonging to said upper quiz,
whereby said quiz game includes two related quizzes comprising two quiz levels.
19. The quiz game of
20. The quiz game of
21. The quiz game of
whereby said quiz game includes three related quizzes comprising three quiz levels.
22. The quiz game of
whereby said quiz game includes an indefinite number of related quizzes comprising an indefinite number of quiz levels.
This nonprovisional application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/960,532, filed Oct. 3, 2007.
1. Field of Invention
This invention relates to skill games. More specifically, this invention relates to a new type of game and system therefore for one or multiple players in a computer game, physical media, mixed media, or television game show format.
2. Prior Art
A discussion of the prior art of which the present inventor is aware, and its differences and distinctions from the present invention, is provided below.
A list of the simpler word puzzles will include “guess-the-phrase” (hangman) and question-and-answer trivia. The solution of such puzzles follows a simple logical route, whereby one or more clues lead to the puzzle answer. Other examples of simple puzzles include prototypical anagrams and “Name That Tune” type musical quizzes. U.S. Pat. No. 5,123,658 to Elfanbaum and Shlomo (1992) describes a concealed-picture puzzle.
In the classical party game “charades’, a player offers clues to a word or a phrase by pantomiming the words or similar sounding words. A player may also decompose words into characters and sign the characters, or use a combination of methods.
Intersecting row and column puzzles such as crossword puzzles and Sudoku require the solution of all the word or number strings that form a defined puzzle. Solved rows or columns offer clues to other rows and columns, but there is no precedence between them. Such puzzles are progressively solved and are not hierarchical. The main solution to an intersecting row and column puzzle is arbitrarily related to its constituent rows and columns and has no independent meaning. Also, it cannot be derived from only a subset of the solved rows and columns composing its matrix. The prior art also includes many games which combine two or more of the fundamental puzzle types.
U.S. Patent Publication No. 20060175756 of Watson and Riley combines the classical crossword with the anagram and can include a bonus anagram constituted from circled letters in the solved crossword. The final bonus anagram in not a top-level solution but is an additional puzzle that cannot be solved until the crossword is complete. The bonus anagram is not meant to be solved from only a subset of the underlying clues.
U.S. Pat. No. 6,308,954 to Breeler (2001) and U.S. Patent Publication Nos. 20050218593 of Petry and 20020117802 of Seaberg combine the classical crossword with word search puzzles. While infusing novelty, these ideas do not make the main puzzle more hierarchical than a typical crossword.
Other games have combined some of the simpler skill games previously mentioned with games of chance. The board game TRIVIAL PURSUIT® combines question and answer trivia with die rolling and random question selection. The television show WHEEL OF FORTUNE® combines ‘hangman’ with a ‘wheel of fortune’.
U.S. Pat. No. 5,860,653 to Jacobs (1999) discloses a game for television or computer play with rows of anagrams at one anagram per row, with their row positions fixed relative to one another. When all the anagrams are solved, a word associated with each of the solved anagrams is revealed vertically through them.
Jacobs does not attach special significance to the solution of the vertical word as being the goal that ends the game. It seems apparent that before all the anagrams are solved, the vertical word will become obvious and thereby provide clues to the remaining anagrams, making this puzzle somewhat analogous to a crossword puzzle.
Another category is the ‘quest’ games. Examples include scavenger hunts and role playing board games such as DUNGEONS & DRAGONS® and online games such as EVERQUEST® and WORLD OF WARCRAFT™. In these games, real or virtual articles are accumulated by the participants during an expedition. These games may include locational clues such as an easter egg hunt, and may culminate in a real or virtual reward, or they may have intermediary rewards and continue indefinitely.
Quest-type games sometimes encompass ‘clue finding’, that is, picking up clues along a journey, and puzzle solving. Some games are spectator oriented, such as the children's television show BLUE'S CLUES™, which combines clue finding with a final puzzle solution. Variations include traditional ‘murder mystery’ interactive theatre and Alternate Reality Games (ARG).
U.S. Pat. No. 5,679,075 to Forrest, et al. (1997) discloses an interactive scavenger hunt combined with puzzle solving in the context of a narrative supplied by a prerecorded audio visual plot. Game participants solve “visual puzzles”, “physical tricks” or “performer-based puzzles” in order to obtain clues, called “information fragments”, as well as “directional clues”. There is no indication that an information fragment is itself the answer to a preceding puzzle. It seems it is supplied as a reward for solving a preceding puzzle, as reinforced within
In Forrest, et al., once the information fragments are obtained, the participants collectively solve a “meta-puzzle”, most elaborately shown as a two-stage puzzle in
Forrest does not indicate a quiz database. Rather, having participants manually draw clues as indicated would resist attempts to systematically organize and retrieve quiz information. Furthermore, the puzzles are thematically related. This means that puzzles would have access to only a subset of all possible quizzes that could lead to the final solution.
As a consequence of both its logical structure and proposed embodiments, Forrest would require considerable effort and expense to generate each complete puzzle or tour, making it a novelty as opposed to a game to be played day after day. Gridlock could result since it seems that either all or virtually all the available clues would have to be found in order to have a chance to complete the final puzzle. If a clue were missed, such as the ‘recall’ clue, participants might have to tediously renavigate parts of the tour. Gridlock could also arise if participants could not solve a necessary riddle, or if they were to miss a time limit.
The prior art contains examples of puzzles featuring progressively revealed clues. U.S. Pat. No. 6,318,722 to Shafer (2001) discloses a game wherein clues are revealed for sets of words that share a common feature. U.S. Pat. No. 6,935,945 to Orak (2005) discloses an Internet game show version of a concealed-picture puzzle. U.S. Pat. No. 7,275,746 to Jensen (2007) discloses a physical media embodiment of a crossword-type puzzle with an opaque cover removably disposed over each of the concealed completed letter positions. These puzzles lack more than one level of quiz-solving and are not hierarchical.
U.S. Pat. No. 5,221,094 to Hanson (1993) discloses a physical media master puzzle concealed behind opaque cover up puzzle pieces. The puzzle pieces are categorized on the basis of color. The pieces are removed on the basis of participants successfully answering question and answer trivia-quizzes. Trivia-quizzes are displayed on accompanying physical media cards. One embodiment is a master puzzle that when solved is a pictorially depicted phrase. The removal of each puzzle piece reveals between one to four letters, or portions of letters. Since discreet words or letters are not revealed, nothing more than two levels of puzzle-solving is intonated.
With Hanson's invention, trivia answers are not themselves clues to a higher level puzzle, but rather their solution offers the reward of being able to remove a puzzle piece. That is, the answer to a quiz is disconnected from the clue that is supplied to the master puzzle. Hanson, like Forrest, does not anticipate an embodiment that would take advantage of a quiz database. Furthermore, the information supplied on removal of each arbitrarily shaped puzzle piece is indiscreet. This indicates that Hanson's invention would resist attempts to systematically organize and retrieve sub-quiz information.
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
Described are embodiments of a new type of quiz called a “Quiz-Nested Quiz” or “QNQ”. Described as a game, these embodiments are also of potential application in fields including education and testing. Embodiments comprise a plurality of quizzes each comprised of an answer and one or more clues. An answer obtained by solving a “lower” quiz results in a clue being revealed to a one-higher quiz.
Embodiments comprise a repeating pattern of clue and answer wherein the correct response to a clue, or question, supplies an answer which yields a clue in a one-higher quiz. Clues and answers are organized into clue/answer pairs. There can be multiple clue/answer pairs terminating in the same answer. One or more clue/answer pairs terminating in the same answer is described as a quiz or nested-quiz or sub-quiz.
The detailed embodiment describes how clue/answer pairs can be related to one another to provide an hierarchical, multi-level logical structure. In the detailed embodiment, the answer to a one-lower clue/answer pair is, or is equivalent to, a clue to its one-higher clue/answer pair. Clues and answers can be represented as uniquely identified information fragments, called “nodes”. A single node can therefore have a dual purpose. It can be an answer in one quiz, and a clue in another. In other embodiments, not detailed, the answer to a one-lower quiz is not necessarily a clue to a one-higher quiz, but rather its solution reveals a clue to the one-higher quiz. The detailed embodiment shows four node-levels encompassing three-levels of quiz solving.
The quiz structure in the detailed embodiment is described as a “quiz-tree”, comprising associated nodes. A quiz-tree contains quiz sub-structures, including quiz chains. A quiz chain is comprised of a sequential chain of three or more nodes. Quiz chains help describe the underlying structure of a quiz-tree. Quiz chains are a basic quiz structure that can be used to describe many embodiments.
The detailed embodiment uses “nodes” to relate quiz-data into structures that can be persisted and accessed at runtime. Nodes represent uniquely identified information fragments that may serve the purpose of a clue or an answer depending on context. The information fragment is the data associated with a clue or answer. For a text-based clue or answer it represents the text that might be displayed in the interface. A unique identifier is imposed on an information fragment in order to uniquely represent it in the context of one “quiz-tree”. A quiz-tree is more generally described as a quiz structure. A general quiz structure and a quiz-tree sub-structure is a node chain. A node chain is comprised by three or more nodes associated in a linear sequence. Nodes and information fragments can be provided by a persistent computer storage means, such as a database. Nodes can generally have their information fragment exposed or unexposed in a game interface. Nodes can be visually represented as dots. Associations between nodes can be represented by connecting lines. A quiz-tree represents nodes and their associations used in a QNQ puzzle. A quiz-tree can be logically depicted as a genealogy or tree root system which brachiates from a single top node. A one-lower-level node connected node-to-node with a higher level node could be called a ‘child’ node of the one-higher-level ‘parent’ node.
The outcome of an iteration of a hypothetical embodiment of a QNQ is logically depicted (
The symbol for a revealed node 142 is a solid circle. The symbol for an association 141 between a revealed, lower node 142, acting as a clue, with another node, acting as an answer, is a thick connecting line. Revealed nodes 142 are generally revealed by supplying a correct answer, except at the bottom-most level of a branch. Revealed nodes 142 at the bottom-most level of a branch represent clues that were supplied by an embodiment for the solution of their one-higher-level answer. They are nodes that serve as clues but are never answers.
The symbol for an unrevealed node 146 is a solid square. The symbol for an association 145 of a lower unrevealed node 146, acting as a potential, or unexposed clue, to an upper node, acting as an answer, is a relatively thin line.
In some cases a revealed node at level “n”, might allow a player to cognitively solve the level-“n−2” node at virtually the same time as the level-“n−1” node. In terms of the game interface, a player might choose to bypass solving the level-“n−1” node and directly solve the level-“n−2” node.
In the detailed embodiment which follows, the objective of the game is to solve the top-level answer as efficiently as possible. Therefore, bypassing the level-“n−1” node solution would not be discouraged by the scoring system. A solid oval symbol 144 is used to depict a cognitively solved node. It represents a node that was cognitively solved by a player, but not formally solved as an answer. Its solution was bypassed in favor of solving the higher, level-“n−2” quiz. Unrevealed nodes 146A represent nodes that went unrevealed, until they were revealed by virtue of the solution of the top-level quiz.
The logical structure can vary between different iterations of any given embodiment of a QNQ, as well as between different embodiments of a QNQ. For any given quiz-tree, the depth and depth constancy between branches can be either variable or fixed. The number of child nodes connected to a parent node can be either constant or variable.
In the current embodiments, quiz solution is directed from bottom to top within branches, cognitively progressing one level at a time within a branch. In the current embodiments, the selection of quizzes is directed from top to bottom. These embodiments assume that the interface provides an indication of the top-level quiz at the beginning of a round, even though its solution is obscured. Also possible are embodiments where players have no exposure to the top-level quiz until later in the game. Embodiments are possible where navigation and quiz selection begins deeper within the quiz hierarchy. Embodiments are possible that present the option of exposing a clue without solving it from an underlying quiz, even when the clue is not at the bottom-most level of a branch. Embodiments that change the orientation of a quiz-tree, by inverting it for example, are possible.
There may be hints to aid in a node's solution. Such hints may be implicit to an indicator means for indicating a node without revealing it, such as a masking means. In the present embodiment, the phrase-words are indicated at the beginning of a round. Hints can also be provided by the visible categorization of lower level quizzes. Such suggestions of a quiz answer are called “implicit hints” to aid in the solution of a node. Such implicit hints are not considered “clues” in terms of the discussion which follows. However, implicit hints could be represented as nodes so the distinction is somewhat arbitrary.
Other embodiments could use other means for obscuring a node solution, such as including it in a large selection list with many incorrect solutions. Such a means would be beneficial in a system designed to limit typing.
The quiz to solve the top-level answer does not necessarily have to be of the same type as the quizzes that are available to solve the nested quizzes nor do any of the quizzes in an iteration of the game necessarily have to be of the same type. The quiz types associated with a node can generally be consistent or variable in respect to any other part of the hierarchy.
Embodiments can be implemented with many types of textual and word character quiz forms, such as word riddles, as well as non-textual and mixed forms including but not limited to quizzes involving mathematics, logic, pictures, symbols, video, sound, music, animation, video, real or virtual destinations, or any combination of quiz types.
A first embodiment of a QNQ is explained herein in the context of a game combining a ‘guess-the-phrase’ quiz with a question-and-answer trivia quiz.
The following embodiment is called a “combined-guess-the-phrase-and-trivia-quiz embodiment”. The combined-guess-the-phrase-and-trivia-quiz embodiment is determined by many design decisions and is an example embodiment. The details presented are not intended to diminish the generality of either the combined guess-the-phrase-and-trivia-quiz embodiment or of other embodiments.
The combined-guess-the-phrase-and-trivia-quiz embodiment is generally described as a computer-based embodiment. It is also generally described as a game that is concurrently played by multiple players, although a single-player mode is assumed. Multi-player and single-player modes can be options under the present embodiment. They could also be offered as alternative embodiments. Where functionality specifically applies to multi-player variants it is construed as being part of a multi-player mode or embodiment only. Where functionality does not specifically apply to multi-player variants, it is construed to be included by either multi-player and single-player modes or embodiments.
The example top-level answer is an expression that is a common saying or proverb. It could also be a famous quotation, song lyric, poem, book excerpt, news headline, piece of knowledge or trivia, etc. A quiz database will contain a satisfactory repository of top-level phrases and underlying quizzes for maintaining novelty. Each word under the top-level phrase is a clue. Clues are unexposed at the beginning of a “round”. They are generally either exposed or unexposed during a round. At the beginning of each round, the user interface and system will be refreshed with a new, unexposed top-level phrase with fresh underlying quizzes, which are stored in a quiz database.
In the detailed embodiments, one iteration of a QNQ has one quiz-tree. The top-level expression is masked at the beginning of a single iteration of the game, called a “round”. A round is complete when the top-level expression is solved or cannot be solved by the players. In the event that the top-level expression cannot be solved, the round is gracefully ended (not shown). One or more rounds in some type of sequential context could be called a “match”.
A major goal of a round is to reveal the top-level expression. The top-level expression contains at least one, and generally two or more words that can each be the subject of one or more additional, nested quizzes. Such words are called “quiz-able-words”. These are each an answer of a lower-level quiz. Each quiz-able word can have a number of available clues. There may also be any number of words that form a part of the top-level expression that are not subject to nested quizzes, and these are called “filler-words”.
There are four levels of nodes and three levels of quiz in this embodiment. The depth of available clues is constant in this embodiment. The number of available clues per node is not constant throughout but is constant between node-levels four and three at one available clue per higher level node.
The quiz spanning node-levels two and one is a guess-the-phrase quiz to reveal the top-level expression. Quizzes between node-levels three and two are for revealing the quiz-able-word(s) contained in the top-level phrase. Quizzes between node-levels four and three are trivia-quizzes for finding clue(s) related to the quiz-able-words. Quizzes between node-levels four and three are categorized. Categorization of node-level four clues can provide implicit hints at node-level three answers. Categorization does not provide a clue as defined herein.
Unless the top-level quiz can be answered otherwise, quiz-able-words must be solved either cognitively or within the user interface. A clue will be found by correctly answering a quiz related to a quiz-able-word. The clue is the correct answer to a preceding quiz on a quiz-able-word, and is an expression that suggests its related quiz-able-word without necessarily solving the quiz-able-word. There could be multiple quizzes taken, and multiple clues obtained, for each quiz-able-word.
At the beginning of a round, all words in the top-level expression are masked. Players can see a mask for each character of each word. The masks prevent the viewing of underlying words until mask removal. Alternative embodiments could use a mask that conceals the word length, and have automatically-revealed filler-words.
The attached claims reference a first, second, and third node. In reference to the claims, nodes of the present embodiment at node-levels two, three and four refer to the first, second and third nodes respectively.
The phrase component can appear in an integrated graphical user interface, such as the one indicated in
Words in the phrase component are referred to in terms of their order of appearance in the user interface. The term “first quiz-able word” simply indicates that the word is the first quiz-able word to appear in the phrase. Nodes for the top-level expression, word, trivia-quiz answer, and trivia-quiz question are logically related in a quiz-tree. The quiz-tree for the sample iteration is shown in
A “phrase section” 212 contains a sample masked phrase to be solved within one round. A phrase appearing in the phrase section generally contains zero or more filler-words and one or more quiz-able-words. In the example, there are initially unrevealed first and second quiz-able-words 220A1 and 220B1, with attached hyperlink. These refer to “nodes” 220A and 220B of
Each character of each word in the phrase is initially masked. An asterisk character is used to distinguish each character of unrevealed first, second and third filler-words 218A1, 218B1 and 218C1, with attached hyperlink. In contrast, a question mark character is used to distinguish each character of unrevealed first and second quiz-able-words, with attached hyperlink 220A1 and 220B1.
The distinction between quiz-able-word and filler-word masking characters, as well as the information supplied by the number of masking characters in a word, are examples of implicit hints which are not clues as defined herein.
A quiz-able-word or filler-word may be in a state of being masked or unmasked during a round. The mask overlying each word is part of an indicator means. It provides an indication of its respective word, without revealing its word. In the present embodiment, the indicator means includes a system means. The system means can include providing a hyperlink anchor having the masking characters. Source anchor text, or an image could be used. The hyperlink anchor indication can be provided by HTML generated by a servlet or Java Server Page run on an application server. The indication shows the existence of the word without exposing it. The indication also provides a user interface location for the unrevealed word. Players can take actions based on the indication.
In the present embodiment, the indication also offers a suggestion or implicit hint of the word answer. This suggestion is provided by the number and type of masking characters.
Once unmasked, a word remains unmasked, or revealed, for the remainder of the round. Each entire word will be either entirely masked or entirely unmasked unless it is in the process of being revealed by a player. All words in phrase section 212 are masked at the beginning of a round. Mask underlining for unrevealed words 220A1, 220B1, 218A1, 218B1 and 218C1 indicates a hyperlink that is attached to each word.
Each clue found on a quiz-able-word is displayed in a word-clue section 214, which is demarcated by a word-clue section label 222. A quiz-able-word clue is to be presented in quiz-able-word-clue cell 230A or 230B below the quiz-able-word to which it pertains. Each clue remains displayed until the end of a round. In an alternative embodiment, the clues could disappear once their associated quiz-able-word answer is revealed.
Dashed horizontal lines used to fill in areas represent the color gray or some other color. Empty cells 228 beneath each of filler-words 218A1, 218B1 and 218C1 are not subject to input and display nothing, and are therefore represented as grayed.
Subject to control and answering rules and the current assignment of control and answering privilege, a player can initiate a guess at the top-level quiz by selecting a “Solve-phrase” button 216A, visible in navigation mode.
Clicking on unrevealed first quiz-able-word 220A1, with attached hyperlink displays a quiz-and-word-guessing-selector component (
The quiz-and-word-guessing-selector component, and, more particularly, the “find-a-clue” menu option 314 and its submenus, are part of a selector means. In the present embodiment, the selector means includes a system means. This includes an arrow-cursor 99 and an input means, such as a computer mouse. The selector means is presented for each quiz-able word until the top-level phrase is solved, or until a quiz-able word's quizzes are exhausted. The selector means also uses a first exposure means which refers to the means that exposes a selected quiz question in the user interface.
Placing arrow cursor 99 over find-a-clue menu option 314 (action not shown) presents a flyout menu called a quiz submenu 330. Its options are specific to the selected quiz-able-word and are based on the quizzes associated to it within the quiz-tree. Quiz submenu 330 presents the available quizzes by category. In the example, there is a television-quiz-category-menu option 332A, a movies-quiz-category-menu option 332B, a music-quiz-category-menu option 332C, and a sports-quiz-category-menu option 332D.
Each quiz-category-menu option 332A-332D displays the number of available quizzes per category in brackets. For example, a number of quizzes 332A1 in the “television” category is shown to be five. In an alternative embodiment, the quiz-and-word-guessing-selector component could be augmented, for example, to present the difficulty level of the available quizzes as well as subcategories.
Selecting one of quiz-category-menu options 332A-332D displays the next available trivia-quiz within the selected category by opening a trivia-quiz component (
Also displayed are a quiz question 412A1, and an answer label 414A showing players where to type a guess. An answer-attempt textbox 416 will accept typed input from a player. A point-deduction warning 418 reminds players of a deduction for a wrong answer. A submit button 420 submits a guess in answer textbox 416 to the system for validation. A clear-answer button 422 clears answer textbox 416. A pass-guess button 424 allows a player to pass on the quiz without guessing.
Functionality provided by the trivia-quiz component, and particularly quiz question 412A1, is part of a first exposure means for exposing the information fragment comprised by the node identification value of the trivia-quiz-question node. The first exposure means includes a system means for obtaining quiz-question data from a trivia-quiz-question node and passing it to the trivia-quiz component.
In a sequential-answering system, an answer-attempt textbox 416 and buttons 420, 422, and 424 are enabled for the player with answering privilege. Players without answering privilege see a view of the trivia-quiz component as it is presented to the player with answering privilege. Alternatively, players without answering privilege have 416, 420, 422 and 424 disabled on their display.
Answering-turn-display component 470 shows which player has answering privilege for multiplayer modes or embodiments. A “turn” column heading 482 and a “player” column heading 472 help to arrange the display. An alarm clock icon 476 and a number of seconds 480 adjacent to a player name 474B, indicates which player has answering privilege and the amount of time that player has remaining to submit a guess before losing answering privilege. A “next” indicator 478 adjacent to a player name 474C indicates the next player in the answering privilege order. A third player name 474A is also indicated.
On a validation result of failure, points are deducted from the score of the player who submitted the guess. In a sequential answering system, answering privilege to the trivia-quiz component passes to the next player. Answering privilege is passed until the quiz is solved or until each player has had answering privilege for the currently selected trivia-quiz one time. If no player successfully answers the quiz, the trivia-quiz component closes and no new clue is provided in quiz-able-word clue cell 230A (
An alternative embodiment might support a ‘first-response’ answering system. In a first-response answering system, the interface permits all players to guess at the same time. The system registers the order in which players submit their guess. Validation of the guesses is performed in the order they are received by the system. Validation continues until there is a successful validation result. The first player to successfully answer a quiz gains control to select the next action.
When there is a successful validation result, the system closes the trivia-quiz component. The system increases the score of the player whose guess had a successful validation result. A new clue 230A1 is revealed in quiz-able-word clue cell 230A as depicted in
Clue 230A1 is revealed by a second exposure means. In the present embodiment, this includes a system means. This includes providing an answer, and the node identification value of the trivia-quiz-answer node to phrase component in navigation mode. The second exposure means could for example include HTML anchor text, or a client applet field
The player with control might decide to guess at the quiz-able-word for which the clue was just found. The player with control could also take any other valid action such as initiating a guess at the phrase, finding more clues on either quiz-able-word, revealing a filler-word, or potentially, choosing to pass control.
It is presumed that the player with control next positions hand-pointer cursor 95 over unrevealed second filler-word 218B1, with attached hyperlink and clicks her mouse button. A “buy-word” menu 338, containing one item, is next displayed as shown in
The confirmation pop-up in
After the round has been in progress a while, the phrase component might appear similar to
Opting to guess at a quiz-able-word will change the mode of the phrase component to word-guessing mode, depicted in
In word-guessing mode, solve-phrase button 216A of
As the player with control inputs response 220A4, the masking characters are replaced with the typed text. Insertion cursor 98 moves according to the input.
It is presumed that the player with control completes a (correct) guess and submits the guess with submit-guess button 216B. Next, the system validates the attempt. On a successful validation result, focus returns to the phrase component in navigation mode, showing revealed first quiz-able-word 220A5 (
Validation is provided by a second validation means which includes a system means. This includes accessing the valid answers associated with the node identification value for the quiz-able word, and comparing them with the supplied attempt to obtain a validation result.
If the player with control (
If the player with control were to submit an incorrect guess, unrevealed first quiz-able-word 220A1, with attached hyperlink would be shown. The screen would be like
Presuming that the player completes a response 220A4 to the first quiz-able-word and submits a correct guess (
In the present embodiment, revealed first quiz-able word 220A5 is provided by a third exposure means, including a system means. This includes obtaining the answer for the quiz-able word based on its node identification value, and returning it to the user interface. The third exposure means could for example include HTML anchor text, or a client applet field which displays the answer.
The player with control might then click solve-phrase button 216A (
A first clue 230B1, for second quiz-able-word 220B3 in a guessing mode is “Appointment for Love”. This is a movie name that is an expression containing the second quiz-able-word “ointment”. A second clue 230B2, for 220B3 is “Cream”, the name of a music band. It is also a one-word expression with a word that is a synonym for the second quiz-able-word “ointment”.
Phrase-guessing mode is akin to word-guessing mode, except it supports the solution of the phrase as opposed to only one word. Submit-guess button 216B submits the phrase attempt for validation. Clear-guess button 216C masks all previously unsolved words, in this case 218A, 218C and 220B (
Finished mode indicates that the top-level phrase has been correctly answered. The phrase component will not respond to player action and the round is over. Finished label 216F displays in place of the buttons and point-deduction warning of the other modes.
During the round, points for the round were distributed as earned by the players, and the running round and match scores were updated. If the match contains more rounds, the phrase component is displayed in navigation mode with a new, fully masked top-level quiz. If the match contains no more rounds, the match ends.
Quiz question 412A1, at node-level four, is the trivia-quiz question introduced in
Quiz question 412A2 is another quiz question, not previously specified. Its solution is the first quiz-able-word's second clue 230A2 discovered for the first quiz-able-word in the sample round. It is the other of two clues to first quiz-able-word 220A.
Quiz questions 412A3 and 412A4 are quiz questions, not previously specified, whose answers become the second quiz-able-word's first clue 230B1 and second clue 230B2 respectively. Second quiz-able-word 220B was formally solved with the top-level phrase solution in the sample round. It is therefore depicted as a cognitively solved clue.
Other nodes are drawn to depict the domain of quizzes that were available in the sample round. Filler-words 218A, 218B and 218C round out node-level 2. Filler-word 218B was revealed by buying a word in the sample round, and so is depicted with the symbol for a revealed clue 142. Filler-words 218A and 218C were only revealed with the solution of top-level answer 1410. They are therefore depicted with the symbol for an unrevealed clue 146.
From component 1510, a player can access the quiz-and-word-guessing-selector component, guess-word option 1530 (indicated by 312 of
An embodiment can be supported by client, peer-to-peer, or distributed client/server software, hardware, data schema objects, data, and a database management system. Discussed is a ‘client-server’ architecture where the game is distributed between clients 1610 and server-side components 1650, connected by the Internet 1640.
Generally, there would be one client device for each player. Client devices could include various networked I/O devices. Shown is a desktop computer, 1612, a notebook or sub notebook computer, 1614, a handheld gaming device, 1616, and a cell phone/PDA with gaming capabilities, 1618. In general, the term “electronic gaming device” can apply to all of these and any electronic device that enables players to play the game. Internet access 1630 connects the clients to the server side components.
The client devices support software to play the game. Software can include a web browser, or custom game software downloaded and installed, or both. Third party or vendor components can be included. Client side code can be provided dynamically by a web server (or servers) 1652. The clients provide players with a graphical user interface and an input means. Input means can include alphanumeric keypads, touch screens, and computer mice. Outputs include a screen to display the user interface.
The server side infrastructure can be based upon existing software applications, database management systems, programming languages and server computers. Server-side components 1650 could include a web server 1652. Web server 1652 communicates with clients 1610 through an Internet connection 1670. Web server 1652 maintains a network connection 1672 to an application server (or servers) 1654. Application server 1654 manages multiple games in progress. Application server 1654 maintains a network connection 1674 to a database server (or servers) 1656, which manages 1676 a quiz database and associated schema 1658.
In a Java-based implementation, a web client 1610 might present the game to players as dynamic HTML pages, created from Java Servlets and/or JavaServer Pages™ assembled in a web tier by a J2EE server machine represented by 1654. These are delivered by a web server 1652 such as Apache. Alternative embodiments could include a custom user interface Java application or Applet, otherwise accessing the game through controllers in the server tier.
The controllers could also run on a J2EE server machine represented by 1654. Session beans could be used on server 1654 to converse with the clients and pass messages to the model. The model could be supported by Enterprise Java Beans and entity beans (entities) running on server 1654, representing persistent data stored in database entities.
A database server 1656 could run an Oracle®, MySQL® or other relational database management system to access a quiz database and associated schema 1658. The database server hardware, software, system and schema objects, and data comprise a persistent computer storage means. This allows for storing and accessing clues and answers, for relating clues and answers in clue/answer pairs, and for relating clue/answer pairs to one another. Schema relevant to the present embodiment are described in
Standalone single-player embodiments might include support for downloading and accessing quiz-trees on the client from a Java client application. Quiz-trees might also be loaded onto the clients from physical media, such as a game cartridge or DVD. Client side software could run the game disconnected from server side components. Multi-player, peer to peer embodiments of the game with Internet-connected clients are also possible.
Other functionality can be built in support of the game. Quiz-trees could be custom built by the players. Players could begin with one or more personal, custom expressions with the quiz database supplying the remaining expressions and facilitating creation of a custom quiz-tree. Quiz-trees could be built on the server using client or web-client software, or built on the client and uploaded to the server.
Other formats of the game are possible. For example, an embodiment of the game could be played with players in the same physical proximity as in a television or Internet game show. Another embodiment could combine the broadcast of a studio-based game with an interactive mode of the game being played by spectator/players. A QNQ could be made out as a physical media game, with a card or notebook reference system connecting the main level trivia phrase or expression with the word-level quizzes. A simplified embodiment of the game could be presented on paper or cardboard, such as a ‘scratch card’ or perforated window method for hiding and revealing clues. A physical media implementation might rely on the pictorial tree view of
The sample combined guess-the-phrase-and-trivia-quiz embodiment could support different player modes, including “multi-player/auto-phrase”, “multi-player/hosted”, and “solitary player”. In multi-player/auto-phrase mode there are multiple players and the quiz-trees are selected automatically by the game system. Automated quiz-tree selection could be tuned by category, difficulty, quiz-type, etc., based on match parameters set by an administrator or agreed to by the players. In multi-player/hosted mode, a participant plays the role of a host and selects predefined or custom quiz-trees, for the players. In solitary player mode there is only one player. Other embodiments are possible.
In multi-player modes, the user interface presented to each player depends on whether the player has control or answering privilege of the game at a give moment. Players without the ability to act on the game at a given moment would be presented with an application-sharing view. This would include they key user interface components of the player with control or answering privilege. Alternatively, players without the ability to act would be presented the same user interface components as the player with control/answering privilege. However, functionality for initiating or responding to quizzes would be disabled. A combination of approaches can also be used.
A scoring system is provided for the present embodiment. Alternative scoring systems can be devised for different embodiments.
In multi-player embodiments, cumulative points may be earned for solving clues, revealing quiz-able-words, and especially for solving the top-level expression. The player with the most points at the end of a round would win the round, and the player with the most points at the end of a match would win the match. Players are deducted points for making incorrect guesses to quizzes, and/or solutions to quiz-able-words, and/or to the top-level expression.
In the present embodiment, the goal of each player is to solve the next-higher and eventually the top-level word or expression with the minimum number of clues necessary. In a multi-player embodiment, this goal is encouraged by awarding a high ratio of the total points available in a round to the player who solves the top-level phrase. Also, awarding points for new clues on a quiz-able-word is discontinued once a certain number of clues have been revealed on that word.
In a single-player embodiment, the same goal is encouraged by having a maximal number of point availability at the beginning of a round. Cumulative point deductions are made for quizzes taken, wrong guesses, and filler-words unmasked.
A round is completed with the solution of the top-level expression. As mentioned, not all possible clues have to be revealed, nor do all quiz-able-words have to be the subject of one or more quizzes. The goal of a round is to get the most points, which favors the player who solves the top-level expression.
An example of a scoring system for a multiple player mode of the combined guess-the-phrase and trivia game embodiment of a QNQ could be expressed as follows:
Following the example round described, suppose a three player round with players “Betty”, “Ann” and “Sally”. Suppose Ann solves first clue 230A1 of the first quiz-able-word, Sally solves its second clue 230A2, and then solves first quiz-able-word 220A. Then suppose Betty solves first and second clues 230A3 and 230A4 of the second quiz-able-word, and solves the phrase, by-passing the solution of the second quiz-able-word 220B. Suppose that Betty makes three incorrect guesses, Ann makes one, and Sally one. Suppose Ann buys one filler-word.
Suppose that “f” is 1 and “n” is 2, and “p” is 500. Then “q” is “250”. Suppose that “y” is “3” and “d” is “50”.
At the end of the round, Betty will have earned 500 points for solving the phrase. Betty also earns 62.5 points (“(¼)×250”) each for two clues on the second quiz-able-word. Betty is also attributed 62.5 points as if she had solved one more clue on the second quiz-able-word. Betty is also attributed 62.5 points for revealing the second quiz-able-word when the phrase was solved. Betty is penalized 150 points for incorrect guesses. Betty's point total for the round is therefore 600.
Ann will have earned 62.5 points for solving one clue on the first quiz-able-word. Ann is also penalized 50 points each for an incorrect guess and for buying a filler-word. Ann's point total for the round is therefore negative 37.5.
Sally will have earned 62.5 points for solving one clue on the first quiz-able-word. Sally is also attributed 62.5 points as if she had solved one more clue on the second quiz-able-word. Sally is also attributed 62.5 for solving the second quiz-able-word. Sally is also penalized 50 points for an incorrect guess and her point total for the round is therefore 137.5.
Point totals for each round are accumulated by players until the match is finished. The player with the highest point total at the end of the match wins the match.
Many variations are possible in other embodiments. For example, the number of points available for solving a quiz-able-word was the same for solving a clue on a quiz-able-word (actually or by attribution), but these could be different. Also, there could be exceptions for point deductions. For example, a player who solves a clue might have an opportunity immediately following to make a guess without penalty in the case of a wrong attempt. A major variation would include adjustments for quiz difficulty, discussed further below. Other variations might include having player input into the number of points to be distributed for a round.
Other embodiments are possible which would not discourage the players from taking more quizzes than necessary to solve the top-level phrase. Some embodiments might not emphasize the solution of the top-level quiz. Such embodiments might simply use the hierarchical or chained structure of an embodiment and its supporting interface as a novel quiz framework.
In the present embodiment, quizzes are selected during a round of play based on player actions. In other embodiments, the system could select quizzes randomly or based on an integrated game of chance. Quizzes might pop-up based on some constant or random time interval or a musical rhythm.
In the present embodiment, quizzes were selected from defined categories. Other embodiments might emphasize sub-categorization, and quiz-difficulty ratings. Others might provide highly custom quizzes or to provide a handicapping system.
Control is the ability of a player to determine the next step of the game through the user interface. In multi-player modes, control is passed between players. A control system refers to the management of defined rules to distribute control between players.
In the present embodiment, certain actions can be taken by a player with control. These include selecting a quiz on a quiz-able-word, unmasking a filler-word, guessing at a quiz-able-word or guessing at the top-level phrase. Control is passed from player to player in logical sequence based on the result of actions during a round. Control to start each round within a match is passed from player to player sequentially.
Answering rules denote the rules for answering a quiz without necessarily having control. Different embodiments could include token-based or “sequential” answering systems, and “first-response” answering systems. In a sequential answering system, players take turns attempting to answer a quiz, starting with the player in control. If the player in control passes or makes an incorrect guess, answering privilege passes to the next player in the control sequence.
In a first-response answering system all players can answer a quiz at the same time. The game system determines the first player to answer correctly and awards points to that player. Control passes to the player who solved the quiz.
Control and answering rules, in combination with scoring rules, can support the objective of solving the top-level quiz in as few steps as possible, or some other objective. The control and answering rules also tend to recognize previous achievement in the round. This is done by allowing a player to continue to control the round if no other player is having greater current success.
For multiple-player embodiments, time limits apply. A time limit applies to control wherein a player with control must take an action within a certain time. A time limit also applies to answering privilege wherein a player must make a guess within a certain time. A visual aid, such as answering-turn-display component 470 shown in
In the present embodiment, before a match begins, the control sequence of the players is established. The first player in the sequence has control at the start of the first round. The control sequence does not change during a match. At the beginning of a new round, control passes to the player who follows the player who had control at the beginning of the previous round.
A player with control can generally; guess at the phrase; guess at any unsolved quiz-able-word; reveal any unrevealed filler-word, and; initiate a trivia-quiz on a quiz-able-word, if applicable. Revealing a filler-word is restricted to once per possession of control.
If a phrase-guess is successful, the round is finished. If a quiz-able-word is solved or a filler-word is revealed, control is maintained. If a phrase or work guess is unsuccessful, control is passed the next player in sequence.
If a trivia-quiz is initiated, an answering privilege index is set, following the same sequence as the control sequence and starting with the player with control. All players have an opportunity to attempt the trivia-quiz until it is solved. If the trivia-quiz remains unsolved, the player with control maintains control. If solved, the player who provided the solution is granted control.
A player with answering privilege may voluntarily pass answering privilege to the next player in the control sequence. Answering privilege is lost if the time limit is exceeded. There are also rules to end a round when no further actions can be taken.
There is an advantage to starting a round in control. Therefore, the number of rounds per match should be evenly divisible by the number of players. Many other embodiments are possible. For example, control might pass automatically after a certain number of actions are taken regardless of whether the previous actions were successful. Players may also be able to interrupt control for certain actions, such as attempting the top-level phrase.
Linked quizzes are formed on the basis of matching criteria that determine if a quiz answer is a suitable clue to a one-higher level quiz. An example matching criterion could be that a quiz-able-word is contained somewhere in a clue offered by a one-lower level quiz. Such was the case in the sample round, where quiz-able word “fly” was contained in the clue “Marty McFly”. Synonym matching was also shown.
The quiz-able-word-to-clue-matching criteria are displayed to all players at the start of a round or match as applicable (not shown). The criteria would continue to be viewable through some user interface component (not shown). An embodiment could provide user configurable matching criteria that could be determined by the players or the host depending on the player mode.
The number of total available quizzes available or quizzes-per-category available for each quiz-able-word does not have to be constant. However, there might be some minimum threshold of quizzes available for each quiz-able-word in an expression in order for the higher-level expression to qualify for use in an embodiment.
Quiz-to-answer-matching criteria are rules used by a validation system. These rules specify how closely a guess must match a stored quiz answer in order for the attempt to be deemed successful. One example matching rule would be to dismiss the relevance of character case in any guess.
Quiz-to-answer-matching criteria would apply to a text-based trivia-quiz guessing design, as indicated by
In the present embodiment, the correct answer from the quiz database is presented as the clue to the one-higher quiz. Other embodiments might present the guess instead.
The present embodiment includes a runtime computer program means. The runtime computer program means is described above and in the class diagram shown in
A class diagram of the present embodiment is shown in
Four subtypes of node are: a guess-the-phrase-phrase (“GuessThePhrPhr”) class 1714; a guess-the-phrase-word (“GuessThePhrWd”) class 1717; a trivia-quiz-answer (“TriviaQuizAnswer”) class 1716; and a trivia-quiz-question (“TrivQuizQues”) class 1713. In the combined-guess-the-phrase and trivia-quiz embodiment, these classes represent nodes at levels one, two, three and four respectively. Classes 1714, 1717, 1716, and 1713 are shown by lines 1772, 1761, 1760, and 1759, respectively, as well as 1792, as being generalized by 1711.
An aggregation 1763 indicates that a guess-the-phrase-phrase class 1714 instance is a parent of one-to-many guess-the-phrase-word class 1717 instances. An aggregation 1764 indicates that a guess-the-phrase-word class 1717 instance is the child of exactly one guess-the-phrase-phrase class 1714 instance. Guess-the-phrase-word class 1717 instances can be quiz-able-words or filler-words.
An aggregation 1770 indicates that a guess-the-phrase-word class 1717 instance is a parent of zero-to-many trivia-quiz-answer class 1716 instances. An aggregation 1762 indicates that a trivia-quiz-answer class 1716 instance is a child of exactly one guess-the-phrase-word class 1717 instance.
An aggregation 1758 indicates that a trivia-quiz-answer class 1716 instance is a parent to exactly one trivia-quiz-question class 1713 instance. Aggregation 1757 indicates that a trivia-quiz-question class 1713 instance is a child of exactly one trivia-quiz-answer class 1716 instance.
A trivia-quiz-category class (“TrivQuizCat”) class 1710 instance holds all of the categories that trivia-quizzes can be placed in. An aggregation 1750 indicates the trivia-quiz-question class 1713 referencing the trivia-quiz-category class 1710 with multiplicities of one and zero-to-many.
An aggregation 1753 indicates a tree (“Tree”) class 1712 referencing node class 1711 with multiplicities of many and one. Aggregation 1753 is shown linking the tree class 1712 with node class 1711; the actual links are between tree class 1712 and derived node classes 1713, 1714, 1716 and 1717. Each node belongs to exactly one tree and each tree has “many” nodes. In the present embodiment, a tree has a practical lower limit of five nodes. In other embodiments, a “tree” could have as few as three nodes, representing a linear sequence. While not essential at runtime, tree class 1712 represents quiz-trees as units and has quiz-tree level attributes and methods.
An aggregation 1754 indicates a round (“Round”) class 1715 referencing tree class 1712 with multiplicities of one and one. A tree can be in one round, and the same tree can be in no more than one round in the same match. A round can have only one tree in the present embodiment. An aggregation 1773 indicates a match (“Match”) class 1718 referencing round class 1715 with multiplicities of one-to-many and one. An aggregation 1766 indicates match class 1718 referencing a player (“Player”) class 1720 with multiplicities of one-to-many and one. An aggregation 1778 indicates round class 1715 referencing player (“Player”) class 1720 with multiplicities of one-to-many and one
A game (“Game”) class 1719 instance is responsible for; running a match, instantiating objects, accessing data via the other model classes, receiving messages from the view via a controller (“Controller”) class (or classes) 1740, and presenting the view.
Aggregations 1756, 1769, and 1771 indicate game class 1719 referencing trivia-quiz-question class 1713, trivia-quiz-answer class 1716, and guess-the-phrase-word class 1717, respectively, with generalized multiplicities of zero-to-many and one. Embodiments can support node persistence whereby nodes are instantiated as required. Depending on the management of node persistence, different multiplicities can arise. An aggregation 1765 indicates game class 1719 referencing guess-the-phrase-phrase class 1714 with multiplicities of one and one. In the present embodiment, the game would only ever access one top-level expression at a time. The multiplicity of one on the game side in aggregations 1756, 1769, 1771, and 1765 reflects that the same node is not shared by more than one game, since nodes contain state information.
Aggregation 1774 indicates game class 1719 referencing player class 1720 with multiplicities of one-to-many and one. Embodiments with players accessing more than one game are also possible. Association 1767 indicates an association between game class 1719 and match class 1718 with multiplicities of one and one. Association 1768 indicates an association between game class 1719 and round class 1715 with multiplicities of one-to-many and one. Association 1755 indicates game class 1719 accessing tree class 1712.
A clock (“Clock”) class 1709 maintains time for purposes of managing answering privilege and control. Aggregation 1775 indicates game class 1719 referencing clock class 1709 with multiplicities of one and one. In the present embodiment, time to respond is maintained in the model and there is no need to maintain time for control and answering privilege simultaneously. Embodiments with other multiplicities are possible.
The view is represented by classes numbered between 1721 and 1732. Shown are associations between the game class and the view classes. On the view side a lower multiplicity of zero indicates that the component does not have to be instantiated at any given moment of time.
In multi-player modes, player(s) without the ability to take action on the game will have view access to the interface presented to the player who can take action on the game. This can be accomplished through application sharing technology. The player with ability to take action has control access. View access allows players without control to see what actions are being taken on the game. If answering privilege is assigned to a player, only the player with answering privilege will be able to take an action on the game. If answering privilege is not assigned to any player, only the player with control will be able to take an action on the game.
Shown are a quiz-and-word-guessing-selector-graphical-user-interface (“Q_W_GuessSelGUI”) class 1726, depicted in
Shown are a navigation-mode-GUI (“NavModeGUI”) class 1729, first depicted graphically at runtime in
Associations 1783, 1785, and 1784, indicate an association between game class 1719, and view classes 1729, 1728, and 1730, respectively. Each of these associations is represented by a line extending from game class 1719 to the respective view class. In each of associations 1783, 1785, and 1784, the multiplicities are zero-to-one and one. Furthermore, only-one type of phrase-component-GUI class 1732 will be displayed at a time.
Controller (“Controller”) class 1740 represents one or more controllers accessed by view classes 1725 through 1730. The controller class passes messages from the applicable view classes to game class 1719. Association 1779 represents all of the associations between controller class 1740 and classes 1725 through 1730. In each case there is a multiplicity of one on controller class 1740 and zero-to-one on view classes 1725 through 1730. Association 1780 shows controller class 1740 accessing game class 1719.
Shown is a turn-GUI (“TurnGUI”) class 1721, graphically depicted as answering-turn-display component 470 in
Classes 1721, 1724 and 1731 are not subject to player action and do not access controller class 1740. Associations 1776, 1777, and 1781 indicate an association between game class 1719, and view classes 1721, 1724, and 1731 respectively. The multiplicities for associations 1776 and 1781 are zero-to-one and one. The multiplicities for association 1777 are one and one.
At the beginning of a game, an instance of game class 1719 initializes a new game, the player(s), a new match, and a new round. The game instance creates an instance of guess-the-phrase-phrase class 1714. It also obtains the top-level expression for the round by initializing guess-the-phrase-word class 1717 objects for each word in the phrase. The game instance takes the key information from these nodes and passes it to navigation-mode-GUI class 1729 object, which it instantiates. As part of initialization, the game sets control to a player in the model. The game creates sessions with each gaming device, and passes a player reference to each client. The game also instantiates control-and-score-GUI class 1724. In multi-player modes, the game also grants view access to players without the ability to take action. It also manages alternation between control and view access as control and answering privilege alternate.
When node information is sent from the model to the view, a unique identifier or reference for each node is sent to the clients. The view passes this reference to a controller class 1740 instance with user interface events directed to the model. Each node that is available for display or querying in the view is therefore related back to the model.
Next, controller object 1814 calls a get-trivia-quiz-by-category-total (“getTrivQuizByCatTot( . . . )”) method 1852 of game object 1816. Game object 1816 is an instance of game class 1719. Game object 1816 calls its validate-control (“validateControl( . . . )”) method 1854 to validate that player 1850B has control. Game object 1816 then calls a get-node-state (“getNodeState( )”) method 1856 of a guess-the-phrase-word object 1818 for the guess-the-phrase-word node ID. Object 1818 is an instance of class 1717.
A node can be in various states which resolve to the node being either available or unavailable for further activity. For example, a node could be “answered”, making it unavailable for further activity. On a condition 1858 that the node-state is available (“[nodeState=“avail”]”), game object 1816 calls its set-active-node (“setActiveNode( . . . )”) method 1859 to set guess-the-phrase-word node ID 1850A as the active node. Setting a node as active indicates it to be the node set to receive further player actions. If the node state is not available, error handling (not shown) will reject the sequence and send an appropriate response to the user interface. Condition check 1858 in the model should not find an unavailable node. This is because the user interface is updated to reflect the states in the model.
Game object 1816 next calls a get-trivia-quiz-by-category-total (“getTrivQuizByCatTot( )”) method 1860 of 1818. Object 1818 returns trivia-quiz-by-category-total (“trivQuizByCatTot”) 1862, an array of the total number of trivia-quizzes by category. It next invokes a display quiz-and-word-guessing-selector-GUI (“displayQ_W_GuessSelGUI( . . . )”) method 1864 to instantiate quiz-and-word-guessing-selector-GUI object 1812, with 1850A and array 1862 containing the total number of trivia-quizzes by category. Object 1812 is an instance of class 1726. Quiz-and-word-guessing-selector-GUI object 1812 is graphically depicted in
Next, controller object 1814 sends a get-trivia-quiz-by-category (“getTrivQuizByCat( . . . )”) message 1952 to game object 1816, to get the next trivia-quiz by category, passing 1850A, 1850B, and 1950A. Game object calls its validate-control method 1854 to validate that player 1850B has control. It then calls a next-trivia-quiz-by-category-index (“nextTrivQuizbyCatIndx( . . . )”) method 1954 of guess-the-phrase-word object 1818 for the guess-the-phrase-word node ID, passing category 1950A. Method 1954 increments a trivia-quiz-category index by one.
Game object 1816 next calls a lookup-next-trivia-quiz-answer-node (“lookupNextTQANd( . . . )”) method 1956 of guess-the-phrase-word object 1818 for the guess-the-phrase-word node, to get a reference to the next trivia-quiz answer node in an array for supplied category 1950A.
Game object 1816 next calls a lookup-trivia-quiz-question-node (“lookupTQQNd( )”) method 1958 of a trivia-quiz-answer object 1910 for the trivia-quiz-answer node. Object 1910 is an instance of class 1716. Object 1910 returns a reference 1959 to the trivia-quiz-question node (“TQQNd”).
Game object 1816 next calls a get-node-state (“getNodeStateo”) method 1960 of a trivia-quiz-question object 1912 for the trivia-quiz-question node (“TQQNd:TrivQuizQues”). Object 1912 is an instance of class 1713. On condition 1858 that the node state is available, game object 1816 calls its set-active-node (“setActiveNode( . . . ”) method 1962 to set trivia-quiz-question node ID (“TQQNdID”) 1962A as the active node. Game object 1816 next calls a get-question-information (“getQuestionInfo( )”) method 1964 of 1912.
Methods 1950 to 1964 of
Game object 1816 next updates the view. It sends a close-quiz-and-word-guessing-selector-GUI (“closeQ_W_GuessSelGUI( )”) message 1966 to close quiz-and-word-guessing-selector-GUI object 1812. Game object 1816 next sends a display-trivia-quiz-GUI (displayTriviaQuizGUI( . . . )”) message 1968, instantiating a trivia-quiz-GUI object 1914. Object 1914 is an instance of class 1725. Message 1968 passes trivia-quiz-question node ID 1962A, and trivia-quiz question 1968A which is the text for the question. An example of this text as represented in the interface is 412A1 of
A display-turn-GUI (“displayTurnGUI( )”) message 1970 instantiates a turn-GUI object 1916. Message 1970 passes; an array of players, in order of control (“controlSeq”) 1970A, an index 1970B of 1970A for the player with answering privilege (“ansPrivIndex”), and a reference to a “clock” object 1970C, to keep the time remaining for an answer.
Controller object 1814 sends a validate-attempt (“validateAttempt( . . . )”) message 2052 to game object 1816, passing 1962A, 1850B, and 2050A. Next, game object 1816 calls its validate-answering-privilege (“validateAnsPriv( . . . )”) method 2054 to validate that the player has answering privilege. It then calls a lookup-trivia-quiz-answer-node (“lookupTQANd( )”) method 2056 of trivia-quiz-question object 1912 for the trivia-quiz-question node, getting a reference 2057 to the trivia-quiz answer node (“TQANd”).
Game object 1816 next calls a get-node-state (“getNodeState( )”) method 2058 of trivia-quiz-answer object 1910 for the trivia-quiz-answer node. On condition 1858 that the node state is available, game object 1816 calls a set-active-node (“setActiveNode( . . . )”) method 2059 for a trivia-quiz-answer node, to set a trivia-quiz-answer node ID (“TQANdID”) 2059A as the active node.
Game object 1816 next calls a get-valid-answers (“getValidAnswers( )”) method 2060 of object 1910, which returns an array of valid answers (“validAnswers[ ]”) 2061. Each valid answer in array 2061 is considered a successful match for the corresponding question. Object 1816 next calls its check-attempt (“checkAttempt( . . . )”) method 2062 to check attempt 2050A against array of valid answers 2061. The result is ‘success’ or ‘failure’, which determines the subsequent sequence.
Game object 1816 calls a get-answer (“getAnswer( )”) method 2154 of 1910. This method gets the exact answer for the trivia-quiz question that will be displayed in the user interface. Game object 1816 next calls a lookup-guess-the-phrase-word-node (“lookupGTPWNd( )”) method 2156 of trivia-quiz-answer object 1910 for the trivia-quiz-answer node to get a reference to the guess-the-phrase-word node. Game object 1816 then calls a lookup-guess-the-phrase-phrase-node (“lookupGTPPNd( )”) method 2158 to get a reference 2160 to the (top-level) guess-the-phrase-phrase node. Game object 1816 next calls its set-active-node (“setActiveNode( . . . )”) method 2162 to set the active node to guess-the-phrase-phrase node ID (“GTPPNdID”) 2162A.
Game object 1816 next initiates an update-score (“updateScore( . . . )”) sequence 2164, passing a reference to the player (“player”) 1850B whose score is to be updated and the points (“points”) 2164A, by which the score is to be updated. The score is updated in a round object 2110, which is a current instance of round class 1715. The score is also updated in a match object 2112, which is a current instance of match class 1718. Update-score sequence 2140 is covered with
On a condition 2165 that the player who answered the question is not the player who currently has control, game object 1816 calls its set-control-index (“setControlIndex( . . . )”) method 2166 to set control to current player 1850B. Game object 1816 calls its reset-answering-privilege-index (resetAnsPrivIndex( )”) method 2168 to reset the answering-privilege index to the index number of the player with control.
Game object 1816 also calls an update-score (“updateScore( . . . )”) method 2254 of match object 2112, passing 1850B and 2164A. It then calls a get-scores (“getScores( )”) method 2256 of match object 2112 to get an array of player scores for the match.
Game object 1816 also calls an update-control-and-score-GUI (“updateCntrl&ScoreGUI( . . . )”) message 2354 to control-and-score-GUI (“Cntrl&ScoreGUI”) object 2310. Object 2310 is an instance of class 1724. Score-and-control component 9530 is depicted in
An alternative combination fragment 2452 contains two mutually exclusive message sequences. Condition 2454 describes a case where one or more players have yet to respond to the current trivia-quiz. Condition 2454 checks that control index 2354C value is not equal to answering-privilege index 1970B value. On condition 2454, an update-trivia-quiz-GUI (“updateTrivQuizGUI( . . . )”) message 2456 is sent to trivia-quiz-GUI object 1914, passing trivia-quiz-question node ID 1962A.
Alternatively, on a condition 2458 that control index 2354C value is equal to answering-privilege index 1970B value, a close-trivia-quiz-GUI (“closeTriviaQuizGUI( )”) message 2460 is sent to trivia-quiz-GUI-object 1914. Game object 1816 then calls its reset-answering-privilege-index (“resetAnsPrivIndex( )”) method 2168 to reset the answering-privilege index. Method 2168 sets the answering-privilege index to the control index. Game object 1816 next calls a lookup-trivia-quiz-answer-node method 2056 of trivia-quiz-question object 1912 for the trivia-quiz-question node. It gets a reference (not shown) to the trivia-quiz-answer-node. Game object 1816 then calls lookup-guess-the-phrase-word-node method 2156 to get a reference to the guess-the-phrase-word node (not shown). Game object 1816 next calls lookup-guess-the-phrase-phrase-node method 2158 to get a reference (not shown) to the guess-the-phrase-phrase node. Game object 1816 next calls its set-active-node method 2162 to set the active node to guess-the-phrase-phrase node ID 2162A. Game object 1816 then sends an update-navigation-mode-GUI message 2352 to navigation-mode-GUI object 1810, passing guess-the-phrase-phrase node ID 2162A.
With either alternative, game object 1816 sends an update-control-and-score-GUI message 2354 to control-and-score-GUI object 2310. Message 2354 includes round and match scores 2354A and 2354B, as well as control sequence array 1970A and control index 2354C.
Game object 1816 calls its validate-answering-privilege method 2054 to validate that player 1850B has answering privilege. If for any reason player 1850B does not have answering privilege, error handling (not shown) occurs. Game object 1816 next calls next-answering-privilege method 2450 to pass answering privilege to the next player in sequence. Alternative combination fragment 2452, describing the remainder of the sequence, is the same as in
Next, a submit-word-guess (“submitWordGuess( . . . )”) message 2650 is sent from word-guessing-mode-GUI (“WdGuessingModeGUI”) object 2610 to controller object 1814. Passed in message 2650 are guess-the-phrase-word node ID 1850A, a reference 1850B to the player, and a word attempt (“wordAttempt”) 2650A. Message 2650 deals with a second guessing means. The rest of
Next, controller object 1814 send a validate-word-attempt (“validateWordAttempt( . . . )”) message 2652 to game object 1816, passing 1850A, 1850B and 2650A. Game object 1816 next calls its validate-answering-privilege method 2054, validating if player 1850B has answering privilege. It next calls get-node-state method 1856 of guess-the-phrase-word instance 1818 for the guess-the-phrase-word node. On condition 1858 that the node state is available, game object 1816 calls its set-active-node method 1859 to set the active node to the guess-the-phrase-word node ID 1850A. Game object 1816 then calls a get-valid-answers (“getValidAnswers( )”) method 2654 of guess-the-phrase-word instance 1818 for the guess-the-phrase-word node. Method 2654 returns an array of valid word answers (“validWdAnswers[ ]”) 2655. Game object 1816 next calls its check-word-attempt (“checkWordAttempt( . . . )”) method 2656 to check word attempt 2650A against array of valid answers 2655.
Game object 1816 next calls a get-answer (“getAnswer( )”) method 2752 of object 1818. Method 2752 gets the exact answer for the word that will be displayed in the user interface. Game object 1816 then calls lookup-guess-the-phrase-phrase node method 2158 to get a reference 2160 to the guess-the-phrase-phrase node. Object 1816 next calls its set-active-node method 2162 to set the active node to guess-the-phrase-phrase node ID 2162A.
Game object 1816 next initiates update-score sequence 2164, passing player reference 1850B and points 2164A. The score is updated in round object 2110, and in match object 2112 as detailed in update-score sequence 2140 (
On condition 2165 that the player who answered the question is not equal to the player who currently has control, game object 1816 calls its set-control-index method 2166 to set control to the current player 1850B. Game object 1816 next calls its reset-answering-privilege-index method 2168 to reset the answering-privilege index to the index number of the player with control.
Game object 1816 next sends an update-navigation-mode-GUI message 2352 to navigation-mode-GUI object 1810. Message 2352 passes 2162A and a word answer (“wordAnswer”) 2753 to be displayed in the phrase component. In
Game object 1816 calls its next-control (“nextControl( )”) method 2850 to pass control to the next player in the control sequence. Object 1816 then calls its reset-answering-privilege-index method 2168.
Game object 1816 next calls lookup-guess-the-phrase-phrase-node method 2158 of object 1818 to get a reference to the guess-the-phrase-phrase node. It next calls its set-active-node method 2162, setting the active node to guess-the-phrase-phrase node ID 2162A. Game object 1816 then sends update-navigation-mode-GUI message 2352 to navigation-mode-GUI object 1810, passing guess-the-phrase-phrase node ID 2162A. Object 1816 then sends update-control-and-score-GUI message 2354 to control-and-score-GUI object 2310, passing 2354A, 2354B, 1970A, and 2354C.
Game object 1816 calls validate-control method 1854. Object 1816 next calls get-node-state method 1856 of the guess-the-phrase-word object. On condition 1858 that the node state is available, game object 1816 calls set-active-node method 1859 to set the active node to guess-the-phrase-word node ID 1850A. Game object 1816 then calls get-answer method 2752 of guess-the-phrase-word instance 1818 for the guess-the-phrase-word node, to get the filler-word answer. Object 1816 then calls set-node-state method 2750 of 1818 to set the node state to “revealed” 2955.
Game object 1816 next sends update-score messages 2164, passing 1850B and 2164A. Score is updated in round object 2110, and match object 2112 as detailed in update-score sequence diagram 2140.
Game object 1816 sends an update message 2352 to navigation-mode-GUI object 1810, passing phrase node ID 2162A, word node ID 1850A, and word answer 2753. Game object 1816 also sends an update message 2354 to control-and-score-GUI object 2310, passing round and match scores 2354A and 2354B, control sequence array 1970A and control index 2354C.
Controller object 1814 sends a submit-phrase-guess message 3052 to game object 1816, passing 2162A, 1850B, and 3050A. Game object 1816 calls its validate-answering-privilege method 2054 to validate that player 1850B has answering privilege. Game object 1816 then calls get-node-state method 3054 of a guess-the-phrase-phrase object 3012 for the guess-the-phrase-phrase node. On condition 1858 that the node state is available, game object 1816 calls its set-active-node method 2162 to set the guess-the-phrase-phrase node 2162A as active.
A loop-combined fragment 3058 shows the sequence for validating the phrase attempt word by word. Loop 3058 continues while condition 3059 is met. Condition 3059 checks that the previous word in the phrase that was submitted for checking was found to be correct. For each “n” 3056A word in the phrase, game object 1816 calls a lookup-nth-guess-the-phrase-word node (“lookupGTPWdNd(n)”) method 3056 of guess-the-phrase-phrase object 3012.
Game object 1816 next calls a get-nth-word-node-state (“getNodeState(n)”) method 3062 of n-th guess-the-phrase-word object 3060A. On a condition 3063 that the n-th word node-state is unsolved, game object 1816 calls a get-valid-answers (“getValidAnswers( )”) method 3064 of the n-th guess-the-phrase-word object 3060A. Game object 1816 calls a check-word-attempt (“checkWdAttempt( )”) method 3066 to validate n-th word attempt 3050B against an array of valid answers 3065. If the loop executes without breaking, the phrase attempt is valid; otherwise it is invalid.
Game object 1816 calls its next-control method 2850 to pass control to the next player in the control sequence. Game object 1816 then calls reset-answering-privilege-index method 2168. Game object 1816 next sends an update-navigation-mode-GUI message 2352 to navigation-mode-GUI object 1810, passing guess-the-phrase-phrase node ID 2162A. Game object 1816 also sends message 2354 to control-and-score-GUI object 2310, passing 2354A, 2354B, 1970A, and 2354C.
Game object 1816 sends update-score messages 2164. Score is updated in round object 2110, and match object 2112 as detailed in update-score sequence 2140 shown in
Game object 1816 sends a draw-finished-mode-GUI (“drawFinishedModeGUI( . . . )”) message 3254 to a finished-mode-GUI-object 3210, which replaces navigation-mode-GUI object 1810. Message 3254 passes 2162A and phrase answer 3253. Game object 1816 also sends message 2354 to control-and-score-GUI object 2310, passing 2354A, 2354B, 1970A, and 2354C.
The features of the present embodiment, as well as other embodiments to follow, are supported by a quiz database. The relational database design contains structures for supporting a game, as well as for building quiz-trees and maintaining history information.
A discussion of the schema used for quiz-generation is included in the discussion of
A quiz database can contain raw information on which quiz-trees are to be built.
Each expression in expression entity 3310 is identified by a primary key “ExpressionID” 3310A. A primary key column 3352 is indicated by a symbol “PK” 3350. Attributes are used to help classify expressions to assist in customizing and automating the assembly of quiz-trees. Attributes for expression entity 3310 include; a number of words in an expression (“NumWords”) 3310B, a number of quiz-able-words in an expression (“NumQuizzableWords”) 3310C, and a number of filler or non-quiz-able-words in an expression (“NumNonQuizzableWords”) 3310D. Other attributes are flags “IsSuitableForQuestionYN?” 3310E, “IsSuitableForAnswerYN?” 3310F and “IsSuitableForGuessThePhraseYN?” 3310G that indicate the suitability of the expression for specific types of nodes.
A subject category (“SubjectCategory”) entity 3314 contains a primary key, category code (“CategoryCode”) 3314A and an attribute “CategoryDescription” 3314B. Composite entity “CannedQuiz_SubjectCategory” 3312 contains a composite key comprising foreign-key-primary-key column 3312A from primary key 3311A of entity 3311, and foreign-key-primary-key column 3312B from primary key 3314A of entity 3314. Subject category information is stored at the expression-level to assist in building quiz-trees comprising categorized quizzes.
Expression entity 3310 has a one-to-many relationship with an expression-word (“ExpressionWord”) entity 3410. Entity 3410 represents the words that are contained in expressions. Entity 3410 has a composite primary key consisting of a foreign-key-primary-key column 3410A from primary key 3310A of entity 3310 and a word-number-in-expression (“WordNumInExp”) attribute 3410B. Attribute 3410B records the word position in its expression. Entity 3410 contains attribute “IsDictionaryWordYN?” 3410C. This attribute indicates whether or not an expression-word is a dictionary-word. A dictionary-word is a word derived from an external or custom dictionary. If an expression word is not a dictionary word it is a non-dictionary word. A non-dictionary word might by a word like “McFly”, a fictional last name that is not established in the lexicon. However, in the remaining discussion, it is assumed all expression-words are stored in dictionary word entity 3416. Entity 3410 contains attribute “IsQuizzableWordYN?” 3410D. Attribute 3410D indicates whether or not an expression-word is a quiz-able-word in its expression. If a word is not a quiz-able-word it is a filler-word. Expression-word entity 3410 contains attribute “IsCapitalizedYN?” 3410E. Attribute 3410E indicates whether or not an expression-word appears with capitalization in its phrase, such as a first or last name.
A dictionary-word (“DictionaryWord”) entity 3416 contains words that are sourced from a dictionary. Entity 3416 contains a primary key “DictionaryWordID” 3416A and a word-text “WordTxt” attribute 3416B, for dictionary-word text. Composite entity “ExpressionWordDictWord” 3412 has a composite primary key 3412P referencing primary key columns 3410A, 3410B, and 3416A. These are foreign-key-primary-keys 3412A, 3412B, and 3412C respectively in entity 3412.
Non-dictionary word (“NonDictionaryWord”) entity 3418 contains words that are provided from outside a dictionary. Practically, it represents a second repository of words. Entity 3418 has a primary key “NonDictionaryWordID” 3418A and word-text (“WordTxt”) attribute 3418B, that has the text of a non-dictionary word. Composite entity “ExpressionWordNonDictWord” 3414 has a composite primary key 3414P consisting of primary key columns 3410A, 3410B, and 3418A.
Another entity, dictionary-word—dictionary-word—contained by “DictWd_DictWd:ContainedBy” 3511 is similar to entity 3510. An example record would contain a DictionaryWordID of “ointment” and a DictionaryWordID1 of “appointment”. Given the word “ointment” a lookup would get the word “appointment”. A match on these two words allows a node representing the expression “Appointment for Love” to be related to a node representing the word “ointment”.
The remainder of the composite entities in
A dictionary-word—dictionary-word—synonym-of (“DictWd_DictWd:SynonymOf”) entity 3520 might contain as an example record the dictionary word IDs for the words “fly” and “bug”. A dictionary-word—dictionary-word—antonym-of (“DictWd_DictWd:AntonymOf”) entity 3522 might contain as an example record the dictionary word IDs for the words “love” and “hate”.
A dictionary-word—dictionary-word—root-or-derivative-of (“DictWd_DictWd:RootOrDerivOf”) entity 3518 has a foreign-key-primary-key 3518P. Primary key 3518P consists of foreign key column 3518A from primary key 3416A of dictionary word entity 3416, and a second foreign key column 3518B from primary key 3416A of entity 3416. Entity 3518 might contain as an example record the dictionary word IDs for the words “fly” and “flight”. Other relations for relating dictionary words are possible.
An “ExpWdDictWd_DictWd_DictWd:RootOrDerivativeOf” entity 3610 is a composite of “ExpressionWordDictWord” entity 3412 and “DictWd_DictWd:RootOrDerivOf” entity 3518. Its primary key 3610P is concatenated from complete primary key 3412P of entity 3412 and complete primary key 3518P of entity 3518. Entity 3610 has foreign-key-primary-key columns 3610A, 3610B, 3610C, 3610D, and 3610E from primary key columns 3412A, 3412B, 3412C, 3518A, and 3518B respectively. There is a record in 3610 for each match of 3412C in 3412 to 3518A in 3518.
An entity “ExpWdDictWd_ExpWdDictWd_DictWd-DictWd: RootOrDerivativeOfl” 3612 is a composite entity of entities 3610 and 3412. Its primary key is composed of foreign-key-primary-key columns 3612A-3612F. These refer to primary key columns 3412A, 3412B, 3412C, 3610A, 3610B, and 3610C respectively. Entity 3612 also has foreign keys 3612G and 3612H referring to 3610D and 3610E respectively.
There is a record in entity 3612 for every match of 3412C in 3412 to 3610E in entity 3610. Entity 3612 serves as a lookup table to find expressions that contains a word that is a root or derivative of a word in another, given expression. Included with the expressions that are found from 3612 is the position 3612B of the root or derivate word in its expression.
In the sample iteration, entity 3610, or an equivalent query or view, is used to lookup “ExpressionID1” 3612D representing trivia-quiz answer “The Flight of the Phoenix” 230A2 from “ExpressionID” 3612A representing top-level phrase “A fly in the ointment” 1410. This is accomplished through a relationship of the word “fly” in the top-level expression with its derivative word “flight” in a trivia-quiz answer expression. Entity 3610 can therefore be called the “lookup-expression-having-a-root-or-derivative-word” entity.
In another of the four examples, top-level expression 1410 was related to trivia-quiz answer 230A1 by virtue of a ‘contained-by’ relationship, whereby the word “fly” is contained by “McFly”. Building composite entities like 3610 and 3612 by replacing entity 3518 with entity 3511 from
In another of the four examples, top-level expression 1410 was related to trivia-quiz answer 230B1 by virtue of another ‘contained-by’ relationship, whereby the word “ointment” is contained by “appointment”. Expressions 1410 and 230B1 would also be related by a “lookup-expression-having-a-containing-word” entity.
In the final example, top-level expression 1410 was related to trivia-quiz answer 230B2 by virtue of a ‘synonym’ relationship, whereby the word “ointment” is a synonym of “Cream”. Building composite entities like 3610 and 3612 by replacing entity 3518 with entity 3520 from
Node entity 3710 has a one-to-zero-or-one cardinality 3711 with a non-expression-node (“NonExpressionNode”) entity 3712. Primary key 3710A serves as a foreign-key-primary-key 3712A of entity 3712. Attributes of 3712 include flags indicating a type of non-expression-node. These flags are; is-it-a-canned-quiz-question-yes-or-no (“IsCannedQuizQuestionYN?”) 3712B, is-it-a-guess-the-phrase-word-node-yes-or-no (“IsGuessThePhraseWordYN?”) 3712C, is-it-a-multi-media-clip-yes-or-no (“IsMMClipYN?”) 3712D, is-it-a-sound-clip-yes-or-no (“IsSoundClipYN?”) 3712E, is-it-a-picture-yes-or-no (“IsPictureYN?”) 3712F, is-it-a-concealed-picture-puzzle-yes-or-no (“IsConcealedPicturePuzzleYN?”) 3712G. Only flags 3712A and 3712B apply to the detailed embodiment.
Node entity 3710 has a one-to-zero-or-one cardinality 3713 with an expression-node (“ExpressionNode”) entity 3714. Primary key 3710A serves as a foreign-key-primary-key column 3714A in entity 3714. Another foreign-key-primary-key column, an expression ID (“ExpressionID”) 3714B column, comes from primary key 3310A of entity 3310. A one-to-zero-or-many cardinality 3715 exists between entities 3310 and 3714. Together, 3714A and 3714B form the primary key of entity 3714. Flag attributes of 3714 indicate a type of expression-node. An is-it-a-derived-clue-yes-or-no (“IsDerivedClueYN?”) attribute 3714C indicates whether an expression-node is a clue (to a one-higher answer) that is derived from the quiz-generation schema. For example, a node can be related to a one-higher node on the basis of entity 3612 of
Node ID 3712A of “NonExpressionNode” entity 3712 is a foreign-key-primary-key column 3812A of a guess-the-phrase-word-node (“GuessThePhraseWordNode”) entity 3812. Foreign-key-primary-key columns 3812B and 3812C from primary key columns 3410A and 3410B of entity 3410 are the other primary key columns of entity 3812. There is one-to-zero-or-one cardinality 3813 between entities 3712 and 3812.
Composite tree-player (“Tree_Player”) entity 4112 has foreign-key-primary-key columns 4112A and 4112B referencing primary keys 4010A and 4110A respectively. Entity 4112 includes a player-rating-of-tree (“PlayerRatingOfTree”) attribute 4112C that records player ratings of trees. Individual player ratings are used to derive “AveragePlayerRating” 4010C of tree entity 4010.
Quiz data represented by entities shown in
Tree-formulator object 4210 next sends a select-expression (“selectExpression( . . . )”) message 4256 to expression entity 3310. A parameter 4256A is included with message 4256 to select where “IsSuitableForGuessThePhraseYN?” attribute 3310G is set to “Y” for “yes”. Message 4256 selects one record. Program handling (not shown) ensures that the same expression is not pulled more than once for the same quiz-tree as well as to randomize selection of expressions. Additional parameters could be sent to specify the type of expression to be selected. Expression entity 3310 could have additional attributes related to it to assist in fine-tuning the types of expressions composed into in a quiz-tree.
Expression entity 3310 returns values 4258; an expression ID (“ExpressionID”) 4258A, and number of words (“NumWords”) 4258B from columns 3310A and 3310B respectively of 3310. Tree-formulator object 4210 next sends an insert-node (“insertNode( . . . )”) message 4260 to node entity 3710. A parameter 4260A is sent to set column 3710B, “IsExpressionYN?” to “Y” for “yes”. Other parameters 4260B are sent, namely to set “IsNotAnExpressionYN?” to “N” for “no”. A parameter 4260C is included to set column 3710D to NULL, indicating that there is no parent node. This is an appropriate value only for a top-level node. A parameter 4260D is included to set column 3710E to “1”. Also passed is Tree ID 4254 which goes in column 3710F.
The DML inserts a record in entity 3710. A node ID (“NodeID”) is generated in column 3710A from a database sequence. A node ID (“NodeID”) value 4262 is returned to tree-formulator object 4210. Object 4210 next sends an insert-expression-node (“insertExpressionNode( . . . )”) message 4264 to expression-node entity 3714. Message 4264 passes node ID 4262 and expression ID 4258A which go in columns 3714A and 3714B respectively. Other parameters 4264A set columns 3714C and 3714D both to “N” for “no”. Parameter 4264B sets column “IsGuessThePhrasePhraseYN?” 3714E to “Y”.
Having inserted the top-level node, tree-formulator object 4210 uses a set-level-one-parent-node-ID (“setLevellParentNodeID( . . . )”) method 4266 to set a parent-node-ID variable to the (current) node ID 4262 of the top-level expression.
The tree-formulator sequence continues with
Entity 3410 returns corresponding column values 4252 for the selected record. “IsQuizzableWordYN?” 3410D, which is either “Y” for “yes” or “N” for “no” is returned as a value 4352A. Values 4352B of columns 3410C and 3410E are also returned.
Tree-formulator object 4210 next sends an insert-node (“insertNode( . . . )”) message 4354 to node entity 3710. A parameter 4354A is sent to set column 3710C, “IsNotAnExpressionYN?” to “Y” for “yes”. Other parameters 4354B are sent, namely to set “IsExpressionYN?” to “N” for “no”. A parent-node-ID (“parentNodeID”) parameter 4354C is included to set column 3710D to the node ID of the parent, top-level node. A parameter 4354D is included to set column 3710E to “2”. Also passed is Tree ID 4254 which goes in column 3710F.
The DML inserts a node record in entity 3710, generating a “NodeID” from a database sequence that is returned to tree-formulator object 4210 as node ID (“NodeID”) 4356. Object 4210 next sends an insert-non-expression-node (“insertNonExpressionNode( . . . )”) message 4358 to non-expression-node entity 3712. Message 4358 passes node ID 4356 to set 3712A and parameter 4358A to set “IsGuessThePhraseWordYN?” column 3712C to “Y”. Other parameters 4358B set columns 3712B, and 3712D-3712G to “N”.
Object 4210 next sends an insert-guess-the-phrase-word-node (“insertGuessThePhraseWordNode( . . . )”) message 4360 to entity 3812. Message 4360 passes node ID 4356 to set 3812A and a parameter 4360A to set column “ParentExpressionID” 3812B to the current expression ID of the top-level expression. Message 4360 also passes a parameter 4360B to set 3812C to the counter value “n” representing the word number in the expression.
The tree-formulator sequence continues with
On a condition 4456 that “IsQuizzbleWordYN?” value 4352A is set to “Y”, object 4210 calls its set-level-two-node-id (“setLevel2NodeID( . . . )”) method 4457 with node ID 4356 representing the n-th word. This keeps track of the level-two node ID in a variable.
Next, an inner loop executes. The inner loop completes node levels three and four of the quiz-tree. The number of times the loop executes is represented by “m”. The value of “m” could be set to an upper limit defined in a tree-formulator console (not shown) or hard coded. Otherwise, the number of iterations of the inner loop depends on the number of matching expressions found in the “lookup-expression” entities.
Part 1 of the inner loop is shown in loop combined fragment 4458. A reset-level-two-parent-node-ID (“resetLevel2 ParentNodeID( )”) method 4460 sets a “ParentNodeID” value to a level-two-node-id parameter 4461 value, which was returned from method 4457. The scope of this setting is restricted to the inner loop. Object 4210 sends a select-related-expression (“selectRelatedExpression( . . . )”) message 4462 to a lookup-expression entity 3612. Message 4462 passes parameters 4258A and 4350A. Parameter 4258A is used to restrict column 3612A and parameter 4350A is used to restrict column 3612B. Entity 3612 from
Entity 3612 returns one related-expression-id (“ExpressionID1”) 4464 from column 3612D per iteration of inner loop “m”. For an Oracle database, a PL/SQL cursor could be used to perform this type of function. Tree-formulator object 4210 next sends a “selectExpressionID_Answ” message 4466 to canned-quiz entity 3311. Message 4466 passes a parameter 4466A to select “ExpressionID_Answ” column 3311A from entity 3311 where column 3311A is equal to 4464. Entity 3311 returns an “ExpressionID_Answ” value 4468.
A condition 4472 checks that 4468 in not null. If 4468 is null, it means that related-expression-id 4464 is not a canned-quiz answer, and method or next statement 4470 starts a new iteration of the inner loop “m”.
Sequence Diagram—Tree Formulator Part 4—Inner Loop “m” Part 2—
Tree-formulator object 4210 next sends an insert-node (“insertNode( . . . )”) message 4552 to node entity 3710. A parameter 4552A sets column 3710B “IsExpressionYN?” to “Y”. Parameter 4552B is sent to set “IsNotAnExpressionYN?” column 3710C to “N” for “no”. A parent-node-ID (“parentNodeID”) parameter 4552C is included to set column 3710D to the node ID of the parent, quiz-able-word node. A parameter 4552D is included to set column 3710E to “3”. Also passed is Tree ID 4254 which goes in column 3710F.
The DML inserts a node record in entity 3710, generating a “NodeID” from a database sequence that is returned to tree-formulator object 4210 as node ID (“NodeID”) 4554. Object 4210 next sends an insert-expression-node (“insertExpressionNode( . . . )”) message 4556 to expression-node entity 3714. Message 4556 passes node ID 4554 to set column 3714A. Message 4556 passes parameter 4556A to set “ExpressionID” column 3714B to 4468. Other parameters 4556B set columns 3714C and 3714E to “N”. Parameter 4556C sets column “IsCannedQuizAnswerYN?” 3714D to “Y”.
Tree-formulator object 4210 next calls a set-level-three-parent-node-id (“setLevel3 ParentNodeID( . . . )”) method 4558, passing 4554, which sets a “ParentNodeID” parameter to the node ID of the quiz answer expression.
Next, object 4210 sends an insert-node message 4560 to insert a node into entity 3710. A parameter 4560A is sent to set column 3710C, “IsNotAnExpressionYN?” to “Y” for “yes”. A parameter 4560B is sent to set “IsExpressionYN?” 3710B to “N” for “no”. A parent-node-ID (“parentNodeID”) parameter 4560C is included to set column 3710D to the node ID of the parent, quiz-answer node. A parameter 4560D is included to set column 3710E to “4”. Also passed is Tree ID 4254 which goes in column 3710F.
The DML inserts a node record in entity 3710, generating a “NodeID” from a database sequence that is returned to tree-formulator object 4210 as node ID (“NodeID”) 4562. Object 4210 next sends an insert-non-expression-node (“insertNonExpressionNode( . . . )”) message 4564 to non-expression-node entity 3712. Message 4564 passes node ID 4562 which goes in column 3712A. Also passed is parameter 4564A to set “IsCannedQuizQuestionYN?” column 3712B to “Y”. Other parameters 4564B set columns 3712C-3712G to “N”.
Object 4210 next sends an insert-canned-quiz-question-node (“insertCannedQuizQuestionNode( . . . )”) message 4566 to entity 3810. Message 4566 passes node ID 4562 to set column 3810A. It also passes a parameter 4468 to set column 3810B. Message 4566 also passes parameter 4566A to set 3810C to “N”, and parameter 4566B to set column 3810D to “Y”.
A runtime node persistence design would also require entities for storing node state and other information about a game in progress, not detailed below. Shown are the sequences for initializing the node objects with quiz data and references to applicable parent and child nodes, in support of the class diagram and game sequences previously shown. In these diagrams, the references to applicable parent and child nodes are by node IDs as opposed to object references. From a node ID, a relative parent or child node could be instantiated and an object reference obtained.
Object 3012 next sends a select-number-of-words (“selectNumWords( . . . )”) message 4658 to expression entity 3310, passing 4656 which restricts column 3310A. Entity 3310 returns a number-of-words (“NumWords”) 4660. Object 3012 next gets an array of the node-ids of the guess-the-phrase-words in the phrase. An initialize-guess-the-phrase-word-node-array (“initGTPWNd( )”) method 4662 initializes the array.
A combined loop fragment 4664 iterates “n” times where the upper limit of “n” is the number of words 4660. A select-guess-the-phrase-word-node (“selectGTPWNd( . . . )”) message 4666 is sent to node entity 3710. Message 4666, passes a parameter 4668 to restrict column 3710D to 4652. Column 3710A is selected and a node-id (“NodeID”) 4670 is returned to object 3012. An add-guess-the-phrase-word-node (“addGTPWNd( . . . )”) method 4674 inserts nth node ID 4670 into the guess-the-phrase-word-node array.
Object 1818 next sends a select-expression-word-information (“selectExpressionWordInfo( . . . )”) message 4762 to expression-word entity 3410. Message 4762 passes a parameter 4762A which restricts column 3410A with 4758. Message 4762 also passes a parameter 4762B which restricts column 3410B with 4760. Entity 3410 returns values 4764. These include an expression-id (“ExpressionID”) 4766 from column 3410A, and a word-number-in-expression (“WordNumInExp”) 4768 from 3410B. Entity 3410 also returns “IsQuizzableWordYN?” 4770 from 3410D and “IsCapitalizedYN?” 4772 from 3410E. All words are stored as dictionary words in the present embodiment, so there is no need to return 3410C.
Object 1818 next sends a select-dictionary-word (“selectDictionaryWord( . . . )”) message 4774 to entity 3412. Parameter 4766 restricts column 3412A and parameter 4768 restricts column 3412B. A value for dictionary-word-id (“DictionaryWordID”) 4776 is returned. Next, object 1818 sends a select-word-text (“selectWordTxt( . . . )”) message 4778 to dictionary-word entity 3416, passing 4776 which restricts column 3416A. A value for word-text (“WordTxt”) 4780 is returned from column 3416B.
Next, object 1818 calls its set-answer (“setAnswer( . . . )”) method 4782, passing 4780 and 4772 to set an answer for the word. This answer is passed to and displayed in the interface when the word is solved. On a condition 4784 that the word is a quiz-able word, object 1818 also calls its set-valid-word-answer (“setValidWdAnswer( . . . )”) method 4786, passing 4780. This method sets the first index value of a valid-word-answers array to word-text 4780. Other entities and sequences, not shown, could be used to create an array of multiple values with closely matching responses deemed to be correct.
On a condition 4784 (which also applies to the loop that follows), an initialize-trivia-quiz-answer-node (“initTQANd”) method 4854 initializes a two-dimensional array that stores trivia-quiz answer node IDs and their respective category.
A loop combined fragment 4856 iterates while found with counter “n”. A select-trivia-quiz-answer-node (“selectTQANd( . . . )”) message 4858 is sent to node entity 3710. Message 4858, passes a parameter 4860 to restrict column 3710D to node ID 4752 of the quiz-able word. A node id 4862 for a trivia-quiz-answer-node is returned from column 3710A.
Next, a select-expression (“selectExpression( . . . )”) message 4864 is sent to expression-node entity 3714, passing 4862. Parameter 4862 restricts column 3714A, and column 3714B is returned as an expression-id (“ExpressionID”) 4866 value. Next, object 1818 sends a select-category-code (“selectCategoryCode( . . . )”) message 4868 to canned-quiz-subject-category entity 3312. Message 4868 passes a parameter 4870 which restricts column 3312A with 4866. Column 3312B is returned as a category-code (“CategoryCode”) 4872 value. Next, a set-trivia-quiz-answer-node (“setTQANd( . . . )”) method 4874 executes. Method 4874 inserts trivia-quiz-answer node-id 4862, and category-code 4872 into the trivia-quiz-answer-node array.
Object 1910 next sends a select-number-of-words (“selectNumWords( . . . )”) message 4958 to expression entity 3310, passing 4956 which restricts column 3310A. Entity 3310 returns a number-of-words (“NumWords”) 4960 from 3310B. Object 1910 next calls an initialize-answer (“initAnswer( . . . )”) method 4962, passing 4960. Method 4962 initializes an array of size “NumWords” for holding the words of the trivia-quiz-answer expression.
A combined loop fragment 4964 iterates “n” times where the upper limit of “n” is the number of words 4960. A select-dictionary-word (“selectDictionaryWord( . . . )”) message 4966 is sent to expression-word-dictionary-word entity 3412. Message 4966, passes parameter 4956 to restrict column 3412A. Also passed is parameter 4966A which restricts column 3412B to the counter representing the word number. A dictionary-word-id (“DictionaryWordID”) 4968 value is returned from column 3412C.
Object 1910 next sends a select-word-text (“selectWordTxt( . . . )”) message 4970 to dictionary-word entity 3416. Message 4970 passes 4968, which restricts column 3416A. Column 3416B is returned as a word text (“WordTxt”) 4972 value. Object 1910 next sends a select-caplitalization (“selectCapitalization( . . . )”) message 4974 to expression-word entity 3410. Message 4974 passes 4956, which restricts column 3410A. Message 4974 also passes a parameter 4974A for the counter value, which restricts column 3410B. Column 3410E is returned as an “IsCapitalizedYN?” 4976 value. Object 1910 calls its add-to-answer (“addToAnswer( . . . )”) method 4978, passing 4972 and 4976. Method 4978 adds the word to the array of words for the trivia-quiz-answer expression.
Object 1910 next sends a select-guess-the-phrase-word-node (“selectGTPWNd( . . . )”) message 5058 to node entity 3710. A parameter 5058A restricts column 3710A with node id 4952. Column 3710D is returned as a parent-node-id (“ParentNodeID”) 5060. Object 1910 calls its set-guess-the-phrase-word-node (“setGTPWNd( . . . )”) method 5062, passing 5060. This sets the parent, guess-the-phrase-word-node by its node-id.
Object 1910 next sends a select-trivia-quiz-question-node (“selectTQQNd( . . . )”) message 5064 to entity 3710. Message 5064 passes a parameter 5064A that restrict column 3710D with 4952. Column 3710A is returned as a node-id (“NodeID”) 5066 value. Object 1910 calls its set-trivia-quiz-question-node (“setTQQNd( . . . )”) method 5068, passing 5066. This sets the child, trivia-quiz-question-node by its node-id.
Object 1912 next sends a select-question-text (“selectQuestionTxt( . . . )”) message 5158 to canned-quiz entity 3311, passing 5156 which restricts column 3311A. Entity 3311 returns a question text (“QuestionTxt”) 5160 from column 3311B. Object 1912 next calls its initialize-question (“initQuestion( . . . )”) method 5162, passing 5160 to initialize the question.
Object 1912 next sends a select-trivia-quiz-answer-node (“selectTQANd( . . . )”) method 5164 to node entity 3710. A parameter 5164A restricts column 3710A by 5152. Column 3710D is returned from the node entity as a parent-node-id (“ParentNodeID”) 5166. Object 1912 next calls its set-trivia-quiz-answer-node (“setTQANd( . . . )”) method 5168, passing 5166. This sets a reference to a parent, trivia-quiz-answer node, by its node ID.
An “AMatch_Player” composite entity 5216 has a primary key 5216P composed of a “MatchID” foreign-key-primary-key column 5216A from 5214A and a “PlayerID” foreign-key-primary-key column 5216B from 4110A. Entity 5216 includes attributes “Score” 5216C, which is the cumulative match score for each player, and “ControlOrder” 5216D, which is a number representing the order of control per player per match.
Round entity 5210 has a primary key composed of a “MatchID” foreign-key-primary-key column 5210B referencing primary key 5214A of match entity 5214, and a round number “RoundNum” column 5210C which is the round number within a match. A “TreeID” foreign key 5210A refers to primary key 4010A of tree entity 4010. A “PlayerIDToStartRound” foreign key 5210H refers to primary key 4110A of player entity 4110 and records which player started the round in control. Attribute “TotalPointsAwarded” 5210D summarizes the cumulative points awarded per round. Attribute “MaxAvailPoints” 5210E records the maximum available points available for distribution in a round. Attributes “StartDate” 5210F and “EndDate” 5210G record when a round was started and ended. Flag attributes “IsStartedYN?” 52101, “IsSuspendedYN?” 5210J, and “IsCompletedYN?” 5210K record information about the state of a round.
A “Round_Player” composite entity 5212 has a primary key 5212P with foreign-key-primary-key columns “MatchID” 5212A, “RoundNum” 5212B, and “PlayerID” 5212C referencing the primary keys of round entity 5210 and player entity 4110. A “Score” attribute 5212D records the cumulative score per player per round.
Next, game object 1816 calls an initialize-control-sequence (“initControlSeq( . . . )”) method 5358, passing 5352. Next, a loop populates the control sequence with an ordered array of player references, described in combined loop fragment 5360. An initialize-player (“initPlayer( . . . )”) message 5362 is sent from 1816 to a player object (“Player”) 5312, passing a player ID of the counter index “p” value (“playerID(p)”) 5364. Player object 5312 sends a select-player (“selectPlayer(p)”) message 5366 to player entity 4110 to select relevant columns where 4110A is restricted by 5364. A reference 5368 to the player object is returned to 1816. An add-to-control-sequence (“addToControlSeq( . . . )”) method 5370 adds player reference 5368 to the control sequence.
Game object 1816 next sends an initialize-match (“initMatch( . . . )”) message 5372 to a match (“Match”) object 5314. Message 5372 passes 5354 and a control sequence (“controlSeq”) 5374 obtained from loop 5360. Match object 5314 sends an insert-match (“insertMatch( )”) message 5376 to match entity 5214. A database sequence generates a “MatchID” in primary key column 5214A, which is returned as 5378. Other methods (not shown), can insert additional values in entity 5214 as well as composite entity 5216, and initialize the match scores of the players. A reference 5380 to the match object is returned to game object 1816.
Game object 1816 next sends an initialize-round (“initRound( . . . )”) message 5454 to a round (“Round”) object 5410. Message 5454 passes a match ID (“MatchID”) parameter 5456 obtained from a lookup (not shown) of match object 5314. It also passes round index 5452.
Round object 5410 sends an insert-round (“insertRound( . . . )”) message 5458 to round entity 5210. Message 5458 passes 5460, a tree ID of the round index (“TreeID(r)”). Message 5468 also passes 5456 and the index of the current round plus one 5462. This presumes the index begins at zero but actual round numbers begin at one. Parameters 5460, 5456, and 5462 populate columns 5210A, 5210B, and 5210C respectively of entity 5210. Once a round is initialized, a round 5464 reference is returned to game object 1816.
Game object 1816 next sends a select-top-node (“selectTopNode( . . . )”) message 5466 to node entity 5210. Message 5466 passes 5460, which restricts column 3710F, and a parameter 5468 that restricts column 3710E to “1”. This call returns node ID (“NodeID”) 5470 from column 3710A of entity 3710.
Game object 1816 next sends initialize-guess-the-phrase-phrase-node (“initGTPPNd( . . . )”) message 4650 to object 3012, passing 5470. Once guess-the-phrase-phrase object 3012 is initialized, game object 1816 sends a get-number-of-words (“getNumWordso”) message 5472 to 3012. A number of words (“NumWords”) 4660 in the top-level-phrase is returned. Game object 1816 next calls an initialize-guess-the-phrase-word-GUI-information (“initGTPWGUIInfo( )”) method 5474. This initializes an array of information about the guess-the-phrase words that is to be sent to the user interface.
The initialize round sequence continues with
Game object 1816 next calls a get-word-length (“getWordLength( . . . )”) message 5568, passing 5562 to get the number of characters of the current word. Object 1816 next calls an add-guess-the-phrase-word-GUI-information (“addGTPWGUIInfo( . . . )”) method 5570. Method 5570 takes as arguments 5554, a word length (“wordLength”) 5572 parameter returned from 5568, and 5564 and 5566. Method 5570 adds the information for the current word to the guess-the-phrase-word-GUI-information array.
When loop 5550 is finished, game object 1816 sends an initialize-navigation-mode-GUI (“initNavModeGUI( . . . )”) message 5574 to initialize navigation-mode GUI (“NavModeGUI”) object 1810. Message 5574 passes a guess-the-phrase-phrase-node-ID (“GTPPNdID”) 5576, which is set to 5470, the value of the top-level node ID. Message 5574 also passes a guess-the-phrase-word-GUI-information (“GTPWGUIInfo[ ]”) array 5578, obtained from loop 5550. Parameters 5576 and 5578 supply the information necessary to display the masked top-level phrase at the beginning of a round as indicated in
In the present embodiment, method 5574 is part of an indicator means for presenting a word indication. The method provides word length, type and node identification information from the model to the view.
Game object 1816 also sends an initialize-control-and-score-GUI (“initCntrl&ScoreGUI( . . . )”) message 5580 to initialize control-and-score-GUI (“Cntrl&ScoreGUI”) object 2310. Message 5580 passes an array of player scores for the round (“round.player.score[ ]”) 5582, an array of player scores for the match (“match.player.score[ ]”) 5584, a control sequence (“controlSeq”) 5586, and an index for the player with control (“cntrlIndex”) 5588.
Embodiments could include enhancements that make adjustments to points awarded, or to points deducted as the case may be, based on the relative difficulty of the comprised nested quiz(zes) or top-level quiz. In a client-server, database supported embodiment, difficulty levels could be recalibrated, potentially in real time, based on data received from the player clients. Use of a quiz database allows quizzes to be reused by many different players. A difficulty calibration mechanism based on client feedback would allow future players to benefit from the play of past and current players to create an increasingly accurate scoring system based on relative quiz difficulty.
Information for a given quiz, comprised of the individual historic results and/or the accumulated result of all historic guesses attempted on that quiz, would be persisted. In the case of a quiz database based on a relational database system, historic results would be persisted in one or more history relations within the quiz database. Any new result for the given quiz, provided by the game clients to the server, would be added to existing result information for that quiz in the quiz database.
Quiz result information could be used to re-calibrate the difficulty measure of the given quiz on an ongoing basis. The difficulty measure(s) would be applied as a factor to the score value for a given quiz for the next or later presentation of the same quiz in the context of a round of play. Ongoing feedback from clients would provide an increasingly accurate difficulty rating and score adjustment for the quizzes.
A simple example of how continuous difficulty calibration could be applied is given for a trivia-quiz taken with the trivia-quiz component in a single-player mode of the game. In single-player mode, the score will be maximized when the fewest number of clues are revealed and/or guesses are taken en route to the solution of the top-level quiz. However, it is sensible that a player should be deducted fewer points for missing the solution to a difficult quiz than for missing the solution to a relatively easy quiz.
Assuming that prior feedback were collected on a given trivia-quiz and the data indicated that there were a number “c” correct answers for a number “a” attempts on a given quiz, then a difficulty factor of perhaps c/a could be multiplied by some base value “b” to arrive at the point deduction for a failed guess on the next attempt for that quiz. Once a player has submitted a guess, the value of “c” in the quiz database would be updated by one if the guess were successful, and the value of “a” would automatically be updated by one. The next time an attempt were made on the same quiz, the re-calibrated difficulty factor for the quiz would be retrieved or calculated from information in the quiz database. The difficulty factor would again be multiplied by the base value “b” to arrive at the re-calibrated point deduction for a failed guess on the same quiz. Following the submission of the latest guess, the quiz database would again be updated and the difficulty factor would again be re-calibrated for the next player(s) to make use of the given trivia-quiz and so on.
A more complicated formula could be used to calibrate the difficulty of phrases. Phrase difficulty calibration is complicated by the fact that different trivia-quizzes may appear from iteration to iteration of the same phrase. This could be due to the addition of trivia-quizzes to the quiz database. This could also be due to the insertion of logic that records player histories and prevents the same individual from receiving the same trivia-quiz between different matches.
The continuous difficulty calibration feature could be applied not only to the combined guess-the-phrase and trivia game embodiment of a QNQ but to all possible embodiments of a QNQ.
Top-level menus 340 contain a guess-word menu 342, find-a-clue menu 344 and cancel drill-down menu 346. The find-a-clue menu 344 has a flyout menu 350. Flyout menu 350 has a trivia-quiz menu 352, a concealed-picture menu 354, an anagram menu 356, a drill-down-clue menu 357, a sound-clip menu 358 and a video-clip menu 359. Trivia-quiz menu 352 has trivia-quiz submenus 360. Trivia-quiz submenus 360 include a television-quiz-category-menu option 362A, a movies-quiz-category-menu option 362B, a music-quiz-category-menu option 362C, and a sports-quiz-category-menu option 362D.
Presuming that music-quiz-category-menu option 362C is selected with arrow cursor 99,
Assuming selection of solve-word button 242A,
Assuming selection of quiz-able-word 264A1 with hand-pointer cursor 95,
Clues “Shrek” 270 and “The Hobbit” 272 are names of movies that feature a dragon. Clue “Bruce Lee” 274 is a movie actor that is associated with the word “dragon” through a famous movie title. Assuming selection of the solve-word button,
At node-level six 120 are quiz questions (clues) 7010, 7012, and 7014 for clues “Shrek” 270, “The Hobbit” 272 and “Bruce Lee” 274 respectively. Clues 270, 272, and 274 are clues to quiz-able-word 264 (“dragon”) which is a clue to quiz-able-word 244 (“dragonfly”). This is a clue to first quiz-able-word 220A of sample phrase for top-level quiz 1410.
Selecting a guess button 630 brings to focus the embedded-embedded drill down quiz represented in
The quiz navigator includes a title bar 710, a menu bar 720, and a navigation device 730. Navigation device 730 allows a player to navigate a quiz-tree of any size or complexity by zooming in or out and by moving up and down, left and right. Sample top-level phrase 1410 (“A fly in the ointment”) has only the node for first quiz-able-word 220A (“fly”) shown beneath it. It is presumed that only first quiz-able-word 220A has had information revealed about it. An equally suitable embodiment would show all the second level nodes. Nodes 740, 750, and 752 are presumed to be revealed.
The first quiz-able-word's first clue 230A1 “Marty McFly” has first quiz-able-word 220C “Marty” and second quiz-able-word 220D “McFly”. It also has phrase clue 740 “Back to the Future” which is a movie name to which the character “Marty McFly” belongs. The solid circular node at 740 indicates the clue is revealed. A mouse-over event occurs by positioning hand-pointer cursor 95, over clue 740. Then, a text bubble 760A displays. Text bubble 760A displays the content of clue 740 in the quiz navigator. Clues 750 and 752 to the first and second quiz-able-words have solid circular nodes, indicating they are revealed.
Also show in
A “Pause/Quit Match” component (not shown) can be displayed with a “Pause/Quit Match” button 9560. A “Score and Control” component button 9562, shown as grayed to indicate it has been selected, displays score-and-control component 9530. A “Match Parameters” component button 9564, shown as grayed to indicate it has been selected, displays match-parameters-display component 9550. A quiz navigator component button 9566, shown as grayed to indicate it has been selected, displays quiz navigator component 9540. A “Match History” component button 9568, shown as grayed to indicate it has been selected, displays a “Match History” component (not shown). A phrase component button 9570, shown as grayed to indicate it has been selected, displays phrase component 9512. A “My Player Console” button 9572 displays a “My Player Console” (not shown). A “Chat” button 9574 displays a chat component (not shown).
From the description above, a number of advantages of some embodiments presented become evident:
As can be seen from the present embodiments, A QNQ may:
A QNQ is supported by a system that can be used to manage:
A QNQ system can also include functionality to:
While my above description contains many specificities, these should not be construed as limitations on the scope of the invention, but rather as an exemplification of the embodiments thereof. A myriad of variations are possible. Selection means could be provided to eliminate character input. In the detailed embodiment, node-level four could be removed and the trivia-quiz answers could occupy the lowest clue level. Multiple-choice-trivia quizzes could be used in the main embodiment. Alternate user interface components, architectures, quiz and media types, and player forums are possible. Media types include video, pictures and audio. Alternate data structures, data sources, and means for relating and organizing quiz data are possible. Data for quiz structures could be taken from news and journal feeds and other online and offline sources. Linear quiz-chains could be used as opposed to trees.
Many enhancements for creating quiz-trees or other logical structures are possible. For example, node-levels devised or possible in the logical quiz structure could be skipped over in the interface to create another type of challenge. Other embodiments might not require persistent storage of quiz structures and nodes; rather, quiz structures could be assembled at runtime. Quiz structures might be assembled just prior to the initiation of play. They might also be defined and redefined during play. In such cases, their data might be persistent only in the context of the current iteration or not at all. Indiscreet embodiments without defined end-nodes are possible. Embodiments that integrate with other applications, such as community ware are possible. Other modes of play, such as having a simulated opponent, are possible. Television or Internet broadcast game show formats are possible. A studio broadcast combined with interactive play by non-studio participants is possible. Audio embodiments are possible where the focus is to present clues in music. Speech recognition selection and other alternative input means are possible. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their legal equivalents.