CROSS-REFERENCE TO RELATED APPLICATIONSThis nonprovisional application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/960,532, filed Oct. 3, 2007.
FEDERALLY SPONSORED RESEARCHNot Applicable
SEQUENCE LISTING OR PROGRAMNot Applicable
BACKGROUND1. 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 withinFIG. 5 of the application of Forrest.
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 inFIG. 5 of the application of Forrest. In the puzzle, adjacent sets of information fragments (clues) are used to solve riddles, the solutions to which are thematically related. It is noted that the final puzzle solution is not actually derived from the answers in the preceding stage. Instead, solving all of the preceding puzzles qualifies the participants to call a telephone number. Next, an operator answers and asks the participants to recall a visual message that was presented earlier in the tour. The correct answer is the final puzzle solution. The concept of a visual recall final puzzle in Forrest. implies the participants have been exposed to the entire tour. As well, Forrest does not impose an hierarchical organization since the final puzzle answer is not itself solved from clues obtained at an immediately preceeding stage.
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.
COPYRIGHT NOTICEA 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.
SUMMARYDescribed 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.
DRAWINGSFiguresFIG. 1 portrays a logical structure of a sample iteration of an embodiment of a QNQ with descriptive symbols described in the specification.
FIG. 2 depicts a part of the user interface for an embodiment of a QNQ called the “phrase component”. InFIG. 2, the phrase component is depicted at or near the beginning of a “round”, in a mode called “navigation mode”. A sample phrase is initially masked.
FIG. 3 depicts a part of the user interface called a “quiz-and-word-guessing-selector component”, which takes the form of a computer menu.
FIG. 4 depicts a part of the user interface called a “trivia-quiz component” for typed-text entry of a trivia-quiz answer attempt.
FIG. 5 depicts the trivia-quiz component introduced inFIG. 4 with a sample guess input by a player and ready to be submitted.
FIG. 6 depicts the phrase component as it might look after the first clue on a “quiz-able-word” has been found.
FIG. 7 depicts a one-item computer menu displayed over the phrase component based on a player initiated event. The menu gives the player in “control” the option to “buy” a “filler-word”.
FIG. 8 depicts a dialog that allows a player to confirm an intention to “buy a word”.
FIG. 9 depicts the phrase component with two clues revealed. One clue was derived on a quiz-able-word by solving a trivia-quiz. The other clue is represented by a revealed filler-word, and was obtained by “buying a word”.
FIG. 10 depicts the phrase component in “quiz-able-word-guessing mode” as it might look with two quiz-able-word clues revealed and with a player in the process of typing in the solution to the first quiz-able-word.
FIG. 11 depicts the phrase component in phrase-guessing mode for the sample phrase. Previously, two clues were revealed for one of the two quiz-able-words, that quiz-able-word was solved, a filler-word was “bought”, and two more clues for the other quiz-able-word were revealed. A player is attempting to complete the phrase by inputting the three words remaining in its solution.
FIG. 12 depicts the phrase component in phrase-guessing mode, with the remaining unrevealed words typed within their respective fields. The attempted solution is ready to be submitted.
FIG. 13 depicts the phrase component at the end of a round, with the phrase solved.
FIG. 14 uses the nomenclature introduced inFIG. 1.FIG. 14 depicts a logical structure of a sample iteration of an embodiment of a QNQ, including information about the clues revealed to solve the sample iteration.
FIG. 15 depicts a user interface flow diagram.
FIG. 16 depicts a system architecture for game delivery.
FIG. 17 depicts a class diagram describing the main features of the embodiment.
FIG. 18 shows a sequence diagram for displaying a quiz-and-word-guessing-selector GUI component.
FIG. 19 shows a sequence diagram for displaying a trivia-quiz GUI component.
FIG. 20 shows a sequence diagram for attempting a trivia-quiz.
FIG. 21 shows a sequence diagram describing part one of the sequence for a correct trivia-quiz attempt.
FIG. 22 shows an update-score sequence diagram.
FIG. 23 shows a sequence diagram describing part two of the sequence for a correct trivia-quiz attempt.
FIG. 24 shows a sequence diagram for an incorrect trivia-quiz attempt.
FIG. 25 shows a sequence diagram describing a player passing on making an attempt at a trivia-quiz.
FIG. 26 shows a sequence diagram for a quiz-able-word attempt.
FIG. 27 shows a sequence diagram for a correct quiz-able-word attempt.
FIG. 28 shows a sequence diagram for an incorrect quiz-able-word attempt.
FIG. 29 shows a sequence diagram for buying a filler-word.
FIG. 30 shows a sequence diagram for a phrase attempt.
FIG. 31 shows a sequence diagram of an incorrect phrase attempt.
FIG. 32 shows a sequence diagram for a correct attempt at solving a phrase.
FIGS. 33-40 show entity relationship diagrams describing a quiz-generation schema. These schema comprise part of a quiz database and are used to build quiz-trees. They also provide quiz data during game runtime.
FIG. 41 shows an entity relationship diagram describing a player entity and its relationship to a tree entity.
FIGS. 42-45 show sequence diagrams for building quiz-trees, based on the quiz-generation schema shown inFIGS. 33-40.
FIG. 46 shows a sequence diagram for initializing a guess-the-phrase-phrase-node object.
FIGS. 47 and 48 show sequence diagrams for initializing a guess-the-phrase-word-node object.
FIGS. 49 and 50 show sequence diagrams for initializing a trivia-quiz-answer-node object.
FIG. 51 shows a sequence diagram for initializing a trivia-quiz-question-node object.
FIG. 52 introduces “round” and “match” entities.
FIG. 53 shows a sequence diagram for initializing a match.
FIGS. 54 and 55 show sequence diagrams for initializing a round.
FIG. 56 depicts the quiz-and-word-guessing-selector component with an additional menu option for a “drill-down clue”.
FIG. 57 depicts the phrase component in navigation mode with an embedded quiz that is applicable to one of the quiz-able-words in the top-level phrase.
FIG. 58 depicts the quiz-and-word-guessing-selector component as in might appear for the quiz-able-word in the embedded quiz. Additional menu items are displayed to support additional features and quiz types.
FIG. 59 depicts a form of the trivia-quiz component adapted for multiple choice input of a trivia-quiz answer attempt.
FIG. 60 depicts the phrase component as it momentarily appears after solution of the embedded quiz.
FIG. 61 depicts the phrase component in navigation mode with a quiz-able-word clue that has been revealed by the solution of the embedded quiz.
FIG. 62 depicts a “concealed-picture-quiz component”.
FIG. 63 depicts the phrase component in navigation mode with an embedded quiz. The embedded quiz has an associated anagram clue.
FIG. 64 depicts the phrase component with an embedded quiz in word-guessing mode and a player in the process of typing an attempt.
FIG. 65 depicts the phrase component in navigation mode in a design variant that displays unsolved quizzes within the phrase component. One clue has been found for a higher-level quiz-able-word, and there are three clues for a lower-level embedded quiz.
FIG. 66 depicts the phrase component in navigation mode where the embedded quiz itself has an embedded drill-down quiz consisting of a single quiz-able-word.
FIG. 67 depicts the quiz-and-word-guessing-selector component as it appears over the embedded-embedded drill-down quiz-able-word.
FIG. 68 depicts the phrase component in navigation mode with some clues obtained for the embedded-embedded drill-down quiz-able-word.
FIG. 69 depicts the phrase component in navigation mode in which the embedded-embedded drill-down quiz-able-word has been solved. Its solution has become a clue to the first embedded quiz-able-word.
FIG. 70 depicts a hypothetical logical structure of the solution path that was partially described byFIGS. 68 and 69.
FIG. 71 depicts the quiz-and-word-guessing-selector component as it appears over a quiz-able-word in the phrase component in navigation mode. The menu includes items to support a drill-down ‘guess-the-phrase’ quiz type.
FIG. 72 depicts the phrase component in navigation mode with an embedded guess-the-phrase style of quiz. Quizzes for the embedded quiz are available for the entire phrase, and for its quiz-able-words.
FIG. 73 depicts an expanded view of the embedded guess-the-phrase quiz fromFIG. 72.
FIG. 74 depicts a menu of one item for selecting a quiz applicable to the embedded guess-the-phrase quiz.
FIG. 75 depicts the quiz-and-word-guessing-selector component in navigation mode with the embedded guess-the-phrase style quiz which itself has an applicable embedded, or ‘embedded-embedded’ guess-the-phrase style quiz.
FIG. 76 depicts the embedded-embedded guess-the-phrase style quiz introduced inFIG. 75, in an expanded view.
FIG. 77 depicts a quiz-selector menu that appears over the embedded-embedded guess-the-phrase quiz, and which can be used to select a phrase-level quiz.
FIG. 78 depicts a “video quiz” user interface component.
FIGS. 79 thru87 andFIG. 89 depict a “quiz navigator” component of the user interface in a “branch-view” mode. The quiz navigator allows players to view information about a quiz-tree, and facilitates solving a quiz-tree and its component quizzes. The quiz navigator borrows the nomenclature for describing a QNQ introduced inFIG. 1.
FIG. 88 depicts a player interaction with the quiz navigator menu to ‘show all clues’.
FIG. 90 depicts a player interaction with the quiz navigator menu to change the view from branch-view to “folder-view” mode.
FIGS. 91 thru94 depict the quiz navigator as it might be used to navigate a particular quiz-tree domain in folder-view mode.
FIG. 95 depicts components of the user interface as they appear in an integrated display. The integrated display includes the phrase component with a title bar, the quiz navigator, a score and control component, and a match parameters viewing component. Other display components are minimized and available for selection.
REFERENCE NUMERALS |
| 95 | hand-pointer cursor | 96 | text cursor |
| 97 | field border | 98 | insertion cursor |
| 99 | arrow cursor | 110 | node-level one |
| 112 | node-level two | 114 | node-level three |
| 116 | node-level four | 118 | node-level five |
| 120 | node-level six | 130 | node-level “n” |
| 140 | symbol for top-level answer | 141 | symbol for an association of a |
| | | revealed clue to an answer |
| 142 | symbol for a revealed node | 144 | symbol for cognitively solved |
| | | node |
| 145 | symbol for an association of an | 146 | symbol for unrevealed node |
| unrevealed clue to an answer |
| 146A | an unsolved node | 210 | phrase component border |
| 212 | phrase section | 214 | word-clue section |
| 216A | solve-phrase button | 216B | submit-guess button |
| 216C | clear-guess button | 216D | cancel-guess button |
| 216E | point-deduction warning | 216F | finished label |
| 218A | first filler-word | 218A1 | unrevealed first filler-word, |
| | | with attached hyperlink |
| 218A2 | unrevealed first filler-word, | 218A4 | response to the first filler-word |
| without attached hyperlink |
| 218A5 | revealed first filler-word | 218B | second filler-word |
| 218B1 | unrevealed second filler-word, | 218B5 | revealed second filler-word |
| with attached hyperlink |
| 218C | third filler-word | 218C1 | unrevealed third filler-word, |
| | | with attached hyperlink |
| 218C2 | unrevealed third filler-word, | 218C4 | response to the third filler- |
| without attached hyperlink | | word |
| 218C5 | revealed third filler-word | 218D | first filler-word |
| 218E | second filler-word | 220A | first quiz-able-word |
| 220A1 | unrevealed first quiz-able- | 220A4 | response to the first quiz-able- |
| word, with attached hyperlink | | word |
| 220A5 | revealed first quiz-able-word | 220B | second quiz-able-word |
| 220B1 | unrevealed second quiz-able- | 220B2 | unrevealed second quiz-able- |
| word, with attached hyperlink | | word, without attached |
| | | hyperlink |
| 220B3 | second quiz-able-word in a | 220B4 | response to the second quiz- |
| guessing mode | | able-word |
| 220B5 | revealed second quiz-able- | 220C1 | unrevealed first quiz-able- |
| word | | word, with hyperlink |
| 220D1 | unrevealed second-quiz-able- | 220E1 | unrevealed first quiz-able- |
| word, with hyperlink | | word, with hyperlink |
| 220F1 | unrevealed second quiz-able- | 222 | label indicating clue section |
| word, with hyperlink |
| 222B | label indicating word-clue | 228 | empty cell |
| section |
| 230A | first quiz-able-word-clue cell | 230A1 | first quiz-able-word's first clue |
| 230A2 | first quiz-able-word's second | 230B | second quiz-able-word-clue |
| clue | | cell |
| 230B1 | second quiz-able-word's first | 230B2 | second quiz-able-word's |
| clue | | second clue |
| 230C | first quiz-able-word-clue cell | 230D | second quiz-able-word-clue |
| | | cell |
| 230E | first quiz-able-word-clue cell | 230F | second quiz-able-word-clue |
| | | cell |
| 230G1 | first quiz-able-word's first clue | 240 | embedded quiz |
| 242A | solve word button | 242B | submit-guess button |
| 242C | clear-guess button | 242D | pass button |
| 244A1 | unrevealed quiz-able-word, | 244A4 | response to quiz-able word |
| with attached hyperlink |
| 244A5 | revealed quiz-able-word | 246 | point-deduction warning |
| 248 | label indicating word-clue | 250 | quiz-able-word-clue cell |
| section |
| 252 | clue to higher level quiz-able- | 254 | anagram clue to embedded |
| word | | quiz |
| 256 | quiz question | 258 | unsolved picture puzzle “clue” |
| 260 | embedded-embedded drill | 262A | solve word button |
| down quiz |
| 264A1 | unrevealed quiz-able-word | 264A5 | revealed quiz-able-word |
| with attached hyperlink |
| 266 | label indicating word-clue | 268 | quiz-able-word-clue cell |
| section |
| 270 | clue “Shrek” | 272 | clue “The Hobbit” |
| 274 | clue “Bruce Lee” | 280 | embedded drill down quiz |
| 282 | phrase-clue section | 283 | phrase clue section |
| 284 | hyperlink to phrase clue(s) | 285 | hyperlink to phrase clue(s) |
| 286 | phrase clue-clue cell | 287 | phrase clue-clue cell |
| 290 | embedded-embedded drill | 310 | top-level menu |
| down quiz |
| 312 | word-guess menu option | 314 | find-a-clue menu option |
| 320 | submenus | 322 | trivia submenu |
| 324 | drill-down clue submenu | 325 | drill-down clue flyout |
| | | submenu |
| 330 | quiz submenu | 332A | television quiz-category menu |
| | | option |
| 332A1 | number of quizzes in the | 332B | movies quiz-category menu |
| “television” category | | option |
| 332C | music quiz-category menu | 332D | sports quiz-category menu |
| option | | option |
| 338 | buy word menu option | 340 | top-level menus |
| 342 | guess-word menu |
| 344 | find-a-clue menu | 346 | cancel-drill-down menu |
| 350 | flyout menu | 352 | trivia-quiz menu |
| 354 | concealed-picture menu | 356 | anagram menu |
| 357 | drill-down-clue menu | 358 | sound-clip menu |
| 359 | video-clip menu | 360 | trivia-quiz submenus |
| 362A | television-quiz-category-menu | 362B | movies-quiz-category-menu |
| option | | option |
| 362C | music-quiz-category-menu | 362D | sports-quiz-category-menu |
| option | | option |
| 370 | top-level menus | 372 | guess-word menu |
| 374 | find-a-clue menu | 376 | cancel-drill-down menu |
| 380 | flyout menu | 382 | trivia-quiz menu |
| 384 | concealed-picture menu | 386 | anagram menu |
| 388 | drill-down-clue menu | 390 | trivia-quiz submenus |
| 392A | television-quiz-category-menu | 392B | movies-quiz-category-menu |
| option | | option |
| 392C | music-quiz-category-menu | 392D | sports-quiz-category-menu |
| option | | option |
| 393 | drill-down clues | 394A | television-quiz-category-menu |
| | | option |
| 394B | movies-quiz-category-menu | 394C | music-quiz-category-menu |
| option | | option |
| 394D | sports-quiz-category menu | 396 | movies-quiz-category-menu |
| option | | option |
| 397 | menus | 398A | concealed-picture menu |
| 398B | sound-clip menu | 398C | video-clip menu |
| 398D | text-clue menu | 410A | quiz heading |
| 410A1 | trivia-quiz-category | 410A2 | quiz number in the category |
| 410A3 | total number of available | 410B | quiz heading |
| quizzes in the category |
| 410C | quiz heading for concealed- | 412A1 | quiz question |
| picture puzzle |
| 412A2 | quiz question | 412A3 | quiz question |
| 412A4 | quiz question | 412B1 | quiz question |
| 412C | concealed-picture puzzle | 414A | answer label |
| 414B | guess-the-picture label | 416 | answer-attempt textbox |
| 416A | answer-attempt text | 416C | answer-attempt text |
| 417 | multiple choice options section | 417A | multiple choice option |
| 417B | multiple choice option | 417C | multiple choice option |
| 417D | multiple choice option | 418 | point-deduction warning |
| 420 | submit button | 422 | clear-answer button |
| 424 | pass-guess button | 430 | remove-a-puzzle-piece label |
| 432 | spinner with label | 434 | submit button |
| 436 | pass button |
| 470 | answering-turn-display | 472 | player column heading |
| component |
| 474A | player name | 474B | player name |
| 474C | player name | 476 | alarm clock icon |
| 478 | “next” indicator | 480 | a number of seconds |
| 482 | “turn” column heading | 510 | word-cost warning label |
| 512 | word-cost message | 514 | “yes” button |
| 516 | “no” button | 610 | heading for video clip quiz |
| 620 | video clip player | 630 | guess button |
| 632 | pass button | 634 | replay button |
| 636 | next clip button | 638 | close button |
| 710 | title bar | 720 | menu bar |
| 722 | view menu | 724 | options menu |
| 725 | “Show Selected Clues . . . ” | 726 | “Show All Clues . . . ” menu |
| menu item | | item |
| 727 | “Branch View . . . ” menu item | 728 | “Folder View . . . ” menu item |
| 730 | navigation device | 740 | phrase clue |
| 750 | clue to first quiz-able-word | 752 | clue to second quiz-able-word |
| 760A | text bubble for phrase clue 740 | 760B | text bubble for clue to first |
| | | quiz-able-word 750 |
| 760C | text bubble for clue to second | 760D | text bubble for second quiz- |
| quiz-able-word 752 | | able-word 220D |
| 760E | text bubble for first quiz-able- | 760F | text bubble 220A for first quiz- |
| word's first clue 230A1 | | able-word |
| 760G | text bubble for sample top- | 760H | text bubble for first quiz-able- |
| level phrase 1410 | | word 220C |
| 761 | first masked word of text | 762 | second masked word of text |
| bubble 760E | | bubble 760E |
| 765 | quiz navigator cross-hair | 770 | folder icon and name for |
| | | sample top-level phrase 1410 |
| 772 | folder icon and name for first | 774 | folder icon and name for |
| filler-word 218A | | second filler-word 218B |
| 776 | folder icon and name for third | 780 | folder icon and name for first |
| filler-word 218C | | quiz-able-word 220A |
| 780A | open folder icon and name for | 782 | folder icon and name for first |
| first quiz-able-word 220A | | quiz-able-word's first clue |
| | | 230A1 |
| 782A | open folder icon and name for | 784 | folder icon and name for |
| first quiz-able-word's first clue | | phrase clue 740 |
| 230A1 |
| 786 | folder icon and name for first | 786A | open folder icon and name for |
| quiz-able-word 220C | | first quiz-able-word 220C |
| 787 | folder icon and name for clue | 788 | folder icon and name for |
| to first quiz-able-word 750 | | second quiz-able-word 220D |
| 788A | open folder icon and name for | 790 | folder icon and name for |
| second quiz-able-word 220D | | second quiz-able-word 220B |
| 791 | “plus” (“+”) sign | 789 | folder icon and name for clue |
| | | to second quiz-able-word 752 |
| 1420A | Categories for word “fly” | 1420A1 | sports category |
| 1420A2 | movies category | 1420A3 | music category |
| 1420A4 | television category | 1420B | Categories for word |
| | | “ointment” |
| 1510 | phrase component in | 1520 | quiz-and-word-guessing- |
| navigation mode | | selector component, find-a- |
| | | clue option |
| 1530 | quiz-and-word-guessing- | 1540 | phrase component in phrase- |
| selector component, guess- | | guessing mode |
| word option |
| 1550 | buy filler-word menu, and | 1560 | trivia-quiz component |
| confirmation |
| 1570 | phrase component in word- | 1580 | phrase component in finished |
| guessing mode | | mode |
| 1590 | end of a round | 1610 | clients |
| 1612 | desktop computer | 1614 | notebook or sub notebook |
| | | computer |
| 1616 | handheld gaming device | 1618 | cell phone/PDA with gaming |
| | | capabilities |
| 1630 | Internet access | 1640 | the Internet |
| 1650 | server side components | 1652 | web server |
| 1654 | application server | 1656 | database server |
| 1658 | quiz database and associated | 1670 | Internet connection |
| schema |
| 1672 | network connection | 1674 | network connection |
| 1676 | database management | 1709 | clock (“Clock”) class |
| 1710 | trivia-quiz-category | 1711 | node (“Node”) class |
| (“TrivQuizCat”) class |
| 1712 | tree (“Tree”) class | 1713 | trivia-quiz-question |
| | | (“TrivQuizQues”) class |
| 1714 | guess-the-phrase-phrase | 1715 | round (“Round”) class |
| (“GuessThePhrPhr”) class |
| 1716 | trivia-quiz-answer | 1717 | guess-the-phrase-word |
| (“TriviaQuizAnswer”) class | | (“GuessThePhrWd”) class |
| 1718 | match (“Match”) class | 1719 | game (“Game”) class |
| 1720 | player (“Player”) class | 1721 | turn-GUI (“TurnGUI”) class |
| 1724 | control-and-score-GUI | 1725 | trivia-quiz-GUI |
| (“Cntl&ScoreGUI”) class | | (“TriviaQuizGUI”) class |
| 1726 | quiz-and-word-guessing- | 1727 | buy-filler-word-menu-GUI |
| selector-GUI | | (“BuyFillerWdMenuGUI”) |
| (“Q_W_GuessSelGUI”) class | | class |
| 1728 | word-guessing mode-GUI | 1729 | navigation-mode-GUI |
| (“WdGuessingModeGUI”) | | (“NavModeGUI”) class |
| class |
| 1730 | phrase-guessing-mode-GUI | 1731 | finished-mode-GUI |
| (“PhrGuessingModeGUI”) | | (“FinishedModeGUI”) class |
| class |
| 1732 | phrase-component-GUI | 1740 | controller class |
| (“PhraseComponentGUI”) |
| class |
| 1750 | aggregation indicating the | 1751 | aggregation representing a |
| trivia-quiz-question class | | child node referencing zero-to- |
| referencing the trivia-quiz- | | one parent nodes |
| category class with |
| multiplicities of one and zero- |
| to-many |
| 1752 | aggregation representing a | 1753 | aggregation indicating the tree |
| parent node referencing zero- | | class referencing the node class |
| to-many child nodes | | with multiplicities of many and |
| | | one |
| 1754 | aggregation indicating a round |
| class referencing the tree class |
| with multiplicities of one and |
| one. |
| 1755 | association betweengame | 1756 | aggregation indicating the |
| class and tree class | | game class referencing the |
| | | trivia-quiz-question class |
| 1757 | aggregation indicating that a | 1758 | aggregation indicating that a |
| trivia-quiz-question class | | trivia-quiz-answer class |
| instance is a child of exactly | | instance is a parent to exactly |
| one trivia-quiz-answer class | | one trivia-quiz-question class |
| instance | | instance. |
| 1759 | generalization of 1713 by 1711 | 1760 | generalization of 1716 by 1711 |
| 1761 | generalization of 1717 by 1711 | 1762 | aggregation indicating that a |
| | | trivia-quiz-answer class |
| | | instance is a child of exactly |
| | | one guess-the-phrase-word |
| | | class instance |
|
| 1763 | aggregation indicating that a | 1764 | aggregation indicating that a |
| guess-the-phrase-phrase class | | guess-the-phrase-word class |
| instance is a parent of one-to- | | instance is the child of exactly |
| many guess-the-phrase-word | | one guess-the-phrase-phrase |
| classinstances | | class instance | |
| 1765 | aggregation indicating agame | 1766 | aggregation indicating a match |
| class referencing a guess-the- | | class referencing a player class |
| phrase-phrase class with | | with multiplicities of one-to- |
| multiplicities of one and one | | many and one. |
| 1767 | association between the game | 1768 | association between the game |
| class and the match class with | | class and the round class with |
| multiplicities of one and one | | multiplicities of one and one- |
| | | to-many |
| 1769 | aggregation indicating the | 1770 | aggregation indicating that a |
| game class referencing the | | guess-the-phrase-word class |
| trivia-quiz-answer class | | instance is a parent of zero-to- |
| | | many trivia-quiz answer class |
| | | instances |
| 1771 | aggregation indicating the | 1772 | generalization of 1714 by 1711 |
| game class referencing the |
| guess-the-phrase-word class |
| 1773 | aggregation indicating a match | 1774 | aggregation indicating the |
| class referencing the round | | game class referencing the |
| class with multiplicities of | | player class with multiplicities |
| one-to-many and one | | of one-to-many and one |
| 1775 | aggregation indicating the | 1776 | association between game |
| game class referencing the | | class and turn-GUI class |
| clock class with multiplicities |
| of one and one |
| 1777 | association between game | 1778 | aggregation indicating the |
| class and control-and-score- | | round class referencing the |
| GUI class | | player class with multiplicities |
| | | of one-to-many and one |
| 1779 | association representing all of | 1780 | association showing the |
| the associations between the | | controller class accessing the |
| controller class and classes | | game class |
| 1725 through 1730 |
| 1781 | association between game | 1782 | association between the game |
| class and finished-mode-GUI | | class and the trivia-quiz-GUI |
| class | | class with multiplicities of |
| | | zero-to-many and one |
| 1783 | association between the game | 1784 | association between the game |
| class and navigation-mode- | | class and phrase-guessing- |
| GUI class | | mode-GUI class |
| 1785 | association between the game | 1786 | association between the game |
| class and word-guessing- | | class and the quiz-and-word- |
| mode-GUI class | | guessing-selector-GUI class |
| | | with multiplicities of zero-to- |
| | | many and one |
| 1787 | association between the game | 1788 | generalization of 1731 by 1732 |
| class and the buy-filler-word- |
| menu-GUI class with |
| multiplicities of zero-to-many |
| and one |
| 1789 | generalization of 1729 by 1732 | 1790 | generalization of 1730 by 1732 |
| 1792 | generalization | 1793 | generalization |
| 1810 | navigation-mode GUI | 1812 | quiz-and-word-guessing- |
| (“NavModeGUI”) object | | selector-GUI |
| | | (“Q_W_GuessSelGUI”) object |
| 1814 | Controller object | 1816 | Game object |
| 1818 | guess-the-phrase-word | 1850 | get-quiz-and-word-guessing- |
| instance for the guess-the- | | selector component |
| phrase-word node | | (“getQ_W_GuessSelGUI( . . . ) ”) |
| | | message |
| 1850A | guess-the-phrase-word node ID | 1850B | reference to the current player |
| (“GTPWdNdID”) | | (“player”) |
| 1852 | get-trivia-quiz-by-category- | 1854 | validate-control |
| total | | (“validateControl( . . . ) ”) |
| (“getTrivQuizByCatTot( . . . ) ”) | | method |
| method |
| 1856 | get-node-state | 1858 | condition that the node-state is |
| (“getNodeState( )”) method of | | available |
| the guess-the-phrase-word |
| object |
| 1859 | set-active-node | 1860 | get-trivia-quiz-by-category- |
| (“setActiveNode( . . . ) ”) method | | total |
| for the guess-the-phrase-word | | (“getTrivQuizByCatTot( )”) |
| node | | method |
| 1862 | trivia-quiz-by-category-total | 1864 | display-quiz-and-word- |
| (“trivQuizByCatTot”) array | | guessing-selector-GUI |
| | | (“displayQ_W_GuessSelGUI |
| | | ( . . . ) ”) method |
| 1910 | trivia-quiz answer instance for | 1912 | trivia-quiz-question object for |
| the trivia-quiz answer node | | the trivia-quiz-question node |
| | | (“TQQNd:TrivQuizQues”). |
| 1914 | trivia-quiz-GUI object | 1916 | turn GUI object |
| 1950 | get-trivia-quiz-GUI | 1950A | category (“cat”) which the next |
| (“getTriviaQuizGUI( . . . ) ”) | | trivia-quiz is to be selected |
| message | | from |
| 1952 | get-trivia-quiz-by-category | 1954 | next-trivia-quiz-by-category- |
| (“getTrivQuizByCat( . . . ) ”) | | index |
| message | | (“nextTrivQuizbyCatIndx( . . . ) ”) |
| | | method |
| 1956 | lookup next-trivia-quiz- | 1958 | lookup trivia-quiz-question- |
| answer-node | | node (“lookupTQQNd( )”) |
| (“lookupNextTQANd ( . . . ) ”) | | method |
| method |
|
| 1959 | reference to the trivia-quiz- | 1960 | getNodeState method of the |
| question node (“TQQNd”). | | trivia question node |
| 1962 | active-node | 1962A | trivia-quiz-question node ID |
| (“setActiveNode(. . . ”) method | | (“TQQNdID”) |
| for a trivia-quiz question node |
| 1964 | get-question-information | 1966 | close-quiz-and-word-guessing- |
| (“getQuestionInfo( )”) method | | selector-GUI |
| | | (“closeQ_W_GuessSelGUI( )”) |
| | | message |
| 1968 | display-trivia-quiz-GUI | 1968A | trivia-quiz question |
| (displayTriviaQuizGUI( . . . ) ”) |
| message |
| 1968B | trivia-quiz-by-category-index | 1968C | trivia-quiz-by-category-total |
| (“trivQuizByCatIndx”) | | (“trivQuizByCatTot”) |
| parameter | | parameter |
| 1970 | display-turn-GUI | 1970A | array of players, in order of |
| (“displayTurnGUI( )”) message | | control (“controlSeq”) |
| 1970B | index for the player with | 1970C | reference to a “clock” object |
| answering privilege |
| (“ansPrivIndex”) |
| 2050 | submit guess | 2050A | attempt (“attempt”) |
| (“submitGuess( . . . ) ”) message |
| 2052 | validate-attempt | 2054 | validate-answering-privilege |
| (“validateAttempt( . . . ) ”) | | (“validateAnsPriv( . . . ) ”) |
| message | | method |
| 2056 | lookup-trivia-quiz-answer- | 2057 | reference to the trivia-quiz |
| node (“lookupTQANd( )”) | | answer node (“TQANd”) |
| method |
| 2058 | get-node-state | 2059 | set-active-node |
| (“getNodeState( )”) method of | | (“setActiveNode( . . . ) ”) method |
| the trivia-quiz answer node | | for a trivia-quiz-answer node |
| 2059A | trivia-quiz-answer node ID | 2060 | get-valid-answers |
| (“TQANdID”) | | (“getValidAnswers( )”) method |
| 2061 | array of valid answers | 2062 | checkAttempt method |
| (“validAnswers[ ]”) |
| 2110 | round object | 2112 | Match object |
| 2140 | update-score sequence | 2150 | set-node-state |
| | | (“setNodeState( . . . ) ”) message |
| 2150A | “answered” value |
| 2152 | set-node-state | 2154 | get-answer (“getAnswer( )”) |
| (“setNodeState( . . . ) ”) message | | method |
| 2156 | lookup-guess-the-phrase-word- | 2158 | lookup-guess-the-phrase- |
| node (“lookupGTPWNd( )”) | | phrase-node |
| method of the trivia-quiz | | (“lookupGTPPNd( )”) method |
| answer node |
| 2160 | reference to the guess-the- | 2162 | set-active-node |
| phrase-phrase node | | (“setActiveNode( . . . ) ”) method |
| | | for a guess-the-phrase-phrase |
| | | node |
| 2162A | guess-the-phrase-phrase node | 2164 | update-score |
| ID (“GTPPNdID”) | | (“updateScore( . . . ) ”) messages |
| 2164A | points by which the score is to | 2165 | condition that the player who |
| be updated | | answered the question is not |
| | | equal to the player who |
| | | currently has control |
| 2166 | set-control-index | 2168 | reset-answering-privilege |
| (“setControlIndex( . . . ) ”) | | index (resetAnsPrivIndex( )”) |
| method | | method |
| 2250 | updateScore method of the | 2252 | get-scores (“getScores( )”) |
| Round object | | method of the round object |
| 2254 | update-score | 2256 | get-scores (“getScores( )”) |
| (“updateScore( . . . ) ”) method of | | method of the match object |
| the match object |
| 2310 | control-and-score-GUI | 2350 | close trivia-quiz-GUI |
| (“Cntrl&ScoreGUI”) object | | (“closeTriviaQuizGUI( )”) |
| | | message |
| 2352 | update-navigation-mode-GUI | 2352A | trivia-quiz answer |
| (“updateNavModeGUI( . . . ) ”) | | (“triviaAnswer”) |
| message |
| 2354 | update-control-and-score-GUI | 2354A | array of player scores for the |
| (“updateCntrl&ScoreGUI( . . . ) ”) | | round (“round.player.score[ ]”) |
| message |
| 2354B | array of player scores for the | 2354C | the index for the player with |
| match (“match.player.score[ ]”) | | control (“cntrlIndex”) |
| 2450 | next-answering-privilege | 2452 | alternative combination |
| (“nextAnsPriv( )”) | | fragment |
| 2454 | condition that the control index | 2456 | update trivia-quiz-GUI |
| is not the answering-privilege | | (“updateTrivQuizGUI( . . . ) ”) |
| index | | message |
| 2458 | condition that the control index | 2460 | close trivia-quiz-GUI |
| is equal to the answering- | | (“closeTriviaQuizGUI( )”) |
| privilege index | | message |
| 2550 | pass (“pass( . . . ) ”) message to | 2552 | pass (“pass( . . . ) ”) message to |
| the controller object | | the game object |
| 2553 | alternative combination | 2610 | word-guessing-mode-GUI |
| fragment | | (“WdGuessingModeGUI”) |
| | | object |
| 2650 | submit-word-guess | 2650A | word attempt (“wordAttempt”) |
| (“submitWordGuess( . . . ) ”) |
| message |
| 2652 | validate-word-attempt | 2654 | get-valid-answers |
| (“validateWordAttempt( . . . ) ”) | | (“getValidAnswers( )”) method |
| message |
| 2655 | array of valid-word answers | 2656 | check-word-attempt |
| (“validWdAnswers[ ]”) | | (“checkWordAttempt( . . . ) ”) |
| | | method |
| 2750 | set-node-state | 2752 | getAnswer method of the |
| (“setNodeState( . . . ) ”) method | | guess-the-phrase-word node |
| of the guess-the-phrase-word |
| node |
| 2753 | word answer (“wordAnswer”) | 2850 | next-control (“nextControl( )”) |
| | | method |
| 2950 | buy-filler-word | 2952 | buy-filler-word |
| “buyFillerWord( . . . ) ” message | | “buyFillerWord( . . . ) ” message |
| to controller object | | to game object |
| 2954 | buy-filler-word-check | 2955 | “revealed” value |
| “buyFillerCheck( )”method |
| 3010 | PhrGuessingModeGUI | 3012 | guess-the-phrase-phrase object |
| 3050 | submit-phrase-guess message | 3050A | phrase-attempt array |
| to the controller object |
| 3050B | n-th word attempt | 3052 | submit-phrase-guess message |
| | | to the game object |
| 3054 | getNodeState method of the | 3056 | lookup-nth-guess-the-phrase- |
| guess-the-phrase-phrase node | | word node |
| object | | (“lookupGTPWdNd(n)”) |
| | | method of the guess-the- |
| | | phrase-phrase node object |
| 3056A | each “n” word in a phrase | 3058 | loop-combined fragment |
| 3059 | while condition that the | 3060 | guess-the-phrase-word object |
| previous attempt for a word |
| was correct |
| 3060A | “n-th” guess-the-phrase-word | 3062 | get-nth-word-node-state |
| object | | (“getNodeState(n)”) method of |
| | | a guess-the-phrase-word object |
| 3063 | condition that an n-th word | 3064 | get-valid-answers |
| node-state is unsolved | | (“getValidAnswers( )”) method |
| | | of the n-th guess-the-phrase- |
| | | word object |
| 3065 | array of valid answers | 3066 | check-word-attempt |
| | | (“checkWdAttempt( )”) method |
| 3210 | FinishedModeGUI object | 3250 | set-node-state method of |
| | | guess-the-phrase-phrase object |
| 3250A | “answered” parameter | 3252 | getAnswer method of the |
| | | guess-the-phrase-phrase object |
| 3253 | phrase answer | 3254 | draw-finished-mode-GUI |
| (“PhraseAnswer[ ]”) | | message to finished-mode- |
| | | GUI-object |
| 3310 | expression (“Expression”) | 3310A | (expression ID) |
| entity | | “ExpressionID” primary key |
| 3310B | “NumWords” attribute | 3310C | “NumQuizzableWords” |
| | | attribute |
| 3310D | “NumNonQuizzableWords” | 3310E | “IsSuitableForQuestionYN?” |
| attribute | | attribute | |
| 3310F | “IsSuitableForAnswerYN?” | 3310G | “IsSuitableForGuessThePhrase |
| attribute | | YN?”attribute |
| 3311 | canned-quiz (“CannedQuiz”) | 3311A | foreign-key-primary-key |
| entity | | “ExpressionID_Answ” |
| 3311B | question-text (“QuestionTxt”) | 3311C | “TotalCorrectAttempts” |
| attribute | | attribute | |
| 3311D | “TotalWrongAttempts” | 3312 | CannedQuiz_SubjectCategory |
| attribute | | entity |
|
| 3312A | a foreign-key-primary-key | 3312B | a foreign-key-primary-key |
| column | | column |
|
| 3314 | SubjectCategory entity | 3314A | category code |
| | | (“CategoryCode”) |
| 3314B | “CategoryDescription” | 3350 | primary key symbol “PK” |
| attribute |
| 3352 | a primary-key column | 3354 | symbol “PF” for a foreign-key- |
| | | primary-key column |
| 3356 | a foreign-key primary-key | 3358 | cardinality of zero-or-one |
| column |
|
| 3410 | expression-word | 3410A | a foreign-key-primary-key |
| “ExpressionWord”entity | | column | |
| 3410B | word-number-in-expression | 3410C | “IsDictionaryWordYN?” |
| (“WordNumInExp”)attribute | | attribute | |
| 3410D | “IsQuizzableWordYN?” | 3410E | “IsCapitalizedYN?” attribute |
| attribute |
| 3412 | ExpressionWordDictWord | 3412A | foreign-key-primary key |
| entity | | column, 3410A in 3412 |
| 3412B | foreign-key-primary key | 3412C | foreign-key-primary key |
| column, 3410B in 3412 | | column, 3416A in 3412 |
| 3412P | composite primary key | 3414 | ExpressionWordNonDictWord |
| | | entity |
| 3414P | composite primary key | 3416 | DictionaryWord entity |
| 3416A | primary key | 3416B | word-text “WordTxt” attribute |
| “DictionaryWordID” |
| 3418 | NonDictionaryWord entity | 3418A | primary key |
| | | “NonDictionaryWordID” |
| 3418B | word-text (“WordTxt”) | 3510 | Entity dictionary-word - |
| attribute | | dictionary-word - contains |
| | | (“DictWd_Dict:Contains”) |
| 3510A | a foreign-key-primary-key | 3510B | a foreign-key-primary-key |
| column of entity 3510 from | | column of entity 3510 from |
| primary key 3416A | | primary key 3416A |
| 3510P | foreign-key-primary-key of | 3511 | Entity dictionary-word - |
| entity 3510 | | dictionary-word - contained by |
| | | “DictWd_DictWd:ContainedBy |
| 3512 | dictionary-word - dictionary- | 3514 | dictionary-word - dictionary- |
| word - alternate spelling | | word - tense of |
| (“DictWd_DictWd:AlternateSpelling”) | | (“DictWd_DictWd:TenseOf”) |
| entity | | entity |
| 3516 | dictionary-word - dictionary- | 3518 | dictionary-word - dictionary- |
| word - abbreviation-or-long- | | word - root-or-derivative-of |
| form | | (“DictWd_DictWd:RootOrDeriv |
| DictWd_DictWd:AbrevOrLong | | Of”) entity |
| Fm entity |
| 3518A | a foreign-key-primary-key | 3518B | a foreign-key-primary-key |
| column of entity 3518 from | | column of entity 3518 from |
| primary key 3416A | | primary key 3416A |
| 3518P | foreign-key-primary-key of |
| entity 3518 |
| 3520 | dictionary-word - dictionary- | 3522 | dictionary-word - dictionary- |
| word - synonym-of | | word - antonym-of |
| (“DictWd_DictWd:SynonymOf”) | | (“DictWd_DictWd:AntonymOf”) |
| entity | | entity |
| 3610 | ExpWdDictWd_DictWd_Dict | 3610A | a foreign-key-primary-key |
| Wd:RootOrDerivativeOf entity | | column of entity 3610 from |
| | | primary key column 3412A |
| 3610B | a foreign-key-primary-key | 3610C | a foreign-key-primary-key |
| column of entity 3610 from | | column of entity 3610 from |
| primary key column 3412B | | primary key column 3412C |
| 3610D | a foreign-key-primary-key | 3610E | a foreign-key-primary-key |
| column of entity 3610 from | | column of entity 3610 from |
| primary key column 3518A | | primary key column 3518B |
| 3612 | ExpWdDictWd_ExpWdDictWd_DictWd_Dict | 3612A | a foreign-key-primary-key |
| Wd:RootOrDerivativeOf1 | | column of entity 3612 from |
| entity | | primary key column 3412A |
| 3612B | a foreign-key-primary-key | 3612C | a foreign-key-primary-key |
| column of entity 3612 from | | column of entity 3612 from |
| primary key column 3412B | | primary key column 3412C |
| 3612D | a foreign-key-primary-key | 3612E | a foreign-key-primary-key |
| column of entity 3612 from | | column of entity 3612 from |
| primary key column 3610A | | primary key column 3610B |
| 3612F | a foreign-key-primary-key | 3612G | a foreign key column of entity |
| column of entity 3612 from | | 3612 from primary key column |
| primary key column 3610C | | 3610D |
| 3612H | a foreign key column of entity | 3710 | node (“Node”) entity |
| 3612 from primary key column |
| 3610E |
| 3710A | node ID (“NodeID”) primary | 3710B | “IsExpressionYN?” attribute |
| key |
| 3710C | “IsNotAnExpressionYN?” | 3710D | parent-node-ID |
| attribute | | (“ParentNodeID”) |
| 3710E | node-level (“NodeLevel”) | 3710F | tree ID (“TreeID”) foreignkey |
| attribute |
|
| 3710J | one to zero-or-one self-join | 3711 | one-to-zero-or-one cardinality |
| | | betweenentities 3710 and |
| | | 3712 |
| 3712 | non-expression-node | 3712A | foreign-key-primary-key of |
| (“NonExpressionNode”)entity | | entity | 3712 |
| 3712B | is-it-a-canned-quiz-question- | 3712C | is-it-a-guess-the-phrase-word- |
| yes-or-no | | node-yes-or- |
| (“IsCannedQuizQuestionYN?”) | | no(“IsGuessThePhraseWordYN |
| attribute | | ?”)attribute |
| 3712D | is-it-a-multi-media-clip-yes-or- | 3712E | is-it-a-sound-clip-yes-or-no |
| no (“IsMMClipYN?”) attribute | | (“IsSoundClipYN?”)attribute |
| 3712F | is-it-a-picture-yes-or-no | 3712G | is-it-a-concealed-picture- |
| (“IsPictureYN?”) attribute | | puzzle-yes-or-no |
| | | (“IsConcealedPicturePuzzleYN |
| | | ?”)attribute |
| 3713 | one-to-zero-or-one cardinality | 3714 | expression-node |
| betweenentities 3710 and | | (“ExpressionNode”)entity |
| 3714 |
| 3714A | “NodeID” foreign-key-primary | 3714B | “ExpressionID” foreign-key- |
| key column inentity 3714 | | primary key column inentity |
| | | 3714 |
| 3714C | is-it-a-derived-clue-yes-or-no | 3714D | is-it-the-answer-to-a-canned- |
| (“IsDerivedClueYN?”) | | quiz-question-yes-or-no |
| attribute | | (“IsCannedQuizAnswerYN?”) |
| | | attribute |
| 3714E | is-it-a-guess-the-phrase- | 3715 | one-to-zero-or-many |
| phrase-yes-or-no | | cardinality between entities |
| (“IsGuessThePhrasePhraseYN?”) | | 3710 and 3714 |
| attribute |
| 3810 | CannedQuizQuestionNode | 3810A | foreign-key-primary-key |
| entity | | column inentity 3810 from |
| | | 3712A |
| 3810B | foreign-key-primary-key | 3810C | has-multiple-choice-answer- |
| column inentity 3810 from | | yes-or-no |
| 3311A | | (“HasMCAnswerYN?”) |
| | | attribute |
| 3810D | has-text-input-answer-yes-or- | 3811 | one-to-zero-or-one cardinality |
| no | | betweenentities 3712 and |
| (“HasTextInputAnswerYN?”) | | 3810 |
| 3812 | GuessThePhraseWordNode | 3812A | foreign-key-primary-key |
| entity | | column inentity 3812 from |
| | | primary key 3712A ofentity |
| | | 3712 |
| 3812B | foreign-key-primary-key | 3812C | foreign-key-primary-key |
| column inentity 3812 from | | column inentity 3812 from |
| primarykey column 3410A of | | primarykey column 3410B of |
| entity 3410 | | entity 3410 |
| 3813 | one-to-zero-or-one cardinality | 4010 | tree (“Tree”) entity |
| betweenentities 3712 and |
| 3812 |
| 4010A | tree ID (“TreeID”)primary key | 4010B | is-template-yes-or-no |
| | | “IsTemplateYN?” attribute |
| 4010C | average-player-rating | 4010D | tree-created-by-player-ID |
| “AveragePlayerRating” | | (“TreeCreatedByPlayerID”) |
| attribute | | foreign key from aplayer |
| | | entity |
|
| 4110 | player (“Player”)entity | 4110A | player ID (“PlayerID”) |
| | | primary key |
| 4110B | first name (“FName”)attribute | 4110C | last name (“LName”)attribute |
| 4112 | tree-player (“Tree_Player”) | 4112A | foreign-key-primary-key |
| entity | | column referencing primary |
| | | key 4010A ofentity 4010 |
| 4112B | foreign-key-primary-key | 4112C | player-rating-of-tree |
| column referencing primary | | (“PlayerRatingOfTree”) |
| key 4110A ofentity 4110 | | attribute |
| 4210 | tree-formulator | 4250 | tree-formula-initialization |
| (“:TreeFormulator”) object | | method |
| | | (“initTreeFormulator( )”) |
| 4252 | insert-tree (“insertTree( )”) | 4254 | tree ID (“TreeID”)value |
| message |
|
| 4256 | select-expression | 4256A | parameter to select where |
| (“selectExpression( . . . ) ”) | | “IsSuitableForGuessThePhrase |
| message | | YN?”attribute 3310G is set to |
| | | “Y” |
| 4258 | values returned fromentity | 4258A | expression ID |
| 3310 | | (“ExpressionID”) value from |
| | | column 3310A |
| 4258B | number ofwords | 4260 | insert-node (“insertNode( . . . ) ”) |
| (“NumWords”) value from | | message |
| column |
| 3310B |
|
| 4260A | parameter to setcolumn 3710B | 4260B | Other parameters sent with |
| to “Y” | | message 4260 |
| 4260C | parameter to setcolumn 3710D | 4260D | parameter to setcolumn 3710E |
| to NULL | | to “1”. |
| 4262 | node ID (“NodeID”) | 4264 | insert-expression-node |
| | | (“insertExpressionNode( . . . ) ”) |
| | | message |
| 4264A | parameters ofmessage 4264 to | 4264B | Parameter to set column” |
| setcolumns 3714C and3714D | | 3714E to “Y” |
| both to “N” |
| 4266 | set-level-one-parent-node-ID | 4348 | outer loop |
| (“setLevel1ParentNodeID( . . . ) ”) |
| message |
| 4350 | select-expression-word | 4350A | parameter representing the |
| (“selectExpressionWord( . . . ) ”) | | loop counter |
| message |
|
| 4352 | column values fromentity | 4352A | value ofcolumn |
| 3410 | | “IsQuizzableWordYN?” |
| | | 3410D |
| 4352B | values ofcolumn | 4354 | insert-node (“insertNode( . . . ) ”) |
| “IsQuizzableWordYN?” | | message |
| 3410C and3410E |
| 4354A | parameter to setcolumn 3710C | 4354B | other parameters sent with |
| to “Y” | | message 4354 |
| 4354C | parent-node-ID | 4354D | parameter to setcolumn 3710E |
| (“parentNodeID”) parameter to | | to “2” |
| set column 3710D to the node |
| ID of the parent, top-level node |
| 4356 | node ID (“NodeID”)return | 4358 | insert-non-expression-node |
| value | | (“insertNonExpressionNode |
| | | ( . . . ) ”)message |
| 4358A | parameter to setcolumn 3712C | 4358B | Other parameters of message |
| to “Y” | | 4358 to setcolumns 3712B, |
| | | and 3712D-3712G to “N” |
| 4360 | insert-guess-the-phrase-word- | 4360A | parameter to setcolumn 3812B |
| node | | to the current expression ID of |
| (“insertGuessThePhraseWord | | the top-level expression |
| Node( . . . ) ”)message |
| 4360B | parameter to set 3812C to the | 4450 | alt combined fragment |
| counter value “n” representing |
| the word number in the |
| expression |
| 4452 | condition that | 4454 | next (“next(n)”) method or |
| “IsQuizzbleWordYN?” value | | next statement |
| 4352A is set to “N”, |
| 4456 | condition that | 4457 | set-level-two-node-id |
| “IsQuizzbleWordYN?” value | | (“setLevel2NodeID( . . . ) ”) |
| 4352A is set to “Y” | | method |
| 4458 | loop combinedfragment | 4460 | reset-level-two-parent-node-ID |
| | | (“resetLevel2ParentNodeID( )”) |
| | | method |
| 4461 | level-two-node-id parameter | 4462 | select-related-expression |
| | | (“selectRelatedExpression( . . . ) ”) |
| | | message |
| 4464 | related-expression-id | 4466 | “selectExpressionID_Answ” |
| (“ExpressionID1”) | | message |
| 4466A | parameter to selectcolumn | 4468 | “ExpressionID_Answ”value |
| 3311A fromentity 3311 where |
| column 3311A is equal to 4464 |
| 4470 | method ornext statement |
| 4472 | condition that checks that 4468 | 4550 | condition that checks that 4468 |
| in not null | | is not null |
| 4552 | insert-node (“insertNode( . . . ) ”) | 4552A | parameter that setscolumn |
| message |
| | 3710B “IsExpressionYN?” to |
| | | “Y” |
| 4552B | Parameter to set | 4552C | parent-node-ID |
| “IsNotAnExpressionYN?” | | (“parentNodeID”)parameter |
| column |
| 3710C to “N” |
| 4552D | A parameter to setcolumn | 4554 | node ID (“NodeID”) |
| 3710E to “3” |
| 4556 | insert-expression-node | 4556A | parameter to set |
| (“insertExpressionNode( . . . ) ”) | | “ExpressionID”column 3714B |
| message | | to 4468 |
| 4556B | parameters to setcolumns | 4556C | Parameter to setcolumn |
| 3714C and 3714E to “N” | | “IsCannedQuizAnswerYN?” |
| | | 3714D to “Y” |
| 4558 | set-level-three-parent-node-id | 4560 | insert-node message |
| (“setLevel3ParentNodeID( . . . ) )” |
| method |
| 4560A | parameter to setcolumn | 4560B | parameter to set |
| 3710C, | | “IsExpressionYN?” 3710B to |
| “IsNotAnExpressionYN?” to | | “N” |
| “Y” |
| 4560C | parent-node-ID | 4560D | parameter to setcolumn 3710E |
| (“parentNodeID”) parameter | | to “4” |
| 4562 | node ID (“NodeID”) | 4564 | insert-non-expression-node |
| | | (“insertNonExpressionNode |
| | | ( . . . ) ”)message |
| 4564A | parameter to set | 4564B | Other parameters to set |
| “IsCannedQuizQuestionYN?” | | columns 3712C-3712G to “N” |
| column 3712B to “Y”. |
| 4566 | insert-canned-quiz-question- | 4566A | parameter to set 3810C to “N”, |
| node |
| (“insertCannedQuizQuestionNode |
| ( . . . ) ”) message |
| 4566B | parameter to set column 3810D | 4650 | initialize-guess-the-phrase- |
| to “Y” | | phrase-node |
| | | (“initGTPPNd( . . . ) ”) message |
| 4652 | node-id (“NodeID”) | 4654 | select-expression |
| | | (“selectExpression( . . . ) )” |
| | | message |
| 4656 | expression-id | 4658 | select-number-of-words |
| (“ExpressionID”) | | (“selectNumWords( . . . ) ”) |
| | | message |
| 4660 | number-of-words | 4662 | initialize-guess-the-phrase- |
| (“NumWords”) | | word-node-array |
| | | (“initGTPWNd( )”) method |
| 4664 | combined loop fragment | 4666 | select-guess-the-phrase-word- |
| | | node (“selectGTPWNd( . . . ) ”) |
| | | message |
| 4668 | parameter to restrict column | 4670 | node-id (“NodeID”) |
| 3710D to 4652 |
| 4674 | add-guess-the-phrase-word- | 4750 | initialize-guess-the-phrase- |
| node (“addGTPWNd( . . . ) ”) | | word-node-id |
| method | | (“initGTPWNd( . . . ) ”) message |
| 4752 | node-id (“NodeID”) | 4754 | select-expression-and-word- |
| | | number |
| | | (“selectExpression&WordNum |
| | | ( . . . ) )” message |
| 4756 | returns values | 4758 | parent-expression-id |
| | | (“ParentExpressionID”) |
| 4760 | word-number-in-parent- | 4762 | select-expression-word- |
| expression | | information |
| (“WordNumInParentExp”) | | (“selectExpressionWordInfo |
| | | ( . . . ) ”) message |
| 4762A | parameter which restricts | 4762B | parameter which restricts |
| column 3410A.with 4758 | | column 3410B.with 4760 |
| 4764 | return values | 4766 | expression-id |
| | | (“ExpressionID”) |
| 4768 | word-number-in-expression | 4770 | “IsQuizzableWordYN?” |
| (“WordNumInExp”) |
| 4772 | “IsCapitalizedYN?” | 4774 | select-dictionary-word |
| | | “(selectDictionaryWord( . . . ) ” |
| | | message |
| 4776 | Parameter that restrictscolumn | 4778 | select-word-text |
| 3412A | | (“selectWordTxt( . . . ) ”message |
| 4780 | word-text (“WordTxt”) | 4782 | set-answer (“setAnswer( . . . ) ”) |
| | | method |
| 4784 | condition that the word is a | 4786 | set-valid-word-answer |
| quiz-able word | | (“setValidWdAnswer( . . . ) ” |
| | | method |
| 4850 | select-parent-node | 4852 | parent-node-id |
| (“selectParentNode( . . . ) ”) | | (“ParentNodeID”) |
| message |
| 4854 | initialize-trivia-quiz-answer- | 4856 | loop combined fragment |
| node (“initTQANd( )”) method |
| 4858 | select-trivia-quiz-answer-node | 4860 | parameter to restrict column |
| (“selectTQANd( . . . ) ”) message | | 3710D to node ID 4752 |
| 4862 | node id | 4864 | select-expression |
| | | (“selectExpression( . . . ) ”) |
| | | message |
| 4866 | expression-id | 4868 | select-category-code |
| (“ExpressionID”) | | (“selectCategoryCode( . . . ) ”) |
| | | message |
| 4870 | parameter which restricts | 4872 | category-code |
| column 3312A with 4866 | | (“CategoryCode”) |
| 4874 | set-trivia-quiz-answer-node | 4950 | initialize-trivia-quiz-answer- |
| (“setTQANd( . . . ) ” method | | node (“initTQANd( . . . ) ”) |
| | | message |
| 4952 | node-id (“NodeID”) | 4954 | select-expression |
| | | (“selectExpression( . . . ) )” |
| | | message |
| 4956 | expression-id | 4958 | select-number-of-words |
| (“ExpressionID”) | | (“selectNumWords( . . . ) ”) |
| | | message |
| 4960 | number-of-words | 4962 | initialize-answer |
| (“NumWords”) | | (“initAnswer( . . . ) )” method |
| 4964 | combined loop fragment | 4966 | select-dictionary-word |
| | | (“selectDictionaryWord( . . . ) ”) |
| | | message |
| 4966A | parameter which restricts | 4968 | dictionary-word-id |
| column 3412B to the counter | | (“DictionaryWordID”) |
| representing the word number |
| 4970 | select-word-text | 4972 | word text (“WordTxt”) |
| (“selectWordTxt( . . . ) ”) |
| message |
| 4974 | select-caplitalization | 4974A | parameter for counter value, |
| (“selectCapitalization( . . . ) ”) | | which restricts colunm 3410B |
| 4976 | “IsCapitalizedYN?” | 4978 | add-to-answer |
| | | (“addToAnswer( . . . ) ”) method |
| 5050 | convert-to-string | 5052 | array of words for the trivia- |
| (“convertToString( . . . ) ” | | quiz-answer expression |
| method |
| 5054 | initialize-valid-answers | 5056 | string-answer |
| (“initValidAnswers( . . . ) ”) | | (“stringAnswer”) |
| method |
| 5058 | select-guess-the-phrase-word- | 5058A | parameter that restricts column |
| node (“selectGTPWNd( . . . ) ”) | | 3710A with node id 4952 |
| message |
| 5060 | parent-node-id | 5062 | set-guess-the-phrase-word- |
| (“ParentNodeID”) | | node (“setGTPWNd( . . . ) ”) |
| | | method |
| 5064 | select-trivia-quiz-question- | 5064A | parameter 5064A that restrict |
| node (“selectTQQNd( . . . ) ”) | | column 3710D with 4952 |
| message |
| 5066 | node-id (“NodeID”) | 5068 | set-trivia-quiz-question-node |
| | | (“setTQQNd( . . . ) ”) |
| 5150 | initialize-trivia-quiz-question- | 5152 | node-id (“NodeID”) |
| node (“initTQQNd( . . . ) ”) |
| message |
| 5154 | a select-expression | 5156 | “ExpressionID_Answ” |
| (“selectExpression( . . . ) )” |
| message |
| 5158 | select-question-text | 5160 | question text (“QuestionTxt”) |
| (“selectQuestionTxt( . . . ) ”) |
| message |
| 5162 | initialize-question | 5164 | select-trivia-quiz-answer-node |
| (“initQuestion( . . . ) ”) method | | (“selectTQANd( . . . ) ”) method |
| 5166 | node-id (“NodeID”) | 5168 | set-trivia-quiz-answer-node |
| | | (“setTQANd( . . . ) ”) method |
| 5210 | round (“Round”) entity | 5210A | “TreeID” foreign key |
| 5210B | “MatchID” foreign-key- | 5210C | round number “RoundNum” |
| primary-key column | | primary key column |
| 5210D | “TotalPointsAwarded” | 5210E | “MaxAvailPoints” attribute |
| attribute |
| 5210F | “StartDate” attribute | 5210G | “EndDate” attribute |
| 5210H | “PlayerIDToStartRound” | 5210I | “IsStartedYN?” attribute |
| foreign key |
| 5210J | “IsSuspendedYN?” attribute | 5210K | “IsCompletedYN?” |
| 5212 | “Round_Player” composite | 5212A | “MatchID” primary-key |
| entity | | column |
|
| 5212B | “RoundNum” primary-key | 5212C | “PlayerID” primary-key |
| column | | column |
|
| 5212D | “Score”attribute | 5214 | match (“AMatch”)entity |
| 5214A | “MatchID”primary key | 5214B | “TotalPointsAvailable” |
| | | attribute |
| 5214C | “TotalPointsAwarded” | 5214D | “PlayerIDMatchAdmin” |
| | | foreign key |
| 5214E | “IsStartedYN?” attribute | 5214F | “IsSuspendedYN?” attribute |
| 5214G | “IsCompletedYN?” | 5216 | “AMatch_Player” composite |
| | | entity |
| 5216A | “MatchID” foreign-key- | 5216B | “PlayerID” foreign-key- |
| primary-key column | | primary-key column |
| 5216C | “Score” attribute | 5216D | “ControlOrder” attribute |
| 5310 | game administrator | 5312 | player object (“Player”) |
| (“GameAdmin <<actor>>”) |
| 5314 | match (“Match”) object | 5350 | initiate-game (“initGame( . . . ) ”) |
| | | message |
| 5352 | array of player IDs of size “P” | 5354 | number of rounds |
| (“playerID[P]”) | | (“numRounds”) |
| 5356 | array of “R” tree IDs | 5358 | initilize-control-sequence |
| (“TreeID[R])”) | | (“initControlSeq( . . . ) ”) |
| 5360 | combined loop fragment | 5362 | initialize-player |
| | | (“initPlayer( . . . ) ”) message |
| 5364 | player ID of the counter index | 5366 | select-player |
| value (“playerID(p)”) | | (“selectPlayer(p)”) message |
| 5368 | reference to the player object | 5370 | add-to-control-sequence |
| | | (“addToControlseq( . . . ) ”) |
| | | method |
| 5372 | initialize-match | 5374 | control sequence |
| (“initMatch( . . . ) ”) message | | (“controlSeq”) |
| 5376 | insert-match (“insertMatch( )”) | 5378 | “MatchID” value |
| message |
| 5380 | reference to the match object | 5450 | next-control-sequence |
| | | (“nextControlSeq( . . . ) ”) |
| | | method |
| 5452 | parameter “r”, the index of the | 5454 | initialize-round |
| current round | | (“initRound( . . . ) ”) message |
| 5456 | match ID (“MatchID”) | 5458 | insert-round |
| parameter | | (“insertRound( . . . ) ”) message |
| 5460 | tree ID of the round index | 5462 | index of the current round plus |
| (“TreeID(r)”). | | one |
| 5464 | round reference | 5466 | select-top-node |
| | | (“selectTopNode( . . . ) ”) |
| | | message |
| 5468 | parameter that restrictscolumn | 5470 | node ID (“NodeID”) return |
| 3710E to “1”. | | value |
| 5472 | get-number-of-words | 5474 | initialize-guess-the-phrase- |
| (“getNumWords( )”) message | | word-GUI-information |
| | | (“initGTPWGUIInfo( )”) |
| | | method |
| 5550 | combinedloop fragment | 5552 | get-nth-guess-the-phrase-word- |
| | | node (“getGTPWNd(n)”) |
| | | message |
| 5554 | node ID (“NodeID”) | 5556 | reference to the guess-the- |
| | | phrase-word node |
| 5558 | get-guess-the-phrase-word- | 5560 | return values |
| node-GUI-information |
| (“getGTPWNdGUIInfo( )”) |
| message |
| 5562 | word text (“WordTxt”) | 5564 | is-quiz-able-word-yes-or-no |
| | | (“IsQuizzableWdYN?”) |
| 5566 | node state (“nodeState”) | 5568 | get-word-length |
| | | (“getWordLength( . . . ) ”) |
| | | message |
| 5570 | add-guess-the-phrase-word- | 5572 | length (“wordLength”) |
| GUI-information |
| (“addGTPWGUIInfo( . . . ) ”) |
| method |
| 5574 | initialize-navigation-mode- | 5576 | guess-the-phrase-phrase-node- |
| GUI (“initNavModeGUI( . . . ) ”) | | ID (“GTPPNdID”) |
| message |
| 5578 | guess-the-phrase-word-GUI- | 5580 | initialize-control-and-score- |
| information | | GUI |
| (“GTPWGUIInfo[ ]”) array | | (“initCntrl&ScoreGUI( . . . ) ”) |
| | | message |
| 5582 | array of player scores for the | 5584 | array of player scores for the |
| round (“round.player.score[ ]”) | | match (match.player.score[ ]”) |
| 5586 | control sequence | 5588 | index for the player with |
| (“controlSeq”) | | control (“cntrlIndex”) |
| 7010 | quiz question for clue “Shrek” | 7012 | quiz question for clue “The |
| | | Hobbit” |
| 7014 | quiz question for clue “Bruce | 9510 | phrase component title bar |
| Lee” |
| 9512 | phrase component | 9520 | horizontal scroll bar |
| 9530 | score-and-control component | 9540 | quiz navigator component |
| 9550 | Match Parameters Display | 9560 | Pause/QuitMatch button |
| component |
|
| 9562 | Score andControl component | 9564 | Match Parameterscomponent |
| button | | button |
|
| 9566 | quiz navigator component | 9568 | Match Historycomponent |
| button | | button |
|
| 9570 | phrase component button | 9572 | MyPlayer Console button |
| 9574 | Chat component button |
|
DETAILED DESCRIPTIONLogical Description—FIG. 1The 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 (FIG. 1). The symbol for a node that is a top-level answer140 is a large hollow circle. It is node that can only be an answer since it is the final answer to a QNQ puzzle.
InFIG. 1, nodes levels are consecutively numbered from the top level to the lowest level. In the present discussion, a top level or node-level one is represented as node-level1110. Node-level2112, node-level3114, node-level4116, and node-level “n”130 follow.
The symbol for a revealednode142 is a solid circle. The symbol for anassociation141 between a revealed,lower node142, acting as a clue, with another node, acting as an answer, is a thick connecting line. Revealednodes142 are generally revealed by supplying a correct answer, except at the bottom-most level of a branch. Revealednodes142 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 anunrevealed node146 is a solid square. The symbol for anassociation145 of a lowerunrevealed node146, 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 solidoval symbol144 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 nodes146A 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.
FIGS.2-14 Interface for Combined-Guess-the-Phrase-and-Trivia-Quiz EmbodimentOverviewThe 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.
User Interface—FIGS. 2-13The phrase component can appear in an integrated graphical user interface, such as the one indicated inFIG. 95. A score-and-control component9530 will be displayed to each player during a round. An answering-turn-display component,470 ofFIG. 4 will be displayed when the game is in an answering mode. In single-player mode, the answering-turn-display component is modified to show the remaining time without showing information about other players.
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 inFIG. 14. When referring to components in their structural sense within their quiz-tree, the numbering ofFIG. 14 is used. When referring to components in their user-interface sense, the numbering ofFIGS. 2-13 is used.
FIG. 2 represents the phrase component at the beginning of a round of play, in a mode called “navigation mode”. As discussed further, there are four modes of the phrase component. These modes are “navigation”, “quiz-able-word-guessing”, “phrase-guessing” and “finished”. Except for finished mode, the modes can alternate during a round.
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-words220A1 and220B1, with attached hyperlink. These refer to “nodes”220A and220B ofFIG. 14. Initially there are also unrevealed first, second and third filler-words218A1,218B1 and218C1, with attached hyperlink. These refer to “nodes”218A,218B and218C ofFIG. 14.
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-words218A1,218B1 and218C1, 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 hyperlink220A1 and220B1.
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 inphrase section212 are masked at the beginning of a round. Mask underlining for unrevealed words220A1,220B1,218A1,218B1 and218C1 indicates a hyperlink that is attached to each word.
Each clue found on a quiz-able-word is displayed in a word-clue section214, which is demarcated by a word-clue section label222. A quiz-able-word clue is to be presented in quiz-able-word-clue cell230A or230B 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 cells228 beneath each of filler-words218A1,218B1 and218C1 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”button216A, visible in navigation mode.
Clicking on unrevealed first quiz-able-word220A1, with attached hyperlink displays a quiz-and-word-guessing-selector component (FIG. 3). The quiz-and-word-guessing-selector component takes the form of a menu over the phrase component just below unrevealed first quiz-able-word220A1, with attached hyperlink. The quiz-and-word-guessing-selector component has a top-level menu310. Top-level menu310 contains a “word-guess”menu option312 and a “find-a-clue” menu option314.
The quiz-and-word-guessing-selector component, and, more particularly, the “find-a-clue” menu option314 and its submenus, are part of a selector means. In the present embodiment, the selector means includes a system means. This includes an arrow-cursor99 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.
In the present embodiment, the selector means allows a player to select one or more quizzes associated with each unsolved quiz-able-word. The selector means could include a JavaScript function that specifies how to call a servlet and pass a node identification value for the quiz-able word. The JavaScript function could be invoked from a hyperlink anchor for the quiz-able word. In the present embodiment, the selector means can include a browser request from the client to a controller servlet(s). The request passes the node-identification value of the selected quiz-able word. One server-side, the controller servlet passes the request to Enterprise Java Beans comprising the game model. Servlets and JSP files could be used to generate the HTML for the quiz-and-word guessing selector component. Alternately, only parameters needed for the variable information in the quiz-and-word-guessing selector component would be returned from the server. Other options include pre-loading quiz data on the client using XML or some other means, and having an applet that makes a request to the controller servlet.
An attachment means attaches the selector means to the indication of the quiz-able word. The attachment means includes a system means. In the present embodiment, the attachment means could include a hyperlink value or parameter for the quiz-able word's node-identification value. This is part of the hyperlink which provides the indication of the quiz-able word. The attachment means also associates the quiz-able word hyperlink to the selector means. It can do this with HTML and JavaScript that invokes the selector means when there is a mouse over event.
Placingarrow cursor99 over find-a-clue menu option314 (action not shown) presents a flyout menu called aquiz submenu330. Its options are specific to the selected quiz-able-word and are based on the quizzes associated to it within the quiz-tree.Quiz submenu330 presents the available quizzes by category. In the example, there is a television-quiz-category-menu option332A, a movies-quiz-category-menu option332B, a music-quiz-category-menu option332C, and a sports-quiz-category-menu option332D.
Each quiz-category-menu option332A-332D displays the number of available quizzes per category in brackets. For example, a number of quizzes332A1 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 options332A-332D displays the next available trivia-quiz within the selected category by opening a trivia-quiz component (FIG. 4). The trivia-quiz component is a pop-up dialogue that displays a quiz and accepts player input. The trivia-quiz component has a quiz heading410A. Quiz heading410A includes a category410A1, a quiz number410A2 per category, and a total number of available quizzes410A3 in the category pertaining to the quiz-able-word (220A ofFIG. 14).
Also displayed are a quiz question412A1, and ananswer label414A showing players where to type a guess. An answer-attempt textbox416 will accept typed input from a player. A point-deduction warning418 reminds players of a deduction for a wrong answer. A submitbutton420 submits a guess inanswer textbox416 to the system for validation. A clear-answer button422 clearsanswer textbox416. A pass-guess button424 allows a player to pass on the quiz without guessing.
Functionality provided by the trivia-quiz component, and particularly quiz question412A1, 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.
A first guessing means allows a guess to be provided for a trivia quiz. The first guessing means includes functionality provided by the trivia-quiz component and particularly answer-attempt textbox416 and submitbutton420. It also includes a system means for providing a guess to a first validation means. In the present embodiment, this functionality includes passing a node identification value representing the trivia-quiz question to the system. Submitting a guess to a controller servlet could be accomplished using Javascript and HTML. It could also be accomplished using an applet request to the controller servlet. The first guessing means also includes a hand-pointer cursor95. Also included is an input means, such as a computer keyboard for example.
In a sequential-answering system, an answer-attempt textbox416 andbuttons420,422, and424 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 have416,420,422 and424 disabled on their display.
Answering-turn-display component470 shows which player has answering privilege for multiplayer modes or embodiments. A “turn” column heading482 and a “player” column heading472 help to arrange the display. Analarm clock icon476 and a number ofseconds480 adjacent to aplayer name474B, 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”indicator478 adjacent to aplayer name474C indicates the next player in the answering privilege order. Athird player name474A is also indicated.
FIG. 5 depicts the trivia-quiz component with answer-attempt text416A typed into answer-attempt textbox416. A hand-pointer cursor95 over submitbutton420 indicates that a player is about to submit an answer attempt. Pressing submitbutton420 submits a guess to the system for validation. A first validation means provides a validation result for the guess. In the present embodiment, the first validation means includes a system means. The system means includes using a node identification value for a trivia-quiz question to a get a node identification value of a corresponding trivia quiz answer. It includes getting the valid answer(s) for that node, and comparing them to the guess supplied from the interface. In the present embodiment, a validation result of success or failure is determined by the system. The validation process is dependent on quiz-to-answer matching criteria, explained further below.
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 cell230A (FIG. 2). The player with control can then take a new action.
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 clue230A1 is revealed in quiz-able-word clue cell230A as depicted inFIG. 6. First quiz-able-word220A1 has first clue230A1, “Marty McFly”, a movie character. Clue230A1 is an expression that contains the first quiz-able-word, which will be revealed to be “fly”. Control will go to the player who successfully answered the most recent trivia-quiz. In alternative embodiments, control can be based on different rules.
Clue230A1 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 cursor95 over unrevealed second filler-word218B1, with attached hyperlink and clicks her mouse button. A “buy-word”menu338, containing one item, is next displayed as shown inFIG. 7. In an alternative embodiment, a player might also have the option to guess at an individual filler-word. Only the player with control can selectmenu338. Buy-word menu338 is selected by a player releasing her mouse button withmenu338 selected witharrow cursor99. This action opens a confirmation pop-up dialogue window depicted inFIG. 8.
The confirmation pop-up inFIG. 8 confirms the player's decision to buy the selected filler-word. A word-cost warning label510 reminds the player in control of the cost of buying a filler-word. A word-cost message512 asks the player in control if she wants to buy the selected word. The player can proceed to buy the filler-word by placing hand-pointer cursor95 over a “yes”button514 and mouse clicking. The player can also click a “no”button516, canceling the filler-word purchase and closing the confirmation pop-up dialogue window.
FIG. 9 depicts the phrase component in navigation mode with revealed second filler-word218B5 that was revealed by buying a word. Further player action cannot be taken on revealed second filler-word218B5 as shown by its lack of a hyperlink, which had been indicated by underlining.
After the round has been in progress a while, the phrase component might appear similar toFIG. 9, except with two clues revealed in first quiz-able-word cell230A. The player with control might guess at unrevealed first quiz-able-word220A1, with attached hyperlink. This can be accomplished with word-guess menu option312 depicted inFIG. 3.
Opting to guess at a quiz-able-word will change the mode of the phrase component to word-guessing mode, depicted inFIG. 10. First quiz-able-word's presumed second clue230A2, “The Flight of the Phoenix”, is a movie name. Clue230A2 is also an expression containing a word derivative, “flight”, of the quiz-able-word, “fly”.
In word-guessing mode, solve-phrase button216A ofFIG. 9 disappears. It is replaced by a submit-guess button216B, a clear-guess button216C, a cancel-guess button216D, and a point-deduction warning216E ofFIG. 10. A first quiz-able-word response220A4 is accepted as text input from a player. The interface indicates that the field in which220A4 is input is “active” by enlarging the font of220A4, placing afield border97 around it, and placing aninsertion cursor98 in the field. Unrevealed second quiz-able-word220B2, without attached hyperlink and unrevealed first and third filler-words218A2 and218C2, without attached hyperlink will not accept input or action, as depicted by their absence of underlining, and are therefore “inactive”.
As the player with control inputs response220A4, the masking characters are replaced with the typed text.Insertion cursor98 moves according to the input.FIG. 10 depicts two of the three characters of220A as having been inserted.
The phrase component in word-guessing mode, and particularly response220A4 andbutton216B are part of a second guessing means. Also included is the quiz-and-word-guessing selector component, and particularly312. In the present embodiment, the second guessing means includes a system means. This includes a means for inputting a guess in the interface. It also includes a means for submitting the node identification value of the quiz-able word node, along with the attempt, to the system for validation. This can include Javascript and HTML on the client, or an applet, for submitting a guess to a controller servlet.
It is presumed that the player with control completes a (correct) guess and submits the guess with submit-guess button216B. 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-word220A5 (FIG. 1, for220A5 only) for the round duration. The successful player retains control.
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 (FIG. 10) cancels guessing at the word with cancel-guess button216D, focus returns to the phrase component in navigation mode. The display would appear similar toFIG. 9 except with clue230A2 shown inFIG. 10. Control remains as is.
If, inFIG. 10, the player with control were to clear the guess with clear-guess button216C, all characters of first quiz-able-word220A would become masked. The phrase component would remain in word-guessing mode with focus on first quiz-able-word220A and control remaining as is.
If the player with control were to submit an incorrect guess, unrevealed first quiz-able-word220A1, with attached hyperlink would be shown. The screen would be likeFIG. 9, except with clue230A2 shown inFIG. 10. The phrase component would return to navigation mode. Control would be passed to the next player in the control sequence. The control and answering rules could be varied in different embodiments. There could also be a “pass-guess” button, not shown, to pass answering privilege to the next player in a sequential answering system.
Presuming that the player completes a response220A4 to the first quiz-able-word and submits a correct guess (FIG. 10), revealed first quiz-able-word220A5 (FIG. 11, for220A5 only), “fly” would be shown and the phrase component returned to navigation mode. After the round has been in progress for a further while, two clues might be found for second quiz-able-word220B and displayed in the second quiz-able-word-clue cell230B.
In the present embodiment, revealed first quiz-able word220A5 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 button216A (FIG. 9,216A only) to change the phrase component to phrase-guessing mode. The player might then begin completing the phrase as depicted inFIG. 11.
A first clue230B1, for second quiz-able-word220B3 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 clue230B2, for220B3 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”.FIG. 11 describes a situation where the player solving the phrase cognitively solves second quiz-able-word220B (FIG. 14), and with that information, proceeds to solve the top-level phrase.
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 button216B submits the phrase attempt for validation. Clear-guess button216C masks all previously unsolved words, in thiscase218A,218C and220B (FIG. 14), leaving the phrase component in phrase-guessing mode. Cancel-guess button216D (FIG. 11) cancels phrase-guessing and returns the phrase component to navigation mode. Point-deduction-warning label216E refers to a phrase guess. There could also be a “pass-guess” button, not shown, to pass answering privilege to the next player in a sequential answering system.
FIG. 11 shows a response218A4 to the first filler-word, a response218C4 to the third filler-word, and second quiz-able-word220B3 in a guessing mode. These words can accept player input and are active. Revealed first quiz-able-word220A5 and revealed second filler-word218B5 will not accept input and are inactive in the example. Active words are indicated by enlarged font, with field borders97 around them.Insertion cursor98 starts at the beginning of response218A4. Once all characters of response218A4 to the first filler-word are entered,insertion cursor98 moves to the beginning of the next active word to facilitate all active fields receiving an input.Insertion cursor98 can be relocated with the forward and back keys of a standard keyboard, not shown.Insertion cursor98 can also be relocated withtext cursor96 that appears when the cursor is placed near one of the active text fields for218A4,218C4, and220B3.
FIG. 12 depicts a continuation of the phrase component in phrase-guessing mode. Completed response218C4 to the third filler-word, and response220B4 to the second quiz-able-word are shown. It is presumed that hand-pointer cursor95 is next placed over submit-guess button216B. Clickingbutton216B submits the attempted phrase solution to the system for validation. If unsuccessful, the phrase component would return to navigation mode and control would pass to the next player in the control sequence. If successful, the phrase component would be displayed in finished mode as depicted inFIG. 13. InFIG. 13, revealed first filler-word218A5, revealed third filler-word218C5, and revealed second quiz-able-word220B5 are shown. These are in addition to previously revealed first filler-word218A5 and previously revealed second filler-word218B5.
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 label216F 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.
Logical Description of a Game Round—FIG. 14FIG. 14 portrays the logical structure of a sample round of the combined guess-the-phrase-and-trivia-quiz embodiment of a QNQ.FIG. 14 uses the symbols introduced withFIG. 1 to describe a QNQ. InFIG. 14, words, text and expressions, called information fragments, are identified with the nodes to which they belong.FIG. 14, includes information about the clues revealed to solve a top-level answer1410.
Quiz question412A1, at node-level four, is the trivia-quiz question introduced inFIG. 4. Its solution is first quiz-able-word's first clue230A1, at node-level3. It is one of two clues to first quiz-able-word220A. First quiz-able-word220A is one word of top-level answer1410.
Quiz question412A2 is another quiz question, not previously specified. Its solution is the first quiz-able-word's second clue230A2 discovered for the first quiz-able-word in the sample round. It is the other of two clues to first quiz-able-word220A.
Quiz questions412A3 and412A4 are quiz questions, not previously specified, whose answers become the second quiz-able-word's first clue230B1 and second clue230B2 respectively. Second quiz-able-word220B 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-words218A,218B and218C round out node-level2. Filler-word218B was revealed by buying a word in the sample round, and so is depicted with the symbol for a revealedclue142. Filler-words218A and218C were only revealed with the solution of top-level answer1410. They are therefore depicted with the symbol for anunrevealed clue146.
FIG. 14 shows the categorization of the trivia-quizzes spanning node-levels three114 and four116. Trivia-quiz categories1420A were used to group quizzes that provide clues for first quiz-able-word220A. Categories include a sports category1420A1, a movies category1420A2, a music category1420A3 and a television category1420A4. Categorization details are indicated on the first quiz-able-word only. Trivia-quiz categories1420B are also used to group the quizzes that provide clues for second quiz-able-word220B.
User Interface Flow Diagram—FIG. 15FIG. 15 depicts the user interface flow without control and answering privilege details. The phrase component in navigation mode1510 (depicted inFIG. 2), is the starting point of the game. From it, a player can access the quiz-and-word-guessing-selector component, find-a-clue option1520 (indicated bymenus314,332A-332D ofFIG. 3). This is used to open the trivia-quiz component1560 (depicted inFIG. 4). Once the quiz is finished,1510 becomes active again.
Fromcomponent1510, a player can access the quiz-and-word-guessing-selector component, guess-word option1530 (indicated by312 ofFIG. 3). This leads to the phrase component in word-guessing mode1570 (depicted inFIG. 10), and back to1510. From1510, a player can access the phrase component in phrase-guessing mode1540 (depicted inFIGS. 11 and 12). This can lead to the phrase component in finished mode1580 (depicted inFIG. 13), and the end of around1590. It can also lead back to1510. From1510, a player can access the buy filler-word menu, and confirmation dialogue1550 (depicted inFIGS. 7 and 8).
System Architecture for Game Delivery—FIG. 16An 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 betweenclients1610 and server-side components1650, connected by theInternet1640.
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 access1630 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 components1650 could include aweb server1652.Web server1652 communicates withclients1610 through anInternet connection1670.Web server1652 maintains a network connection1672 to an application server (or servers)1654.Application server1654 manages multiple games in progress.Application server1654 maintains anetwork connection1674 to a database server (or servers)1656, which manages1676 a quiz database and associatedschema1658.
In a Java-based implementation, aweb client1610 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 by1654. These are delivered by aweb server1652 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 by1654. Session beans could be used onserver1654 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 onserver1654, representing persistent data stored in database entities.
Other technologies could include extensible markup language (XML) and web services. For example, quiz trees, could be represented in XML. Their information could be accessed from a server through web services. Some embodiments could have part or all of an XML quiz tree distributed to the clients. Client side scripting languages, such as JavaScript, could also be used.
Adatabase server1656 could run an Oracle®, MySQL® or other relational database management system to access a quiz database and associatedschema1658. 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 inFIGS. 33-41 andFIG. 52. A persistent computer storage means supports various other aspects of the present embodiment. Embodiments using file-system based persistent computer storage means are also possible. XML and other tagged persistent data files are possible.
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 ofFIG. 1. Alternatively, a QNQ could combine physical media with a computer based embodiment.
Player ModesThe 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.
Scoring SystemA 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:
- a. “n”, “x” and “y” are integers. “p”, “d”, “q” and “f” are real numbers that may have a decimal component.
- b. “p” points are awarded to one player for solving the phrase.
- c. “q” total points are allotted for each quiz-able-word that exists in the phrase. These points are distributed between one or more players for clues solved on each given quiz-able-word, and for revealing the quiz-able-word.
- d. “q” points are always distributed for each quiz-able-word. When quiz-able-words are by-passed in the solution of the top-level phrase, outstanding quiz-able-word points on any unrevealed quiz-able-word(s) are distributed to the player who solves the top-level phrase.
- e. When there are “n” quiz-able-words in the phrase, and “f” is a factor that that expresses the relative importance of solving the phrase compared to the rest of the quizzes. Then, “q=f×p/n”. The symbol “x” is the times symbol.
- f. “x” is the number of clues revealed plus one (for revealing the quiz-able-word). “q/x” points are awarded for each clue found on a quiz-able-word up to the first “y” clues per word. “q/x” points are also awarded for revealing the quiz-able-word.
- g. When a player solves a quiz-able-word with fewer than “y” clues revealed, the successful player is attributed the outstanding points for the remaining clues as if “y” clues had been revealed.
- h. When a player by-passes the solution of any unrevealed quiz-able-word(s) to solve the top-level expression, that player is attributed the outstanding points on any quiz-able-word(s) as if “y” clues had been revealed and the quiz-able-word had been solved directly.
- i. “d” points are deducted from a player for each incorrect guess or for voluntarily unmasking a filler-word.
Following the example round described, suppose a three player round with players “Betty”, “Ann” and “Sally”. Suppose Ann solves first clue230A1 of the first quiz-able-word, Sally solves its second clue230A2, and then solves first quiz-able-word220A. Then suppose Betty solves first and second clues230A3 and230A4 of the second quiz-able-word, and solves the phrase, by-passing the solution of the second quiz-able-word220B. 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.
Selection of QuizzesIn 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 System and Answering SystemControl 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 component470 shown inFIG. 4, presents this time to the players. When a player does not act within the respective time limit, control or answering privilege is passed to the next player in the control sequence.
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.
Quiz-Able-Word-to-Clue-Matching CriteriaLinked 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 CriteriaQuiz-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 byFIG. 5. It would also apply to a text-based quiz-able-word and phrase guessing design as indicated byFIGS. 10 and 12 respectively. Quiz-to-answer-matching criteria apply where user input is typed and where some leeway is to be provided. Quiz-to-answer matching criteria do not apply where guesses are of multiple choice or list selection types.
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.
Runtime Program StructureThe present embodiment includes a runtime computer program means. The runtime computer program means is described above and in the class diagram shown inFIG. 17 and in the sequence diagrams shown inFIGS. 18-32,46-51, and53-55.
Class Diagram—FIG. 17The ModelA class diagram of the present embodiment is shown inFIG. 17.Classes1709 thru1720 represent the model. A node (“Node”)class1711 generalizes the different types of nodes. Anaggregation1751 represents a child node referencing zero-to-one parent nodes. In the present embodiment, all nodes except the top-level expression are in a relationship in which they are a child node having exactly one parent node. Anaggregation1752 represents a parent node referencing zero-to-many child nodes. Terminal nodes at the end of a tree branch reference zero child nodes. Other nodes reference one or more child nodes. Instantiated nodes are identified by a unique identifier, such as an object ID.
Four subtypes of node are: a guess-the-phrase-phrase (“GuessThePhrPhr”)class1714; a guess-the-phrase-word (“GuessThePhrWd”)class1717; a trivia-quiz-answer (“TriviaQuizAnswer”)class1716; and a trivia-quiz-question (“TrivQuizQues”)class1713. In the combined-guess-the-phrase and trivia-quiz embodiment, these classes represent nodes at levels one, two, three and four respectively.Classes1714,1717,1716, and1713 are shown bylines1772,1761,1760, and1759, respectively, as well as1792, as being generalized by1711.
Anaggregation1763 indicates that a guess-the-phrase-phrase class1714 instance is a parent of one-to-many guess-the-phrase-word class1717 instances. Anaggregation1764 indicates that a guess-the-phrase-word class1717 instance is the child of exactly one guess-the-phrase-phrase class1714 instance. Guess-the-phrase-word class1717 instances can be quiz-able-words or filler-words.
Anaggregation1770 indicates that a guess-the-phrase-word class1717 instance is a parent of zero-to-many trivia-quiz-answer class1716 instances. Anaggregation1762 indicates that a trivia-quiz-answer class1716 instance is a child of exactly one guess-the-phrase-word class1717 instance.
Anaggregation1758 indicates that a trivia-quiz-answer class1716 instance is a parent to exactly one trivia-quiz-question class1713 instance.Aggregation1757 indicates that a trivia-quiz-question class1713 instance is a child of exactly one trivia-quiz-answer class1716 instance.
A trivia-quiz-category class (“TrivQuizCat”)class1710 instance holds all of the categories that trivia-quizzes can be placed in. Anaggregation1750 indicates the trivia-quiz-question class1713 referencing the trivia-quiz-category class1710 with multiplicities of one and zero-to-many.
Anaggregation1753 indicates a tree (“Tree”)class1712 referencingnode class1711 with multiplicities of many and one.Aggregation1753 is shown linking thetree class1712 withnode class1711; the actual links are betweentree class1712 and derivednode classes1713,1714,1716 and1717. 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 class1712 represents quiz-trees as units and has quiz-tree level attributes and methods.
Anaggregation1754 indicates a round (“Round”)class1715 referencingtree class1712 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. Anaggregation1773 indicates a match (“Match”)class1718 referencing roundclass1715 with multiplicities of one-to-many and one. Anaggregation1766 indicatesmatch class1718 referencing a player (“Player”)class1720 with multiplicities of one-to-many and one. Anaggregation1778 indicatesround class1715 referencing player (“Player”)class1720 with multiplicities of one-to-many and one
A game (“Game”)class1719 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.
Aggregations1756,1769, and1771 indicategame class1719 referencing trivia-quiz-question class1713, trivia-quiz-answer class1716, and guess-the-phrase-word class1717, 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. Anaggregation1765 indicatesgame class1719 referencing guess-the-phrase-phrase class1714 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 inaggregations1756,1769,1771, and1765 reflects that the same node is not shared by more than one game, since nodes contain state information.
Aggregation1774 indicatesgame class1719 referencingplayer class1720 with multiplicities of one-to-many and one. Embodiments with players accessing more than one game are also possible.Association1767 indicates an association betweengame class1719 andmatch class1718 with multiplicities of one and one.Association1768 indicates an association betweengame class1719 andround class1715 with multiplicities of one-to-many and one.Association1755 indicatesgame class1719 accessingtree class1712.
A clock (“Clock”)class1709 maintains time for purposes of managing answering privilege and control.Aggregation1775 indicatesgame class1719 referencingclock class1709 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 ViewThe view is represented by classes numbered between1721 and1732. 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”)class1726, depicted inFIG. 3, a buy-filler-word-menu-GUI (“BuyFillerWdMenuGUI”)class1727, depicted inFIG. 7, and a trivia-quiz-GUI (“TriviaQuizGUI”)class1725, depicted inFIGS. 4 and 5.Associations1786,1787, and1782, indicate an association betweengame class1719, andview classes1726,1727, and1725, respectively. Each of these associations is represented by a line extending fromgame class1719 to the respective view class. In each ofassociations1786,1787, and1782, the multiplicities are zero-to-one and one.
Shown are a navigation-mode-GUI (“NavModeGUI”)class1729, first depicted graphically at runtime inFIG. 2, a word-guessing-mode-GUI (“WdGuessingModeGUI”)class1728, depicted inFIG. 10, a phrase-guessing-mode-GUI (“PhrGuessingModeGUI”)class1730, depicted inFIGS. 11 and 12, and a finished-mode-GUI (“FinishedModeGUI”)class1731, depicted inFIG. 13.Classes1728 through1731 are generalized by a phrase-component-GUI (“PhraseComponentGUI”)class1732.Classes1731,1729,1730, and1728 are shown bylines1788,1789,1790, and1791, respectively, as well as1793, as being generalized by1732.
Associations1783,1785, and1784, indicate an association betweengame class1719, andview classes1729,1728, and1730, respectively. Each of these associations is represented by a line extending fromgame class1719 to the respective view class. In each ofassociations1783,1785, and1784, the multiplicities are zero-to-one and one. Furthermore, only-one type of phrase-component-GUI class1732 will be displayed at a time.
Controller (“Controller”)class1740 represents one or more controllers accessed byview classes1725 through1730. The controller class passes messages from the applicable view classes togame class1719.Association1779 represents all of the associations betweencontroller class1740 andclasses1725 through1730. In each case there is a multiplicity of one oncontroller class1740 and zero-to-one onview classes1725 through1730.Association1780 showscontroller class1740 accessinggame class1719.
Shown is a turn-GUI (“TurnGUI”)class1721, graphically depicted as answering-turn-display component470 inFIGS. 4 and 5. Also shown is a control-and-score-GUI (“Cntl&ScoreGUI”)class1724, graphically depicted inFIG. 95 as a score-and-control component9530.
Classes1721,1724 and1731 are not subject to player action and do not accesscontroller class1740.Associations1776,1777, and1781 indicate an association betweengame class1719, andview classes1721,1724, and1731 respectively. The multiplicities forassociations1776 and1781 are zero-to-one and one. The multiplicities forassociation1777 are one and one.
At the beginning of a game, an instance ofgame class1719 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 class1714. It also obtains the top-level expression for the round by initializing guess-the-phrase-word class1717 objects for each word in the phrase. The game instance takes the key information from these nodes and passes it to navigation-mode-GUI class1729 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 class1724. 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 acontroller class1740 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.
Sequence Diagram—Get-Quiz-and-Word-Guessing-Selector GUI—FIG. 18FIG. 18 shows the sequence diagram for displaying the quiz-and-word-guessing-selector component depicted inFIG. 3. A navigation-mode-GUI (“NavModeGUI”)object1810 is an instance of navigation-mode-GUI class1729. It is depicted as the phrase component in navigation mode, shown inFIG. 2. Navigation-mode-GUI object1810 sends amessage1850 to get the quiz-and-word-guessing-selector component (“getQ_W_GuessSelGUI( . . . )”) to acontroller object1814.Controller object1814 is an instance ofcontroller class1740.Message1850 requests the display of the quiz-and-word-guessing-selector GUI.Message1850 is invoked by a mouse over event over a hyperlinked quiz-able-word. The message passes a guess-the-phrase-word node ID (“GTPWdNdID”)1850A, which is a unique id for the quiz-able-word on which the event occurred. Areference1850B to the current player (“player”) is also passed.
Next,controller object1814 calls a get-trivia-quiz-by-category-total (“getTrivQuizByCatTot( . . . )”)method1852 ofgame object1816.Game object1816 is an instance ofgame class1719.Game object1816 calls its validate-control (“validateControl( . . . )”)method1854 to validate thatplayer1850B has control.Game object1816 then calls a get-node-state (“getNodeState( )”)method1856 of a guess-the-phrase-word object1818 for the guess-the-phrase-word node ID.Object1818 is an instance ofclass1717.
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 acondition1858 that the node-state is available (“[nodeState=“avail”]”),game object1816 calls its set-active-node (“setActiveNode( . . . )”)method1859 to set guess-the-phrase-word node ID1850A 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 check1858 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 object1816 next calls a get-trivia-quiz-by-category-total (“getTrivQuizByCatTot( )”)method1860 of1818.Object1818 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( . . . )”)method1864 to instantiate quiz-and-word-guessing-selector-GUI object1812, with1850A andarray1862 containing the total number of trivia-quizzes by category.Object1812 is an instance ofclass1726. Quiz-and-word-guessing-selector-GUI object1812 is graphically depicted inFIG. 3. The steps inFIG. 18 are generally part of the selector means. They include obtaining trivia-quiz summary information from the node identification value of the quiz-able word. This is displayed in the quiz-and-word-guessing selector prior to selection of a quiz.
Sequence Diagram—Select-a-Trivia-Quiz—FIG. 19FIG. 19 shows a sequence diagram for displaying a trivia-quiz GUI. Quiz-and-word-guessing-selector-GUI object1812 for the player with control sends a get-trivia-quiz-GUI (“getTriviaQuizGUI( . . . )”)message1950 tocontroller object1814.Message1950 includes guess-the-phrase-word node ID1850A, areference1850B to the player, and a category (“cat”)1950A which the next trivia-quiz is to be selected from.
Next,controller object1814 sends a get-trivia-quiz-by-category (“getTrivQuizByCat( . . . )”)message1952 togame object1816, to get the next trivia-quiz by category, passing1850A,1850B, and1950A. Game object calls its validate-control method1854 to validate thatplayer1850B has control. It then calls a next-trivia-quiz-by-category-index (“nextTrivQuizbyCatIndx( . . . )”)method1954 of guess-the-phrase-word object1818 for the guess-the-phrase-word node ID, passingcategory1950A.Method1954 increments a trivia-quiz-category index by one.
Game object1816 next calls a lookup-next-trivia-quiz-answer-node (“lookupNextTQANd( . . . )”)method1956 of guess-the-phrase-word object1818 for the guess-the-phrase-word node, to get a reference to the next trivia-quiz answer node in an array for suppliedcategory1950A.
Game object1816 next calls a lookup-trivia-quiz-question-node (“lookupTQQNd( )”)method1958 of a trivia-quiz-answer object1910 for the trivia-quiz-answer node.Object1910 is an instance ofclass1716.Object1910 returns areference1959 to the trivia-quiz-question node (“TQQNd”).
Game object1816 next calls a get-node-state (“getNodeStateo”)method1960 of a trivia-quiz-question object1912 for the trivia-quiz-question node (“TQQNd:TrivQuizQues”).Object1912 is an instance ofclass1713. Oncondition1858 that the node state is available,game object1816 calls its set-active-node (“setActiveNode( . . . ”)method1962 to set trivia-quiz-question node ID (“TQQNdID”)1962A as the active node.Game object1816 next calls a get-question-information (“getQuestionInfo( )”)method1964 of1912.
Methods1950 to1964 ofFIG. 19 can generally be classified as describing part of the selector means for selecting the trivia quiz.
Game object1816 next updates the view. It sends a close-quiz-and-word-guessing-selector-GUI (“closeQ_W_GuessSelGUI( )”)message1966 to close quiz-and-word-guessing-selector-GUI object1812.Game object1816 next sends a display-trivia-quiz-GUI (displayTriviaQuizGUI( . . . )”)message1968, instantiating a trivia-quiz-GUI object1914.Object1914 is an instance ofclass1725.Message1968 passes trivia-quiz-question node ID1962A, and trivia-quiz question1968A which is the text for the question. An example of this text as represented in the interface is412A1 ofFIG. 4.Message1968 also passes a trivia-quiz-by-category-index (“trivQuizByCatIndx”)parameter1968B.Parameter1968B is the index of the question for the givencategory1950A.Parameter1968B enables the interface to represent410A2 ofFIG. 4.Message1968 also passes a trivia-quiz-by-category-total (“trivQuizByCatTot”)parameter1968C. This is the total number of trivia-quizzes or trivia-quiz questions within the selectedcategory1950A for the given guess-the-phrase-word.Parameter1968C is represented as410A3 inFIG. 4.Message1968 also passescategory1950A. This is represented as410A1 inFIG. 4.Game object1816 also displays answering-turn-display component470 ofFIG. 4. In the present embodiment,method1968 ofFIG. 19 provides detail on the first exposure means.
A display-turn-GUI (“displayTurnGUI( )”)message1970 instantiates a turn-GUI object1916.Message1970 passes; an array of players, in order of control (“controlSeq”)1970A, anindex1970B of1970A for the player with answering privilege (“ansPrivIndex”), and a reference to a “clock”object1970C, to keep the time remaining for an answer.
Sequence Diagram—Attempt Trivia-Quiz—FIG. 20FIG. 20 shows the sequence diagram for attempting a trivia-quiz to the point of the game object checking the attempt. Trivia-quiz-GUI object1914 for the player with control sends a submit-guess (“submitGuess( . . . )”)message2050 tocontroller object1814, passing; trivia-quiz-question node ID1962A,reference1850B to the player, and an attempt (“attempt”)2050A representing the text guess submitted by the player.Method2050 deals with a first guessing means. The rest ofFIG. 20 generally deals with a first validation means.
Controller object1814 sends a validate-attempt (“validateAttempt( . . . )”)message2052 togame object1816, passing1962A,1850B, and2050A. Next,game object1816 calls its validate-answering-privilege (“validateAnsPriv( . . . )”)method2054 to validate that the player has answering privilege. It then calls a lookup-trivia-quiz-answer-node (“lookupTQANd( )”)method2056 of trivia-quiz-question object1912 for the trivia-quiz-question node, getting areference2057 to the trivia-quiz answer node (“TQANd”).
Game object1816 next calls a get-node-state (“getNodeState( )”)method2058 of trivia-quiz-answer object1910 for the trivia-quiz-answer node. Oncondition1858 that the node state is available,game object1816 calls a set-active-node (“setActiveNode( . . . )”)method2059 for a trivia-quiz-answer node, to set a trivia-quiz-answer node ID (“TQANdID”)2059A as the active node.
Game object1816 next calls a get-valid-answers (“getValidAnswers( )”) method2060 ofobject1910, which returns an array of valid answers (“validAnswers[ ]”)2061. Each valid answer inarray2061 is considered a successful match for the corresponding question.Object1816 next calls its check-attempt (“checkAttempt( . . . )”)method2062 to checkattempt2050A against array ofvalid answers2061. The result is ‘success’ or ‘failure’, which determines the subsequent sequence.
Sequence Diagram—Trivia-QuizCorrect Attempt Part1—FIG. 21FIG. 21 shows part one of the sequence when a trivia-quiz guess gives a successful result.Game object1816 sends a set-node-state (“setNodeState( . . . )”)message2150 to trivia-quiz-question object1912 for the trivia-quiz-question node.Message2150 passes an “answered”value2150A which sets the node-state to “answered”.Game object1816 also sends a set-node-state (“setNodeState( . . . )”)message2152 to trivia-quiz-answer object1910 for the trivia-quiz-answer node, passing2150A. This sets the node state of1910 to “answered”.
Game object1816 calls a get-answer (“getAnswer( )”)method2154 of1910. This method gets the exact answer for the trivia-quiz question that will be displayed in the user interface.Game object1816 next calls a lookup-guess-the-phrase-word-node (“lookupGTPWNd( )”)method2156 of trivia-quiz-answer object1910 for the trivia-quiz-answer node to get a reference to the guess-the-phrase-word node.Game object1816 then calls a lookup-guess-the-phrase-phrase-node (“lookupGTPPNd( )”)method2158 to get areference2160 to the (top-level) guess-the-phrase-phrase node.Game object1816 next calls its set-active-node (“setActiveNode( . . . )”)method2162 to set the active node to guess-the-phrase-phrase node ID (“GTPPNdID”)2162A.
Game object1816 next initiates an update-score (“updateScore( . . . )”)sequence2164, 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 around object2110, which is a current instance ofround class1715. The score is also updated in amatch object2112, which is a current instance ofmatch class1718. Update-score sequence2140 is covered withFIG. 22.
On acondition2165 that the player who answered the question is not the player who currently has control,game object1816 calls its set-control-index (“setControlIndex( . . . )”)method2166 to set control tocurrent player1850B.Game object1816 calls its reset-answering-privilege-index (resetAnsPrivIndex( )”)method2168 to reset the answering-privilege index to the index number of the player with control.
Sequence Diagram—Update Score—FIG. 22FIG. 22 shows the update-score sequence diagram.Game object1816 calls an update-score (“updateScore( . . . )”)method2250 ofround object2110, passing a reference to theplayer1850B whose score is to be changed, and the points (“points”)2164A by which the player's score is to be changed. It then calls a get-scores (“getScores( )”)method2252 ofround object2110 to get an array of player scores for the current round.
Game object1816 also calls an update-score (“updateScore( . . . )”)method2254 ofmatch object2112, passing1850B and2164A. It then calls a get-scores (“getScores( )”)method2256 ofmatch object2112 to get an array of player scores for the match.
Sequence Diagram—Trivia-QuizCorrect Attempt Part2—FIG. 23FIG. 23 shows part two of the sequence when the attempt for a trivia-quiz is correct, continuing fromFIG. 21.Game object1816 sends a close-trivia-quiz-GUI (“closeTriviaQuizGUI( )”)message2350 to close trivia-quiz-GUI object1914.Game object1816 also sends an update-navigation-mode-GUI (“updateNavModeGUI( . . . )”)message2352 to navigation-mode-GUI object1810.Message2352 passes trivia-quiz-answer-node ID2059A and a trivia-quiz answer (“triviaAnswer”)2352A to be displayed by navigation-mode-GUI object1810. InFIG. 23,message2352 generally deals with a second exposure means.
Game object1816 also calls an update-control-and-score-GUI (“updateCntrl&ScoreGUI( . . . )”)message2354 to control-and-score-GUI (“Cntrl&ScoreGUI”)object2310.Object2310 is an instance ofclass1724. Score-and-control component9530 is depicted inFIG. 95.Message2354 passes an array of player scores for the round (“round.player.score[ ]”)2354A, and match (“match.player.score[ ]”)2354B, an array of players, in order of control (“controlSeq”)1970A, and anindex2354C of1970A for the player with control (“cntrlIndex”).
Sequence Diagram—Trivia-Quiz Incorrect Attempt—FIG. 24FIG. 24 shows the sequence diagram when a trivia-quiz guess is incorrect.Game object1816 initiates update-score sequence2164, passingplayer reference1850B and points2164A. The score is updated inround object2110 andmatch object2112 as detailed in update-score sequence2140 (FIG. 22).Game object1816 then calls its next-answering-privilege (“nextAnsPriv( )”)method2450 to pass answering privilege to the next player in sequence.
Analternative combination fragment2452 contains two mutually exclusive message sequences.Condition2454 describes a case where one or more players have yet to respond to the current trivia-quiz.Condition2454 checks that controlindex2354C value is not equal to answering-privilege index1970B value. Oncondition2454, an update-trivia-quiz-GUI (“updateTrivQuizGUI( . . . )”)message2456 is sent to trivia-quiz-GUI object1914, passing trivia-quiz-question node ID1962A.
Alternatively, on acondition2458 that controlindex2354C value is equal to answering-privilege index1970B value, a close-trivia-quiz-GUI (“closeTriviaQuizGUI( )”)message2460 is sent to trivia-quiz-GUI-object1914.Game object1816 then calls its reset-answering-privilege-index (“resetAnsPrivIndex( )”)method2168 to reset the answering-privilege index.Method2168 sets the answering-privilege index to the control index.Game object1816 next calls a lookup-trivia-quiz-answer-node method2056 of trivia-quiz-question object1912 for the trivia-quiz-question node. It gets a reference (not shown) to the trivia-quiz-answer-node.Game object1816 then calls lookup-guess-the-phrase-word-node method2156 to get a reference to the guess-the-phrase-word node (not shown).Game object1816 next calls lookup-guess-the-phrase-phrase-node method2158 to get a reference (not shown) to the guess-the-phrase-phrase node.Game object1816 next calls its set-active-node method2162 to set the active node to guess-the-phrase-phrase node ID2162A.Game object1816 then sends an update-navigation-mode-GUI message2352 to navigation-mode-GUI object1810, passing guess-the-phrase-phrase node ID2162A.
With either alternative,game object1816 sends an update-control-and-score-GUI message2354 to control-and-score-GUI object2310.Message2354 includes round andmatch scores2354A and2354B, as well ascontrol sequence array1970A andcontrol index2354C.
Sequence Diagram—Trivia-Quiz Pass—FIG. 25FIG. 25 shows the sequence diagram when a player passes on making an attempt at solving a trivia-quiz. A pass (“pass( . . . )”)message2550 is sent from trivia-quiz-GUI object1914 tocontroller object1814.Message2550 includes trivia-quiz-question node ID1962A and areference1850B to the player.Controller object1814 sends apass message2552 to game object withparameters1962A and1850B.
Game object1816 calls its validate-answering-privilege method2054 to validate thatplayer1850B has answering privilege. If for anyreason player1850B does not have answering privilege, error handling (not shown) occurs.Game object1816 next calls next-answering-privilege method2450 to pass answering privilege to the next player in sequence.Alternative combination fragment2452, describing the remainder of the sequence, is the same as inFIG. 24.
Sequence Diagram—Attempt Word—FIG. 26FIG. 26 shows the sequence diagram when a player attempts to solve a quiz-able-word. When a player with control opts to solve a word, navigation-mode-GUI object1810 is replaced by a word-guessing mode-GUI object2610 based on an exchange of messages from the view to the controller and game and back to the view (not shown).Object2610 is an instance ofclass1728 fromFIG. 17.
Next, a submit-word-guess (“submitWordGuess( . . . )”)message2650 is sent from word-guessing-mode-GUI (“WdGuessingModeGUI”)object2610 tocontroller object1814. Passed inmessage2650 are guess-the-phrase-word node ID1850A, areference1850B to the player, and a word attempt (“wordAttempt”)2650A.Message2650 deals with a second guessing means. The rest ofFIG. 26 generally deals with a second validation means.
Next,controller object1814 send a validate-word-attempt (“validateWordAttempt( . . . )”)message2652 togame object1816, passing1850A,1850B and2650A.Game object1816 next calls its validate-answering-privilege method2054, validating ifplayer1850B has answering privilege. It next calls get-node-state method1856 of guess-the-phrase-word instance1818 for the guess-the-phrase-word node. Oncondition1858 that the node state is available,game object1816 calls its set-active-node method1859 to set the active node to the guess-the-phrase-word node ID1850A.Game object1816 then calls a get-valid-answers (“getValidAnswers( )”)method2654 of guess-the-phrase-word instance1818 for the guess-the-phrase-word node.Method2654 returns an array of valid word answers (“validWdAnswers[ ]”)2655.Game object1816 next calls its check-word-attempt (“checkWordAttempt( . . . )”)method2656 to checkword attempt2650A against array ofvalid answers2655.
Sequence Diagram—Word Correct Attempt—FIG. 27FIG. 27 shows the sequence diagram when an attempt at a quiz-able-word is correct.Game object1816 calls a set-node-state (“setNodeState( . . . )”)method2750 of guess-the-phrase-word instance1818 for the guess-the-phrase-word node.Message2750 passes an “answered”value2150A which sets the node-state to “answered”.
Game object1816 next calls a get-answer (“getAnswer( )”)method2752 ofobject1818.Method2752 gets the exact answer for the word that will be displayed in the user interface.Game object1816 then calls lookup-guess-the-phrase-phrase node method2158 to get areference2160 to the guess-the-phrase-phrase node.Object1816 next calls its set-active-node method2162 to set the active node to guess-the-phrase-phrase node ID2162A.
Game object1816 next initiates update-score sequence2164, passingplayer reference1850B and points2164A. The score is updated inround object2110, and inmatch object2112 as detailed in update-score sequence2140 (FIG. 22).
Oncondition2165 that the player who answered the question is not equal to the player who currently has control,game object1816 calls its set-control-index method2166 to set control to thecurrent player1850B.Game object1816 next calls its reset-answering-privilege-index method2168 to reset the answering-privilege index to the index number of the player with control.
Game object1816 next sends an update-navigation-mode-GUI message2352 to navigation-mode-GUI object1810.Message2352 passes2162A and a word answer (“wordAnswer”)2753 to be displayed in the phrase component. InFIG. 27,message2352 deals with a third exposure means.Game object1816 also sends update control-and-score-GUI message2354 to control-and-score-GUI object2310, passing2354A,2354B,1970A, and2354C.
Sequence Diagram—Word Incorrect Attempt—FIG. 28FIG. 28 shows the sequence when a guess at a quiz-able-word is incorrect.Game object1816 sends update-score messages2164, passing1850B and2164A. The score is updated inround object2110 andmatch object2112 as detailed in update-score sequence2140.
Game object1816 calls its next-control (“nextControl( )”)method2850 to pass control to the next player in the control sequence.Object1816 then calls its reset-answering-privilege-index method2168.
Game object1816 next calls lookup-guess-the-phrase-phrase-node method2158 ofobject1818 to get a reference to the guess-the-phrase-phrase node. It next calls its set-active-node method2162, setting the active node to guess-the-phrase-phrase node ID2162A.Game object1816 then sends update-navigation-mode-GUI message2352 to navigation-mode-GUI object1810, passing guess-the-phrase-phrase node ID2162A.Object1816 then sends update-control-and-score-GUI message2354 to control-and-score-GUI object2310, passing2354A,2354B,1970A, and2354C.
Sequence Diagram—Buy Word—FIG. 29FIG. 29 shows the sequence for buying a filler-word. A buy-filler-word-menu-GUI (“BuyFillerWdMenuGUI”)object2910 sends a buy-filler-word (“buyFillerWord( . . . )”)message2950 tocontroller object1814, passing guess-the-phrase-word node ID1850A andplayer reference1850B.Controller object1814 sends a buy-filler-word message2952 togame object1816, passing1850A and1850B. A buy-filler-word-check (“buyFillerCheck( )”)method2954, checks that a filler-word was not bought since control was reset. If the check shows that a filler-word was bought since control was reset, error handling occurs (not shown). This should not occur, since the view is updated to prevent players from taking invalid actions. An index formethod2954 is maintained when control is reset (not shown).
Game object1816 calls validate-control method1854.Object1816 next calls get-node-state method1856 of the guess-the-phrase-word object. Oncondition1858 that the node state is available,game object1816 calls set-active-node method1859 to set the active node to guess-the-phrase-word node ID1850A.Game object1816 then calls get-answer method2752 of guess-the-phrase-word instance1818 for the guess-the-phrase-word node, to get the filler-word answer.Object1816 then calls set-node-state method2750 of1818 to set the node state to “revealed”2955.
Game object1816 next sends update-score messages2164, passing1850B and2164A. Score is updated inround object2110, andmatch object2112 as detailed in update-score sequence diagram2140.
Game object1816 sends anupdate message2352 to navigation-mode-GUI object1810, passingphrase node ID2162A,word node ID1850A, andword answer2753.Game object1816 also sends anupdate message2354 to control-and-score-GUI object2310, passing round andmatch scores2354A and2354B,control sequence array1970A andcontrol index2354C.
Sequence Diagram—Attempt Phrase—FIG. 30FIG. 30 shows the sequence for an attempt to solve the top-level phrase. When a player with control opts to solve the phrase, navigation-mode-GUI object1810 is replaced by phrase-guessing mode-GUI object3010 based on an exchange of messages from the view to the controller and game and back to the view (not shown). Phrase-guessing-mode-GUI object3010 sends a submit-phrase-guess message3050 tocontroller object1814, passing2162A,1850B, and a phrase-attempt array containing the phrase attempt (“attempt[ ]”)3050A. Phrase-attempt array3050A is indexed for each word in the phrase and contains a null value for previously revealed words.
Controller object1814 sends a submit-phrase-guess message3052 togame object1816, passing2162A,1850B, and3050A.Game object1816 calls its validate-answering-privilege method2054 to validate thatplayer1850B has answering privilege.Game object1816 then calls get-node-state method3054 of a guess-the-phrase-phrase object3012 for the guess-the-phrase-phrase node. Oncondition1858 that the node state is available,game object1816 calls its set-active-node method2162 to set the guess-the-phrase-phrase node2162A as active.
A loop-combinedfragment3058 shows the sequence for validating the phrase attempt word by word.Loop3058 continues whilecondition3059 is met.Condition3059 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 object1816 calls a lookup-nth-guess-the-phrase-word node (“lookupGTPWdNd(n)”)method3056 of guess-the-phrase-phrase object3012.
Game object1816 next calls a get-nth-word-node-state (“getNodeState(n)”)method3062 of n-th guess-the-phrase-word object3060A. On acondition3063 that the n-th word node-state is unsolved,game object1816 calls a get-valid-answers (“getValidAnswers( )”)method3064 of the n-th guess-the-phrase-word object3060A.Game object1816 calls a check-word-attempt (“checkWdAttempt( )”)method3066 to validate n-th word attempt3050B against an array ofvalid answers3065. If the loop executes without breaking, the phrase attempt is valid; otherwise it is invalid.
Sequence Diagram —Attempt Phrase Incorrect Attempt—FIG. 31FIG. 31 shows the sequence for an incorrect attempt to solve the top-level phrase.Game object1816 sends update-score messages2164, passing1850B and2164A. The score is updated inround object2110, andmatch object2112 as detailed in update-score sequence2140 shown inFIG. 22.
Game object1816 calls its next-control method2850 to pass control to the next player in the control sequence.Game object1816 then calls reset-answering-privilege-index method2168.Game object1816 next sends an update-navigation-mode-GUI message2352 to navigation-mode-GUI object1810, passing guess-the-phrase-phrase node ID2162A.Game object1816 also sendsmessage2354 to control-and-score-GUI object2310, passing2354A,2354B,1970A, and2354C.
Sequence Diagram —Attempt Phrase Correct Attempt—FIG. 32FIG. 32 shows the sequence for a correct attempt to solve the phrase.Game object1816 calls set-node-state method3250 of guess-the-phrase-phrase object3012 for the guess-the-phrase-phrase node to set its state as “answered”3250A.Game object1816 next calls get-phrase-answer (“getPhraseAnswer( )”)method3252 of guess-the-phrase-phrase object3012.Object3012 returns phrase answer (“PhraseAnswer[ ]”)3253, a sequential array of words comprising the phrase.
Game object1816 sends update-score messages2164. Score is updated inround object2110, andmatch object2112 as detailed in update-score sequence2140 shown inFIG. 22.
Game object1816 sends a draw-finished-mode-GUI (“drawFinishedModeGUI( . . . )”)message3254 to a finished-mode-GUI-object3210, which replaces navigation-mode-GUI object1810.Message3254 passes2162A andphrase answer3253.Game object1816 also sendsmessage2354 to control-and-score-GUI object2310, passing2354A,2354B,1970A, and2354C.
Quiz DatabaseThe 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.
Quiz-Generation Schema—FIGS. 33-40A discussion of the schema used for quiz-generation is included in the discussion ofFIGS. 33 to 40. Some of the entities discussed inFIGS. 33-40 also supply quiz data at game runtime. Custom computer code facilitates the generation of complete quiz-trees from data in the quiz-generation schema. Nodes are recursively associated in a node entity, providing a basis for linking clues and answers to form quizzes, and for linking quizzes to one another.
Entity Relationship Diagram—FIG. 33A quiz database can contain raw information on which quiz-trees are to be built.FIG. 33 shows expression (“Expression”)entity3310 which represents expressions, or phrases that can be used to make quizzes. In the context of the schema, expressions have their words stored separately.
Each expression inexpression entity3310 is identified by a primary key “ExpressionID”3310A. Aprimary key column3352 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 forexpression entity3310 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.
FIG. 33 shows the relationship betweenexpression entity3310 and a canned quiz (“CannedQuiz”)entity3311.Canned quiz entity3311 contains data for “canned” quizzes. A canned quiz question (clue), represented as a question-text (“QuestionTxt”)attribute3311B, is a string that is not stored as its component words. It is generally an expression (having more than one word), although not a schema expression as defined. A corresponding answer to a canned quiz question is represented by primary key3310A ofexpression entity3310. This is a foreign key “ExpressionID_Answ”3311A in3311. A symbol “PF”3354 is used to denote a foreign-key-primary-key column3356. An example of a canned-quiz question is412A1 ofFIGS. 4 and 5. An example of an answer to a canned quiz is the answer to412A1, shown as416A of FIGS.5 and230A1 ofFIG. 6. The purpose of storing a quiz answer by its words, usingexpression entity3310 is to assist in relating those words, represented as nodes, to other nodes in a quiz-tree. There is a cardinality of zero-or-one3358 between cannedquiz entity3311 andexpression entity3310, indicating there are other types of expressions besides canned-quiz answers.Canned quiz entity3311 also has attributes “TotalCorrectAttempts”3311C and “TotalWrongAttempts”3311D to record history information.Attributes3311C and3311D can be used to customize quizzes by difficulty as calibrated by player responses. They are exemplary of the type of supporting data that can be stored.
A subject category (“SubjectCategory”)entity3314 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 column3312A from primary key3311A ofentity3311, and foreign-key-primary-key column3312B from primary key3314A ofentity3314. Subject category information is stored at the expression-level to assist in building quiz-trees comprising categorized quizzes.
Entity Relationship Diagram—FIG. 34Expression entity3310 has a one-to-many relationship with an expression-word (“ExpressionWord”)entity3410.Entity3410 represents the words that are contained in expressions.Entity3410 has a composite primary key consisting of a foreign-key-primary-key column3410A from primary key3310A ofentity3310 and a word-number-in-expression (“WordNumInExp”)attribute3410B.Attribute3410B records the word position in its expression.Entity3410 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 indictionary word entity3416.Entity3410 contains attribute “IsQuizzableWordYN?”3410D.Attribute3410D 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 entity3410 contains attribute “IsCapitalizedYN?”3410E.Attribute3410E indicates whether or not an expression-word appears with capitalization in its phrase, such as a first or last name.
A dictionary-word (“DictionaryWord”)entity3416 contains words that are sourced from a dictionary.Entity3416 contains a primary key “DictionaryWordID”3416A and a word-text “WordTxt”attribute3416B, for dictionary-word text. Composite entity “ExpressionWordDictWord”3412 has a composite primary key3412P referencing primarykey columns3410A,3410B, and3416A. These are foreign-key-primary-keys3412A,3412B, and3412C respectively inentity3412.
Non-dictionary word (“NonDictionaryWord”)entity3418 contains words that are provided from outside a dictionary. Practically, it represents a second repository of words.Entity3418 has a primary key “NonDictionaryWordID”3418A and word-text (“WordTxt”)attribute3418B, that has the text of a non-dictionary word. Composite entity “ExpressionWordNonDictWord”3414 has a composite primary key3414P consisting of primarykey columns3410A,3410B, and3418A.
Entity Relationship Diagram—FIG. 35FIG. 35 shows entities for relating dictionary words to one another. An entity dictionary-word—dictionary-word—contains (“DictWd_Dict:Contains”)3510 is used to relate a word in the dictionary with another word in the dictionary based on the fact that a given word contains another word.Entity3510 has a foreign-key-primary-key3510P consisting of a foreignkey column3510A from primary key3416A ofdictionary word entity3416, and a second foreignkey column3510B from primary key3416A ofentity3416. An example record would contain a “DictionaryWordID” representing the word “appointment” and a “DictionaryWordID1” representing word “ointment”.
Another entity, dictionary-word—dictionary-word—contained by “DictWd_DictWd:ContainedBy”3511 is similar toentity3510. 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 inFIG. 38 are similar to3510. A dictionary-word—dictionary-word—alternate spelling (“DictWd_DictWd:AlternateSpelling”)entity3512 might contain as an example record the dictionary word IDs for the words “Africa” and “Afrika”. A dictionary-word—dictionary-word—tense of (“DictWd_DictWd:TenseOf”)entity3514 might contain as an example record the dictionary word IDs for the words “fly” and “flew”. A dictionary-word—dictionary-word—abbreviation-or-long-form (“DictWd_DictWd:AbrevOrLongFm”)entity3516 might contain as an example record the dictionary word IDs for the words “Doctor” and “Dr”.
A dictionary-word—dictionary-word—synonym-of (“DictWd_DictWd:SynonymOf”)entity3520 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”)entity3522 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”)entity3518 has a foreign-key-primary-key3518P. Primary key3518P consists of foreignkey column3518A from primary key3416A ofdictionary word entity3416, and a second foreignkey column3518B from primary key3416A ofentity3416.Entity3518 might contain as an example record the dictionary word IDs for the words “fly” and “flight”. Other relations for relating dictionary words are possible.
Entity Relationship Diagram—FIG. 36FIG. 36 depicts the entities used to find an expression that contains a dictionary word that is a root or derivative of a dictionary word contained in a given expression.
An “ExpWdDictWd_DictWd_DictWd:RootOrDerivativeOf”entity3610 is a composite of “ExpressionWordDictWord”entity3412 and “DictWd_DictWd:RootOrDerivOf”entity3518. Itsprimary key3610P is concatenated from complete primary key3412P ofentity3412 and complete primary key3518P ofentity3518.Entity3610 has foreign-key-primary-key columns3610A,3610B,3610C,3610D, and3610E from primarykey columns3412A,3412B,3412C,3518A, and3518B respectively. There is a record in3610 for each match of3412C in3412 to3518A in3518.
An entity “ExpWdDictWd_ExpWdDictWd_DictWd-DictWd: RootOrDerivativeOfl”3612 is a composite entity ofentities3610 and3412. Its primary key is composed of foreign-key-primary-key columns3612A-3612F. These refer to primarykey columns3412A,3412B,3412C,3610A,3610B, and3610C respectively.Entity3612 also hasforeign keys3612G and3612H referring to3610D and3610E respectively.
There is a record inentity3612 for every match of3412C in3412 to3610E inentity3610.Entity3612 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 from3612 is theposition3612B of the root or derivate word in its expression.
In the sample iteration,entity3610, 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.Entity3610 can therefore be called the “lookup-expression-having-a-root-or-derivative-word” entity.
In another of the four examples, top-level expression1410 was related to trivia-quiz answer230A1 by virtue of a ‘contained-by’ relationship, whereby the word “fly” is contained by “McFly”. Building composite entities like3610 and3612 by replacingentity3518 withentity3511 fromFIG. 35 would give a “lookup-expression-having-a-containing-word” entity for this purpose.
In another of the four examples, top-level expression1410 was related to trivia-quiz answer230B1 by virtue of another ‘contained-by’ relationship, whereby the word “ointment” is contained by “appointment”.Expressions1410 and230B1 would also be related by a “lookup-expression-having-a-containing-word” entity.
In the final example, top-level expression1410 was related to trivia-quiz answer230B2 by virtue of a ‘synonym’ relationship, whereby the word “ointment” is a synonym of “Cream”. Building composite entities like3610 and3612 by replacingentity3518 withentity3520 fromFIG. 35 would give a “lookup-expression-having-a-synonym” entity for this purpose. Following the pattern, ‘lookup-expression-where-a-word-contains’, ‘lookup-expression-having-an-alternate-spelling’, ‘lookup-expression-having-a-tense-of’, ‘lookup-expression-having-an-abbreviation-or-long-form’, and ‘lookup-expression-having-an-antonym’ entities, are built. Many other types of lookup entities are possible. In general, such entities are called ‘lookup-expression’ entities.
Entity Relationship Diagram—FIG. 37FIG. 37 shows aNode entity3710. It has a node ID (“NodeID”)primary key3710A.Entity3710 includes attribute “IsExpressionYN?”3710B which flags whether a node is an expression. Redundant attribute “IsNotAnExpressionYN?”3710C flags whether a node is not an expression.Entity3710 includes a one to zero-or-one self-join3710J with parent-node-ID (“ParentNodeID”)3710D being a foreign key referring toprimary key3710A. Also included is a redundant attribute node-level (“NodeLevel”)3710E which represents a node-level of a node in its tree. Also included is a tree ID (“TreeID”) foreign key3710F.
Node entity3710 has a one-to-zero-or-one cardinality3711 with a non-expression-node (“NonExpressionNode”)entity3712. Primary key3710A serves as a foreign-key-primary-key3712A ofentity3712. Attributes of3712 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 flags3712A and3712B apply to the detailed embodiment.
Node entity3710 has a one-to-zero-or-one cardinality3713 with an expression-node (“ExpressionNode”)entity3714. Primary key3710A serves as a foreign-key-primary-key column3714A inentity3714. Another foreign-key-primary-key column, an expression ID (“ExpressionID”)3714B column, comes from primary key3310A ofentity3310. A one-to-zero-or-many cardinality3715 exists betweenentities3310 and3714. Together,3714A and3714B form the primary key ofentity3714. Flag attributes of3714 indicate a type of expression-node. An is-it-a-derived-clue-yes-or-no (“IsDerivedClueYN?”)attribute3714C 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 ofentity3612 ofFIG. 36. An is-it-the-answer-to-a-canned-quiz-question-yes-or-no (“IsCannedQuizAnswerYN?”)attribute3714D indicates whether an expression-node is the answer to a ‘canned’ (non-expression) quiz-question. An is-it-a-guess-the-phrase-phrase-yes-or-no (“IsGuessThePhrasePhraseYN?”)attribute3714E indicates whether an expression-node is a guess-the-phrase-phrase.
Entity Relationship Diagram—FIG. 38FIG. 38 depicts two different types of non-expression-node entities used in the detailed embodiment.Node ID3712A of “NonExpressionNode”entity3712 is a foreign-key-primary-key column3810A of a canned-quiz-question-node (“CannedQuizQuestionNode”)entity3810.Column3810A is part of the primary key ofentity3810. Foreign-key-primary-key column3810B from primary key3311A fromentity3311 is theother column3810B of the primary key ofentity3810. There is a one-to-zero-or-one cardinality3811 betweenentities3712 and3810. Also included inentity3810 are flag attributes; has-multiple-choice-answer-yes-or-no (“HasMCAnswerYN?”)3810C and has-text-input-answer-yes-or-no (“HasTextInputAnswerYN?”)3810D.
Node ID3712A of “NonExpressionNode”entity3712 is a foreign-key-primary-key column3812A of a guess-the-phrase-word-node (“GuessThePhraseWordNode”)entity3812. Foreign-key-primary-key columns3812B and3812C from primarykey columns3410A and3410B ofentity3410 are the other primary key columns ofentity3812. There is one-to-zero-or-one cardinality3813 betweenentities3712 and3812.
Entity Relationship Diagram—FIG. 39FIG. 39 shows more detail forentities3810 and3812. “CannedQuizQuestionNode”entity3810 has ExpressionID_Answ foreign-key-primary-key column3810B from primary key3311A from “CannedQuiz”entity3311. “GuessThePhraseWordNode”entity3812 has primarykey columns3410A and3410B of “ExpressionWord”entity3410 as foreign-key-primary-key columns3812B and3812C. “ExpressionID” primarykey column3410A is “ParentExpressionID” primarykey column3812B inGuessThePhraseWordNode entity3812. “WordNumInExp” primarykey column3410B inentity3410 is “WordNumInParentExp” primarykey column3812C inentity3812.
Entity Relationship Diagram—FIG. 40FIG. 40 introduces a tree (“Tree”)entity4010.Tree entity4010 has a tree ID (“TreeID”)primary key4010A. All nodes belonging to a single quiz-tree can be identified by their tree ID on the basis of a foreign key3710F. The tree ID innode entity3710 is strictly-speaking redundant in terms of identifying all the nodes belonging to some unidentified ‘tree’. This is because the unique nature of node ID primary key3710A combined with foreign key3710D allows all nodes belonging to one (unidentified) ‘tree’ to be related back to that tree, in their proper position. However, representing distinct trees allows trees to be managed as distinct entities. This facilitates more advanced game management, for example, preventing the same player from accessing a tree more than once. Other attributes oftree entity4010 are an is-template-yes-or-no “IsTemplateYN?” attribute4010B, and an average-player-rating “AveragePlayerRating”attribute4010C.Attribute4010B records whether a tree is a standard template. If not, it might have been created by a game player for limited or one-time use.Attribute4010C records average ratings of trees as provided by player feedback. This attribute presumes functionality for surveying player satisfaction. A tree-created-by-player-ID (“TreeCreatedByPlayerID”) foreign key4010D from a player entity records the player who created a tree, if applicable, presuming functionality for player creation of trees.
Entity Relationship Diagram—FIG. 41FIG. 41 introduces a player (“Player”)entity4110. It has a player ID (“PlayerID”)primary key4110A, and attributes; first name (“FName”)4110B and last name (“LName”)4110C. For an enhancement where players can create quiz-trees, primary key “PlayerID”4110A is a foreign key “TreeCreatedByPlayerID”4010D intree entity4010.
Composite tree-player (“Tree_Player”)entity4112 has foreign-key-primary-key columns4112A and4112B referencingprimary keys4010A and4110A respectively.Entity4112 includes a player-rating-of-tree (“PlayerRatingOfTree”)attribute4112C that records player ratings of trees. Individual player ratings are used to derive “AveragePlayerRating”4010C oftree entity4010.
Sequence Diagram—Tree Formulator Part1—FIG. 42Quiz data represented by entities shown inFIG. 33-40 must be related to nodes within quiz-trees.FIG. 42 introduces a tree-formulator (“:TreeFormulator”)object4210 that organizes quiz data into quiz-trees. First,object4210 is initialized with tree-formula-initialization method (“initTreeFormulator( )”)4250. No initialization parameters are shown, but arguments defining quiz-tree parameters are possible.Object4210 next sends an insert-tree (“insertTree( )”)message4252 totree entity4010. The relational database management system uses Data Manipulation Language (“DML”) to insert a new record inentity4010. A unique tree ID (“TreeID”)primary key4010A value is generated from a database sequence.Entity4010 next returns tree ID (“TreeID”)4254 to object4210.
Tree-formulator object4210 next sends a select-expression (“selectExpression( . . . )”)message4256 toexpression entity3310. Aparameter4256A is included withmessage4256 to select where “IsSuitableForGuessThePhraseYN?”attribute3310G is set to “Y” for “yes”.Message4256 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 entity3310 could have additional attributes related to it to assist in fine-tuning the types of expressions composed into in a quiz-tree.
Expression entity3310 returnsvalues4258; an expression ID (“ExpressionID”)4258A, and number of words (“NumWords”)4258B fromcolumns3310A and3310B respectively of3310. Tree-formulator object4210 next sends an insert-node (“insertNode( . . . )”)message4260 tonode entity3710. Aparameter4260A is sent to setcolumn3710B, “IsExpressionYN?” to “Y” for “yes”.Other parameters4260B are sent, namely to set “IsNotAnExpressionYN?” to “N” for “no”. Aparameter4260C is included to setcolumn3710D to NULL, indicating that there is no parent node. This is an appropriate value only for a top-level node. Aparameter4260D is included to setcolumn3710E to “1”. Also passed isTree ID4254 which goes incolumn3710F.
The DML inserts a record inentity3710. A node ID (“NodeID”) is generated incolumn3710A from a database sequence. A node ID (“NodeID”)value4262 is returned to tree-formulator object4210.Object4210 next sends an insert-expression-node (“insertExpressionNode( . . . )”)message4264 to expression-node entity3714.Message4264 passesnode ID4262 andexpression ID4258A which go incolumns3714A and3714B respectively. Other parameters4264A setcolumns3714C and3714D both to “N” for “no”.Parameter4264B sets column “IsGuessThePhrasePhraseYN?”3714E to “Y”.
Having inserted the top-level node, tree-formulator object4210 uses a set-level-one-parent-node-ID (“setLevellParentNodeID( . . . )”)method4266 to set a parent-node-ID variable to the (current)node ID4262 of the top-level expression.
Sequence Diagram—Tree Formulator Part2—FIG. 43The tree-formulator sequence continues withFIG. 43. Anouter loop4348 loops “n” times, where “n” is set to the number of words “NumWords”4258B in the expression. The tree-formulator object sends a select-expression-word (“selectExpressionWord( . . . )”)message4350 to expression-word entity3410.Message4350 passesexpression ID4258A and aparameter4350A representing the loop counter. These are used to find a record for the current expression and word number by filtering oncolumns3410A and3410B respectively.
Entity3410 returns correspondingcolumn values4252 for the selected record. “IsQuizzableWordYN?”3410D, which is either “Y” for “yes” or “N” for “no” is returned as avalue4352A.Values4352B ofcolumns3410C and3410E are also returned.
Tree-formulator object4210 next sends an insert-node (“insertNode( . . . )”)message4354 tonode entity3710. Aparameter4354A is sent to setcolumn3710C, “IsNotAnExpressionYN?” to “Y” for “yes”.Other parameters4354B are sent, namely to set “IsExpressionYN?” to “N” for “no”. A parent-node-ID (“parentNodeID”)parameter4354C is included to setcolumn3710D to the node ID of the parent, top-level node. Aparameter4354D is included to setcolumn3710E to “2”. Also passed isTree ID4254 which goes incolumn3710F.
The DML inserts a node record inentity3710, generating a “NodeID” from a database sequence that is returned to tree-formulator object4210 as node ID (“NodeID”)4356.Object4210 next sends an insert-non-expression-node (“insertNonExpressionNode( . . . )”)message4358 to non-expression-node entity3712.Message4358 passesnode ID4356 to set3712A andparameter4358A to set “IsGuessThePhraseWordYN?”column3712C to “Y”.Other parameters4358B setcolumns3712B, and3712D-3712G to “N”.
Object4210 next sends an insert-guess-the-phrase-word-node (“insertGuessThePhraseWordNode( . . . )”)message4360 toentity3812.Message4360 passesnode ID4356 to set3812A and aparameter4360A to set column “ParentExpressionID”3812B to the current expression ID of the top-level expression.Message4360 also passes aparameter4360B to set3812C to the counter value “n” representing the word number in the expression.
Sequence Diagram—Tree Formulator Part3—FIG. 44The tree-formulator sequence continues withFIG. 44. One of two sequences occurs as represented by an “alt combined fragment”4450. On acondition4452 that “IsQuizzableWordYN?”value4352A is set to “N”, a next (“next(n)”) method ornext statement4454 increases the outer loop counter (“n”) by one and, where “n” is not greater than “NumWords”4258B, resumesouter loop4348 show inFIG. 43.
On a condition4456 that “IsQuizzbleWordYN?”value4352A is set to “Y”,object4210 calls its set-level-two-node-id (“setLevel2NodeID( . . . )”)method4457 withnode ID4356 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.
Part1 of the inner loop is shown in loop combinedfragment4458. A reset-level-two-parent-node-ID (“resetLevel2 ParentNodeID( )”)method4460 sets a “ParentNodeID” value to a level-two-node-id parameter4461 value, which was returned frommethod4457. The scope of this setting is restricted to the inner loop.Object4210 sends a select-related-expression (“selectRelatedExpression( . . . )”)message4462 to a lookup-expression entity3612.Message4462 passesparameters4258A and4350A.Parameter4258A is used to restrictcolumn3612A andparameter4350A is used to restrictcolumn3612B.Entity3612 fromFIG. 36 is representative of the different lookup-expressions. Loop “m” would be repeated, replacing the lookup entity in each repetition of the loop (not shown). Alternatively, all the related expression lookups could be inserted into a single lookup-entity (not shown). A tree-formulator console (not shown) could be used to restrict the types of expression lookups used in a particular quiz-tree.
Entity3612 returns one related-expression-id (“ExpressionID1”)4464 fromcolumn3612D 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 object4210 next sends a “selectExpressionID_Answ”message4466 to canned-quiz entity3311.Message4466 passes aparameter4466A to select “ExpressionID_Answ”column3311A fromentity3311 wherecolumn3311A is equal to4464.Entity3311 returns an “ExpressionID_Answ”value4468.
Acondition4472 checks that4468 in not null. If4468 is null, it means that related-expression-id4464 is not a canned-quiz answer, and method ornext statement4470 starts a new iteration of the inner loop “m”.
Sequence Diagram—Tree Formulator Part4—Inner Loop “m”Part2—FIG. 45
FIG. 45 continues the tree-formulator sequence within the inner loop “m”. Acondition4550 checks that4468 is not null, that is, that a value was returned in the previous step. Ifcondition4550 is met, execution continues within the inner loop.
Tree-formulator object4210 next sends an insert-node (“insertNode( . . . )”)message4552 tonode entity3710. Aparameter4552A sets column3710B “IsExpressionYN?” to “Y”.Parameter4552B is sent to set “IsNotAnExpressionYN?”column3710C to “N” for “no”. A parent-node-ID (“parentNodeID”)parameter4552C is included to setcolumn3710D to the node ID of the parent, quiz-able-word node. Aparameter4552D is included to setcolumn3710E to “3”. Also passed isTree ID4254 which goes incolumn3710F.
The DML inserts a node record inentity3710, generating a “NodeID” from a database sequence that is returned to tree-formulator object4210 as node ID (“NodeID”)4554.Object4210 next sends an insert-expression-node (“insertExpressionNode( . . . )”)message4556 to expression-node entity3714.Message4556 passesnode ID4554 to setcolumn3714A.Message4556 passesparameter4556A to set “ExpressionID”column3714B to4468.Other parameters4556B setcolumns3714C and3714E to “N”.Parameter4556C sets column “IsCannedQuizAnswerYN?”3714D to “Y”.
Tree-formulator object4210 next calls a set-level-three-parent-node-id (“setLevel3 ParentNodeID( . . . )”)method4558, passing4554, which sets a “ParentNodeID” parameter to the node ID of the quiz answer expression.
Next,object4210 sends an insert-node message4560 to insert a node intoentity3710. Aparameter4560A is sent to setcolumn3710C, “IsNotAnExpressionYN?” to “Y” for “yes”. Aparameter4560B is sent to set “IsExpressionYN?”3710B to “N” for “no”. A parent-node-ID (“parentNodeID”)parameter4560C is included to setcolumn3710D to the node ID of the parent, quiz-answer node. Aparameter4560D is included to setcolumn3710E to “4”. Also passed isTree ID4254 which goes incolumn3710F.
The DML inserts a node record inentity3710, generating a “NodeID” from a database sequence that is returned to tree-formulator object4210 as node ID (“NodeID”)4562.Object4210 next sends an insert-non-expression-node (“insertNonExpressionNode( . . . )”)message4564 to non-expression-node entity3712.Message4564 passesnode ID4562 which goes incolumn3712A. Also passed isparameter4564A to set “IsCannedQuizQuestionYN?”column3712B to “Y”.Other parameters4564B setcolumns3712C-3712G to “N”.
Object4210 next sends an insert-canned-quiz-question-node (“insertCannedQuizQuestionNode( . . . )”)message4566 toentity3810.Message4566 passesnode ID4562 to setcolumn3810A. It also passes aparameter4468 to setcolumn3810B.Message4566 also passesparameter4566A to set3810C to “N”, andparameter4566B to setcolumn3810D to “Y”.
Sequence Diagrams—Node InitializersFIG. 46-51 show how the four already-introduced node objects are initialized from information in the quiz-generation schema. These sequences show how the data is accessed by the system at runtime. The node structure of a tree is already defined by the tree-formulator sequences.
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.
Sequence Diagram—Guess-the-Phrase Phrase Node Initializer—FIG. 46FIG. 46 shows how a guess-the-phrase-phrase-node object is initialized from information in the quiz-generation schema. Guess-the-phrase-phrase-node object3012 receives an initialize-guess-the-phrase-phrase-node (“initGTPPNd( . . . )”)message4650, which passes a node-id (“nodeID”)4652 parameter.Object3012 next sends a select-expression (“selectExpression( . . . )”)message4654 to expression-node entity3714, passing4652 which restricts3714A.Entity3714 returns an expression-id (“ExpressionID”)4656 value from3714B.
Object3012 next sends a select-number-of-words (“selectNumWords( . . . )”)message4658 toexpression entity3310, passing4656 which restrictscolumn3310A.Entity3310 returns a number-of-words (“NumWords”)4660.Object3012 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( )”)method4662 initializes the array.
A combinedloop fragment4664 iterates “n” times where the upper limit of “n” is the number ofwords4660. A select-guess-the-phrase-word-node (“selectGTPWNd( . . . )”)message4666 is sent tonode entity3710.Message4666, passes aparameter4668 to restrictcolumn3710D to4652.Column3710A is selected and a node-id (“NodeID”)4670 is returned toobject3012. An add-guess-the-phrase-word-node (“addGTPWNd( . . . )”)method4674 insertsnth node ID4670 into the guess-the-phrase-word-node array.
Sequence Diagram—Guess-the-Phrase Word Node Initializer—Part1—FIG. 47FIG. 47 shows part one of how a guess-the-phrase-word-node object is initialized from information in the quiz-generation schema. Guess-the-phrase-word object1818 receives an initialize-guess-the-phrase-word-node-id (“initGTPWNd( . . . )”)message4750, which passes a node-id (“nodeID”)4752 parameter.Object1818 next sends a select-expression-and-word-number (“selectExpression&WordNum( . . . )”)message4754 to guess-the-phrase-word-node entity3812, passing4752 which restricts3812A.Entity3812 returnsvalues4756, a parent-expression-id (“ParentExpressionID”)4758 fromcolumn3812B, and a word-number-in-parent-expression (“WordNumInParentExp”)4760 fromcolumn3812C.
Object1818 next sends a select-expression-word-information (“selectExpressionWordInfo( . . . )”)message4762 to expression-word entity3410.Message4762 passes aparameter4762A which restrictscolumn3410A with4758.Message4762 also passes aparameter4762B which restrictscolumn3410B with4760.Entity3410 returnsvalues4764. These include an expression-id (“ExpressionID”)4766 fromcolumn3410A, and a word-number-in-expression (“WordNumInExp”)4768 from3410B.Entity3410 also returns “IsQuizzableWordYN?”4770 from3410D and “IsCapitalizedYN?”4772 from3410E. All words are stored as dictionary words in the present embodiment, so there is no need to return3410C.
Object1818 next sends a select-dictionary-word (“selectDictionaryWord( . . . )”)message4774 toentity3412.Parameter4766 restrictscolumn3412A andparameter4768 restrictscolumn3412B. A value for dictionary-word-id (“DictionaryWordID”)4776 is returned. Next,object1818 sends a select-word-text (“selectWordTxt( . . . )”)message4778 to dictionary-word entity3416, passing4776 which restrictscolumn3416A. A value for word-text (“WordTxt”)4780 is returned fromcolumn3416B.
Next,object1818 calls its set-answer (“setAnswer( . . . )”)method4782, passing4780 and4772 to set an answer for the word. This answer is passed to and displayed in the interface when the word is solved. On acondition4784 that the word is a quiz-able word,object1818 also calls its set-valid-word-answer (“setValidWdAnswer( . . . )”)method4786, passing4780. This method sets the first index value of a valid-word-answers array to word-text4780. Other entities and sequences, not shown, could be used to create an array of multiple values with closely matching responses deemed to be correct.
Sequence Diagram—Guess-the-Phrase-Word-Node Initializer—Part2—FIG. 48FIG. 48 shows part two of the guess-the-phrase-word node initialization sequence. Guess-the-phrase-word object1818 sends a select-parent-node (“selectParentNode( . . . )”)message4850 tonode entity3710, passing4752.Node id4752 restrictscolumn3710A, and parent-node-id (“ParentNodeID”)4852 is returned fromcolumn3710D.
On a condition4784 (which also applies to the loop that follows), an initialize-trivia-quiz-answer-node (“initTQANd”)method4854 initializes a two-dimensional array that stores trivia-quiz answer node IDs and their respective category.
A loop combinedfragment4856 iterates while found with counter “n”. A select-trivia-quiz-answer-node (“selectTQANd( . . . )”)message4858 is sent tonode entity3710.Message4858, passes aparameter4860 to restrictcolumn3710D tonode ID4752 of the quiz-able word. Anode id4862 for a trivia-quiz-answer-node is returned fromcolumn3710A.
Next, a select-expression (“selectExpression( . . . )”)message4864 is sent to expression-node entity3714, passing4862.Parameter4862 restrictscolumn3714A, andcolumn3714B is returned as an expression-id (“ExpressionID”)4866 value. Next,object1818 sends a select-category-code (“selectCategoryCode( . . . )”)message4868 to canned-quiz-subject-category entity3312.Message4868 passes aparameter4870 which restrictscolumn3312A with4866.Column3312B is returned as a category-code (“CategoryCode”)4872 value. Next, a set-trivia-quiz-answer-node (“setTQANd( . . . )”)method4874 executes.Method4874 inserts trivia-quiz-answer node-id4862, and category-code4872 into the trivia-quiz-answer-node array.
Sequence Diagram—Trivia Quiz Answer Node Initializer—Part1—FIG. 49FIG. 49 shows part one of the trivia-quiz-answer-node-initializer sequence. Trivia-quiz-answer-node object1910 receives an initialize-trivia-quiz-answer-node (“initTQANd( . . . )”)message4950, which passes a node-id (“nodeID”)4952 parameter.Object1910 next sends a select-expression (“selectExpression( . . . )”)message4954 to expression-node entity3714, passing4952 which restricts3714A.Entity3714 returns an expression-id (“ExpressionID”)4956 value from3714B.
Object1910 next sends a select-number-of-words (“selectNumWords( . . . )”)message4958 toexpression entity3310, passing4956 which restrictscolumn3310A.Entity3310 returns a number-of-words (“NumWords”)4960 from3310B.Object1910 next calls an initialize-answer (“initAnswer( . . . )”)method4962, passing4960.Method4962 initializes an array of size “NumWords” for holding the words of the trivia-quiz-answer expression.
A combinedloop fragment4964 iterates “n” times where the upper limit of “n” is the number ofwords4960. A select-dictionary-word (“selectDictionaryWord( . . . )”)message4966 is sent to expression-word-dictionary-word entity3412.Message4966, passesparameter4956 to restrictcolumn3412A. Also passed isparameter4966A which restrictscolumn3412B to the counter representing the word number. A dictionary-word-id (“DictionaryWordID”)4968 value is returned fromcolumn3412C.
Object1910 next sends a select-word-text (“selectWordTxt( . . . )”)message4970 to dictionary-word entity3416.Message4970 passes4968, which restrictscolumn3416A.Column3416B is returned as a word text (“WordTxt”)4972 value.Object1910 next sends a select-caplitalization (“selectCapitalization( . . . )”)message4974 to expression-word entity3410.Message4974 passes4956, which restrictscolumn3410A.Message4974 also passes aparameter4974A for the counter value, which restrictscolumn3410B.Column3410E is returned as an “IsCapitalizedYN?”4976 value.Object1910 calls its add-to-answer (“addToAnswer( . . . )”)method4978, passing4972 and4976.Method4978 adds the word to the array of words for the trivia-quiz-answer expression.
Sequence Diagram—Trivia Quiz Answer Node Initializer—Part2—FIG. 50FIG. 50 shows the second part of the trivia-quiz-answer-node-initializer sequence. Trivia-quiz-answer-node object1910 calls its convert-to-string (“convertToString( . . . )”)method5050, passing a completed array of words (“answer”) for the trivia-quiz-answer expression,5052. Next, it calls its initialize-valid-answers (“initValidAnswers( . . . )”)method5054, which initializes an array of valid answers and adds a string-answer (“stringAnswer”)5056 returned frommethod5050 at the first index. Additional entities and sequences, not shown, would be used to add additional values to the array of valid answers. It is this array that is checked against a player response to determine whether it is correct.
Object1910 next sends a select-guess-the-phrase-word-node (“selectGTPWNd( . . . )”)message5058 tonode entity3710. Aparameter5058A restrictscolumn3710A withnode id4952.Column3710D is returned as a parent-node-id (“ParentNodeID”)5060.Object1910 calls its set-guess-the-phrase-word-node (“setGTPWNd( . . . )”)method5062, passing5060. This sets the parent, guess-the-phrase-word-node by its node-id.
Object1910 next sends a select-trivia-quiz-question-node (“selectTQQNd( . . . )”)message5064 toentity3710.Message5064 passes aparameter5064A that restrictcolumn3710D with4952.Column3710A is returned as a node-id (“NodeID”)5066 value.Object1910 calls its set-trivia-quiz-question-node (“setTQQNd( . . . )”)method5068, passing5066. This sets the child, trivia-quiz-question-node by its node-id.
Sequence Diagram—Trivia Quiz Question Node Initializer—FIG. 51FIG. 51 shows how a trivia-quiz-question-node object is initialized from information in the quiz-generation schema. Trivia-quiz-question-node object1912 receives an initialize-trivia-quiz-question-node (“initTQQNd( . . . )”)message5150, which passes a node-id (“nodeID”)5152 parameter.Object1912 next sends a select-expression (“selectExpression( . . . )”)message5154 to canned-quiz-question-node entity3810, passing5152 which restricts3810A.Entity3810 returns an “ExpressionID_Answ”5156 value from3810B.
Object1912 next sends a select-question-text (“selectQuestionTxt( . . . )”)message5158 to canned-quiz entity3311, passing5156 which restrictscolumn3311A.Entity3311 returns a question text (“QuestionTxt”)5160 fromcolumn3311B.Object1912 next calls its initialize-question (“initQuestion( . . . )”)method5162, passing5160 to initialize the question.
Object1912 next sends a select-trivia-quiz-answer-node (“selectTQANd( . . . )”)method5164 tonode entity3710. Aparameter5164A restrictscolumn3710A by5152.Column3710D is returned from the node entity as a parent-node-id (“ParentNodeID”)5166.Object1912 next calls its set-trivia-quiz-answer-node (“setTQANd( . . . )”)method5168, passing5166. This sets a reference to a parent, trivia-quiz-answer node, by its node ID.
Entity Relationship Diagram—FIG. 52FIG. 52 introduces a round (“Round”)entity5210 and a match (“AMatch”)entity5214.Match entity5214 contains a “MatchID”primary key5214A. It contains attributes to record match statistics. “TotalPointsAvailable”5214B is the maximum points available for distribution in a match. “TotalPointsAwarded”5214C is the points awarded in a match. “PlayerlDMatchAdmin” foreign key5214D refers to the “PlayerID” primary key4110A ofplayer entity4110. It records the player who is the match administrator, if applicable. Flag attributes “IsStartedYN?”5214E, “IsSuspendedYN?”5214F, “IsCompletedYN?”5214G record information about the state of a match.
An “AMatch_Player”composite entity5216 has a primary key5216P composed of a “MatchID” foreign-key-primary-key column5216A from5214A and a “PlayerID” foreign-key-primary-key column5216B from4110A.Entity5216 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 entity5210 has a primary key composed of a “MatchID” foreign-key-primary-key column5210B referencing primary key5214A ofmatch entity5214, and a round number “RoundNum”column5210C which is the round number within a match. A “TreeID” foreign key5210A refers to primary key4010A oftree entity4010. A “PlayerIDToStartRound” foreign key5210H refers to primary key4110A ofplayer entity4110 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 entity5212 has a primary key5212P with foreign-key-primary-key columns “MatchID”5212A, “RoundNum”5212B, and “PlayerID”5212C referencing the primary keys ofround entity5210 andplayer entity4110. A “Score”attribute5212D records the cumulative score per player per round.
Sequence Diagram—Initialize Match—FIG. 53FIG. 53 shows how a match is initialized. A game administrator (“GameAdmin <<actor>>”)5310 sends an initiate-game (“initGame( . . . )”)message5350 togame object1816.Message5350 passes an array of player IDs of size “P” (“playerID[P]”)5352, a number of rounds (“numRounds”)5354 in the match, and an array of “R” tree IDs (“TreeID[R])”)5356, where “R” is the number of rounds. It is assumed thatarrays5352 and5356 contain pre-existing information and were obtained as part of a pre-game setup process (not shown).
Next,game object1816 calls an initialize-control-sequence (“initControlSeq( . . . )”)method5358, passing5352. Next, a loop populates the control sequence with an ordered array of player references, described in combinedloop fragment5360. An initialize-player (“initPlayer( . . . )”)message5362 is sent from1816 to a player object (“Player”)5312, passing a player ID of the counter index “p” value (“playerID(p)”)5364.Player object5312 sends a select-player (“selectPlayer(p)”)message5366 toplayer entity4110 to select relevant columns where4110A is restricted by5364. Areference5368 to the player object is returned to1816. An add-to-control-sequence (“addToControlSeq( . . . )”)method5370 addsplayer reference5368 to the control sequence.
Game object1816 next sends an initialize-match (“initMatch( . . . )”)message5372 to a match (“Match”)object5314.Message5372 passes5354 and a control sequence (“controlSeq”)5374 obtained fromloop5360.Match object5314 sends an insert-match (“insertMatch( )”)message5376 to matchentity5214. A database sequence generates a “MatchID” in primarykey column5214A, which is returned as5378. Other methods (not shown), can insert additional values inentity5214 as well ascomposite entity5216, and initialize the match scores of the players. Areference5380 to the match object is returned togame object1816.
Sequence Diagram—Initialize Round—Part1—FIG. 54FIG. 54 shows the first part of a round initialization sequence. At the beginning of a new round,game object1816 calls a next-control-sequence (“nextControlSeq( . . . )”)method5450, to set the index of the control sequence to the next player.Method5450 requires parameter “r”5452 which is the index of the current round. This method ensures that control is set at the beginning of each round according to the control sequence order.
Game object1816 next sends an initialize-round (“initRound( . . . )”)message5454 to a round (“Round”)object5410.Message5454 passes a match ID (“MatchID”)parameter5456 obtained from a lookup (not shown) ofmatch object5314. It also passesround index5452.
Round object5410 sends an insert-round (“insertRound( . . . )”)message5458 toround entity5210.Message5458 passes5460, a tree ID of the round index (“TreeID(r)”).Message5468 also passes5456 and the index of the current round plus one5462. This presumes the index begins at zero but actual round numbers begin at one.Parameters5460,5456, and5462 populatecolumns5210A,5210B, and5210C respectively ofentity5210. Once a round is initialized, around5464 reference is returned togame object1816.
Game object1816 next sends a select-top-node (“selectTopNode( . . . )”)message5466 tonode entity5210.Message5466 passes5460, which restrictscolumn3710F, and aparameter5468 that restrictscolumn3710E to “1”. This call returns node ID (“NodeID”)5470 fromcolumn3710A ofentity3710.
Game object1816 next sends initialize-guess-the-phrase-phrase-node (“initGTPPNd( . . . )”)message4650 to object3012, passing5470. Once guess-the-phrase-phrase object3012 is initialized,game object1816 sends a get-number-of-words (“getNumWordso”)message5472 to3012. A number of words (“NumWords”)4660 in the top-level-phrase is returned.Game object1816 next calls an initialize-guess-the-phrase-word-GUI-information (“initGTPWGUIInfo( )”)method5474. This initializes an array of information about the guess-the-phrase words that is to be sent to the user interface.
Sequence Diagram—Initialize Round—Part2—FIG. 55The initialize round sequence continues withFIG. 55. A loop, indicated by a combinedloop fragment5550, executes to capture information about each word in the top-level phrase. A get-nth-guess-the-phrase-word-node (“getGTPWNd(n)”)message5552 is sent to object3012.Message5552 retrieves a node ID (“NodeID”)5554 for the nth guess-the-phrase word from3012.Game object1816 next sends an initialize-guess-the-phrase-word-node-id (“initGTPWNd( . . . )”)message4750 to guess-the-phrase-word instance1818 for the guess-the-phrase-word node, passing5554.Game object1816 gets areference5556 to the guess-the-phrase-word node (“GTPWdNd”). It then calls a get-guess-the-phrase-word-node-GUI-information (“getGTPWNdGUIInfo( )”)message5558 of1818.Message5558 returnsvalues5560. These include a word text (“WordTxt”)5562 value, an is-quiz-able-word-yes-or-no (“IsQuizzableWdYN?”)5564 value, and a node state (“nodeState”)5566 value.Node state5566 will reflect that the node is available.
Game object1816 next calls a get-word-length (“getWordLength( . . . )”)message5568, passing5562 to get the number of characters of the current word.Object1816 next calls an add-guess-the-phrase-word-GUI-information (“addGTPWGUIInfo( . . . )”)method5570.Method5570 takes asarguments5554, a word length (“wordLength”)5572 parameter returned from5568, and5564 and5566.Method5570 adds the information for the current word to the guess-the-phrase-word-GUI-information array.
Whenloop5550 is finished,game object1816 sends an initialize-navigation-mode-GUI (“initNavModeGUI( . . . )”)message5574 to initialize navigation-mode GUI (“NavModeGUI”)object1810.Message5574 passes a guess-the-phrase-phrase-node-ID (“GTPPNdID”)5576, which is set to5470, the value of the top-level node ID.Message5574 also passes a guess-the-phrase-word-GUI-information (“GTPWGUIInfo[ ]”)array5578, obtained fromloop5550.Parameters5576 and5578 supply the information necessary to display the masked top-level phrase at the beginning of a round as indicated inFIG. 2.Parameters5576 and5578 also provide node IDs to the user interface that are returned to the model with play actions. This assists in coordinating the view with the model.
In the present embodiment,method5574 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 object1816 also sends an initialize-control-and-score-GUI (“initCntrl&ScoreGUI( . . . )”)message5580 to initialize control-and-score-GUI (“Cntrl&ScoreGUI”)object2310.Message5580 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.
Continuous Difficulty Calibration EnhancementEmbodiments 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.
ALTERNATIVE EMBODIMENTSFIGS. 56-95 deal with some alternative forms and enhancements. These figures are representative of many types of enhancements that could be incorporated into the combined guess-the-phrase and trivia game embodiment or an alternative embodiment.
FIG. 56 depicts the quiz-and-word-guessing-selector component with an additional menu option for a “drill-down clue”. An additional level ofsubmenus320 contains atrivia submenu322 and a drill-downclue submenu324. Presuming that drill-downclue submenu324 is selected,FIG. 57 would be presented.
FIG. 57 depicts the phrase component in navigation mode with an embedded quiz that is applicable to one of the quiz-able-words in the top-level phrase. Embeddedquiz240 has an unrevealed quiz-able-word244A1 with attached hyperlink, a solveword button242A, a label indicating a word-clue section248, and a quiz-able-word-clue cell250. Presuming that244A1 is selected with hand-pointer cursor95,FIG. 58 would be presented.
FIG. 58 depicts the quiz-and-word-guessing-selector component as it might appear for quiz-able-word244A1 in the embedded quiz. Additional menu items are displayed to support additional features and quiz types.
Top-level menus340 contain a guess-word menu342, find-a-clue menu344 and cancel drill-down menu346. The find-a-clue menu344 has aflyout menu350.Flyout menu350 has a trivia-quiz menu352, a concealed-picture menu354, ananagram menu356, a drill-down-clue menu357, a sound-clip menu358 and a video-clip menu359. Trivia-quiz menu352 has trivia-quiz submenus360. Trivia-quiz submenus360 include a television-quiz-category-menu option362A, a movies-quiz-category-menu option362B, a music-quiz-category-menu option362C, and a sports-quiz-category-menu option362D.
Presuming that music-quiz-category-menu option362C is selected witharrow cursor99,FIG. 59 is presented.FIG. 59 depicts a form of the trivia-quiz component adapted for multiple choice input of a trivia-quiz answer. The appearance of this component presumes an embodiment enabled for multiple choice quizzes and that option being selected, if configurable.FIG. 59 introduces multiplechoice options section417 withoptions417A through417D. A quiz-heading410B corresponds to the selected question. A quiz question412B1 displays the question.Multiple choice option417C is shown as selected. Presuming that submitbutton420 is selected with hand-pointer cursor95,FIG. 60 is presented.
FIG. 60 shows the phrase component assuming the previous attempt is correct. Revealed quiz-able-word244A5 is displayed in quiz-able-word-clue cell250. Since quiz-able-word244A5 is solved, the embedded quiz is redundant and disappears automatically after a few seconds. After that, the phrase component reduces toFIG. 61, showing a first quiz-able-word's first clue230G1 in first quiz-able-word-clue cell230A.
Returning toFIG. 58, and presuming that concealed-picture menu354 is selected, a concealed-picture-puzzle quiz is presented. It is modeled after the trivia-quiz component.FIG. 62 shows a concealed-picture puzzle in progress. The concealed-picture puzzle has a heading-for-concealed-picture puzzle410C. It has a concealed-picture puzzle412C and a remove-a-puzzle-piece label430. A spinner withlabel432 is used to select a puzzle piece for removal from concealed-picture puzzle412C. A submitbutton434 verifies removal of a puzzle piece. Apass button436 is used by a player to pass on selecting a puzzle piece for removal in a multi-player embodiment. A guess-the-picture label414B labels answertextbox416. A text-answer attempt416C is shown. Other features have the same purpose as in the trivia-quiz component.
Returning toFIG. 58, and presuming thatanagram menu356 is selected, then an anagram-puzzle quiz is presented.FIG. 63 depicts the phrase component in navigation mode with the embedded quiz. The embedded quiz has unrevealed quiz-able word244A1 with attached hyperlink. It also has associated anagram clue in its quiz-able-word-clue cell250.
Assuming selection of solve-word button242A,FIG. 64 is displayed.FIG. 64 shows embeddedquiz240 in a quiz-able-word-guessing mode. A quiz-able-word response244A4 is in the process of being entered by a player. Submit-guess button242B, clear-guess button242C, and passbutton242D are available for selection. Point-deduction warning246 warns of the penalty for a wrong attempt.
FIG. 65 depicts the phrase component in navigation mode in a design variant that displays unsolved quizzes within the phrase component. Oneclue252 has been found for the higher-level quiz-able-word, and there are three clues to the embedded quiz. The first is ananagram clue254, The second is aquiz question256 corresponding to412A1 ofFIG. 59. In this design,quiz question256 maintains a hyperlink to the trivia-quiz portrayed inFIG. 59.FIG. 65 presumes that the trivia-quiz was previously selected but not attempted or not answered correctly. Unsolved picture puzzle “clue”258 maintains a hyperlink to the concealed-picture puzzle introduced inFIG. 62. InFIG. 65, one less piece is removed.FIG. 65 presumes that the concealed-picture puzzle quiz was previously selected but an answer was not attempted or it was not answered correctly.
Returning toFIG. 58, and presuming that drill-down-clue menu357 is selected, a “drill-down” quiz is presented.FIG. 66 depicts the phrase component in navigation mode where embeddedquiz240 itself has an embedded-drill-down quiz. An embedded-embedded-drill-down quiz260 consists of a single unrevealed quiz-able-word264A1 with attached hyperlink. It has its own solveword button262A, alabel266 indicating a word-clue section, and a quiz-able-word-clue cell268.
Assuming selection of quiz-able-word264A1 with hand-pointer cursor95,FIG. 67 is displayed.FIG. 67 depicts the quiz-and-word-guessing-selector component as in might appear for quiz-able-word264A1 in the embedded-embedded drill down quiz. Additional menu items are displayed to support additional features and quiz types.
InFIG. 67, top-level menus370 contain guess-word menu372, find-a-clue menu374 and cancel-drill-down menu376. Find-a-clue menu374 has aflyout menu380.Flyout menu380 leads to trivia-quiz menu382, concealed-picture menu384,anagram menu386, and drill-down-clue menu388. Trivia-quiz menu382 leads to trivia-quiz submenus390. Trivia-quiz submenus390 include a television-quiz-category-menu option392A, movies-quiz-category-menu option392B, a music-quiz-category menu option392C, and a sports-quiz-category-menu option392D.
FIG. 68 depicts the phrase component in navigation mode with three clues in quiz-able-word-clue cell268. Clues “Shrek”270, “The Hobbit”272 and “Bruce Lee”274 are for embedded-embedded drill down quiz-able-word264A1. These clues presume a design variant where the relationship of theclues270,272 and274 to quiz-able-word264A1 (“dragon” when solved) is not based on word-level relationships. Rather, there is a thematic relationship. At the schema level, this is accomplished with expression-level relationships, including “expressions” of one word.
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,FIG. 69 is displayed.
FIG. 69 depicts the phrase component in navigation mode in which the embedded-embedded-quiz-able-word264A5 has been solved. Its solution has become a clue to one-higher embedded quiz-able-word244A1.
FIG. 70 depicts a hypothetical logical structure of the solution path that was partially exposited byFIGS. 66 through 69. In addition to node-levels one through four (110,112,114,116) are shown node-levels5118 and six120. For clarity, the diagram omits node-level2112 words except220A.
At node-level six120 are quiz questions (clues)7010,7012, and7014 for clues “Shrek”270, “The Hobbit”272 and “Bruce Lee”274 respectively.Clues270,272, and274 are clues to quiz-able-word264 (“dragon”) which is a clue to quiz-able-word244 (“dragonfly”). This is a clue to first quiz-able-word220A of sample phrase for top-level quiz1410.
FIG. 71 shows a quiz-and-word-guessing-selector component being used to find a drill-down clue in the category of movies. The menu is similar to the menu ofFIG. 56, except with a drill-down-clue-flyout submenu325 instead of drill-down-clue submenu324. Drill-down-clue-flyout submenu325 leads to drill-downclues393 with a television-quiz-category-menu option394A, a movies-quiz-category-menu option394B, a music-quiz-category-menu option394C, and a sports-quiz-category-menu option394D. Assuming selection of394B witharrow cursor99,FIG. 72 is displayed.
FIG. 72 shows a variant of the phrase component with an embedded-drill-down-quiz280. Embedded-drill-down quiz280 is expanded inFIG. 73. InFIG. 73, the drill-down quiz is a two-word expression.Phrase section212 contains unrevealed first and second quiz-able-words220C1 and220D1, with hyperlinks. These represent the words “Marty” and “McFly” respectively, which are the first and last names of a movie character from the movie “Back to the Future”. Word-clue section214 is labeled with alabel222B indicating a word-clue section. Word-clue section214 contains first and second quiz-able-word-clue cells230C and230D. This variant of the phrase component also has a phrase-clue section282. Phrase-clue section282 includes a hyperlink to phrase clue(s)284.Phrase clue cell286 contains space where one or more phrase-level clues can be displayed. A phrase-level clue is a clue that is useful for solving the entire phrase. A phrase-level clue is distinguished from quizzes on unrevealed quiz-able-words220C1 and220D1 which are related to their respective associated word. Presuming selection ofhyperlink284,FIG. 74 is displayed.
FIG. 74 depicts a menu of one item for selecting a quiz that applies to the embedded-guess-the-phrase quiz. Presuming selection of movies-quiz-category-menu option396 witharrow cursor99,FIG. 75 is displayed.
FIG. 75 shows an embedded-embedded-drill-down quiz290 within embedded-drill-down quiz280 which was shown inFIGS. 72 and 73. Embedded-embedded drill downquiz290 is expanded inFIG. 76.
FIG. 76 expands embedded-embedded drill downquiz290 ofFIG. 75.FIG. 76 shows unrevealed first and second quiz-able-words220E1 and220F1, with attached hyperlinks. Also shown are unrevealed first and second filler-words218D1 and218E1, with attached hyperlinks. Also shown are first and second quiz-able-word-clue cells230E and230F. A phrase-clue-section283 shows a slightly modified arrangement from phrase-clue section282 ofFIG. 73. A hyperlink to phrase clue(s)285 and a phrase clue-clue cell287 are shown. Presuming selection ofhyperlink285 to the phrase clue(s),FIG. 77 is displayed.
FIG. 77 depicts a quiz-selector menu that appears over hyperlink-to-phrase-clue(s)285. It hasmenus397, a concealed-picture menu398A, a sound-clip menu398B, a video-clip menu398C, and a text-clue menu398D. Presuming selection of video-clip menu398C witharrow cursor99,FIG. 78 is displayed.
FIG. 78 depicts a “video quiz” component of the user interface. It has a heading for video-clip quiz610. A video-clip player620 displays a video-clip clue. In this case the video-clip clue is for the embedded-embedded-drill-down quiz shown inFIG. 76. Its solution is a movie name “Back to the Future”. A video-clip shown in620 might be a clip from that movie or something associated with it.
Selecting aguess button630 brings to focus the embedded-embedded drill down quiz represented inFIG. 76, except in a phrase-guessing mode. A successful answer would result in the disappearance of the embedded-embedded drill down quiz represented inFIG. 76 (after a few seconds), and its solved phrase would be displayed in phrase clue-clue cell286 ofFIG. 73. An unsuccessful answer would result in answering privilege passing to the next player in sequence (in multi-player mode) and focus returning to the “video quiz” component. Also shown with the “video quiz” component ofFIG. 78 are a “pass”button632 for passing answering privilege to the next player in sequence, a “replay”button634 for replaying the video clip, a “next clip”button636 for displaying the next video clip, and a “close”button638 for closing the “video quiz” component.
FIG. 79 depicts a “quiz navigator” component of the user interface. The quiz navigator allows players to view information about a quiz tree and facilitates quiz solution. The quiz navigator borrows the nomenclature for logically describing a QNQ introduced inFIG. 1.
The quiz navigator includes atitle bar710, amenu bar720, and anavigation device730.Navigation device730 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 phrase1410 (“A fly in the ointment”) has only the node for first quiz-able-word220A (“fly”) shown beneath it. It is presumed that only first quiz-able-word220A has had information revealed about it. An equally suitable embodiment would show all the second level nodes.Nodes740,750, and752 are presumed to be revealed.
The first quiz-able-word's first clue230A1 “Marty McFly” has first quiz-able-word220C “Marty” and second quiz-able-word220D “McFly”. It also hasphrase clue740 “Back to the Future” which is a movie name to which the character “Marty McFly” belongs. The solid circular node at740 indicates the clue is revealed. A mouse-over event occurs by positioning hand-pointer cursor95, overclue740. Then, atext bubble760A displays.Text bubble760A displays the content ofclue740 in the quiz navigator.Clues750 and752 to the first and second quiz-able-words have solid circular nodes, indicating they are revealed.
FIG. 80 shows the quiz navigator with the same quiz-tree in the same state asFIG. 79, but with hand-pointer cursor95 overclue750, displayingtext bubble760B. The displayed clue is a sports figure with a name (“Billy Martin”) that bears a similarity to the first quiz-able-word220C “Marty”. The match of answer “Marty” to clue “Billy Martin” presumes a run time comparison of words in the quiz database or else the existence of relationships that contain a match of “Marty” to the second word “Martin” ofclue750. The match would be established based on a shared character string (“Mart”) in the two words.
FIG. 81 shows the quiz navigator with the same quiz-tree in the same state as inFIGS. 79 and 80, but with hand-pointer cursor95 overclue752, displayingtext bubble760C. The match of “McFly” to the second word “McCartney” ofclue752 follows the same description as for the match of quiz “Marty” to clue “Billy Martin” shown inFIG. 80. In this case the words are matched based on their first two characters “Mc”.
FIG. 82 shows the quiz navigator with the same quiz-tree in the same state as inFIGS. 79-81, but with hand-pointer cursor95 overunrevealed clue220D, displayingtext bubble760D. Becauseclue220D is unrevealed in this hypothetical example, only a mask (hiding the word “McFly”) is show intext bubble760D.
FIG. 83 shows the quiz navigator with the same quiz-tree in the same state as inFIGS. 79-82, but with hand-pointer cursor95, over unrevealed clue230A1, displayingtext bubble760E. Because clue230A1 is unrevealed, only a mask (hiding the phrase “Marty McFly”) is shown intext bubble760E.
FIG. 84 shows the quiz navigator with the same quiz-tree in the same state as inFIGS. 79-83.FIG. 84 continues the previous hypothetical sequence. Hand-pointer cursor95 is placed overtext bubble760E and the mouse button is clicked. This action makestext bubble760E visible when the hand-pointer cursor95 is not on top of clue230A1, as shown inFIG. 85 (clue230A1 is behindtext bubble760E).
InFIG. 85, the convention ofFIG. 1 is broken somewhat in that lines are not all connected node-to-node. The line from first quiz-able-word220C joins to the firstmasked word761 oftext bubble760E to indicate that220C belongs to the first word of760E. Likewise, the line from second quiz-able-word220D joins to the secondmasked word762 oftext bubble760E. Sincephrase clue740 belongs to the entire phrase masked intext bubble760E, it is connected to the text bubble border. Color coding could also be used to increase the clarity of the relationships in the quiz navigator window.
Also show inFIG. 85 is aquiz navigator cross-hair765. This is a symbol that indicates which clue or node of the quiz-tree is active at any moment of time. The quiz navigator and the phrase component are shown in a consolidated view inFIG. 95. The quiz navigator and phrase component can be integrated. For example, double-clicking a node in the quiz navigator displays the cross-hair over it, and makes that node active in the phrase component as well. The cross-hair is dropped from the remaining figures in this sequence.
FIG. 86 shows the quiz navigator with the same quiz-tree in the same state asFIGS. 79-85. Hand-pointer cursor95 is overunrevealed clue220A, displaying a mask (hiding the word “fly”) intext bubble760F, whiletext bubble760E remains visible.
FIG. 87 shows the quiz navigator with the same quiz-tree in the same state asFIGS. 79-86. Hand-pointer cursor95 is over sample top-level phrase1410, displaying a mask (hiding the phrase “A fly in the ointment”) intext bubble760G.Text bubble760G is cut off by the border of the quiz navigator.Text bubble760E remains visible.Unrevealed clue220A is temporarily covered up; although the quiz navigator could be designed to display it with a faint outline overlain bytext bubble760G, or by repositioning760G.
FIG. 88 shows an expanded view ofmenu bar720 of the quiz navigator. Shown are view (“View”) and option (“Option”)menus722 and724 respectively. Underoption menu722 are menu items “Show Selected Clues . . . ”725 and “Show All Clues . . . ”726. The discussion ofFIGS. 83 and 84 presumes thatmenu item725 had been selected. Whenmenu item726 is selected witharrow cursor99,FIG. 89 is displayed.FIG. 89 shows the quiz navigator in a slightly expanded window. All the revealed and unrevealed node content from first quiz-able-word220A and below are shown in their respective text bubbles. Also shown istext bubble760G for sample top-level phrase1410.FIG. 89 includestext bubble760H for first quiz-able-word220C, which shows the mask for the word “Marty”.
FIG. 90 shows an expanded view ofmenu bar720 of the quiz navigator. Underview menu722 are “Branch View . . . ” and “Folder View . . . ”menu items727 and728 respectively.FIGS. 79-89 presume thatmenu item727 had been selected. Clicking onmenu item728 witharrow cursor99 changes the quiz navigator from “branch mode” to “folder mode”. Folder mode of the quiz navigator is depicted inFIGS. 91-95. Other embodiments could use a UNIX or DOS path file nomenclature or some other method for displaying the hierarchy.
FIGS. 91-93 show the quiz navigator with the same quiz-tree in the same state asFIGS. 79-89 but in folder mode.FIG. 91 shows at the top-level a folder icon andname770 for sample top-level phrase1410. One level beneath770 are folder icons andnames772,774 and776 for first, second and third filler-words218A,218B and218C respectively. Also one level beneath770 are folder icons andnames780 and790 for first and second quiz-able-words220A and220B respectively. A “plus” (“+”)sign791 indicates that a folder can be expanded to reveal additional quiz information. Clicking a mouse button witharrow cursor99 over the791 of780 expands the folder as shown inFIG. 92.
FIG. 92 shows an open folder icon andname780A for first quiz-able-word220A. One folder level below is the folder icon andname782 for first quiz-able-word's first clue230A1. Clicking a mouse button witharrow cursor99 over791 of782 expands the folder as shown inFIG. 93.
FIG. 93 shows an open folder icon andname782A for first quiz-able-word's first clue230A1. One folder-level below is a folder icon andname784 forphrase clue740, a folder icon andname786 for first quiz-able-word220C, and a folder icon andname788 for second quiz-able-word220D.
FIG. 94 shows an open folder icon andname786A for first quiz-able-word220C. One folder level below is a folder icon andname787 for clue to first quiz-able-word750. Open folder icon andname788A for second quiz-able-word220D has below it folder icon andname789 for clue to second quiz-able-word752.
FIG. 95 depicts components of the user interface as they appear in an integrated display. The integrated display includes the phrase component9512 with atitle bar9510, the quiz navigator component9540 (shown ifFIG. 85), a score-and-control component9530, and a match-parameters-display component9550. Other display components are minimized and available for selection by selecting a corresponding button.
A “Pause/Quit Match” component (not shown) can be displayed with a “Pause/Quit Match”button9560. A “Score and Control”component button9562, shown as grayed to indicate it has been selected, displays score-and-control component9530. A “Match Parameters”component button9564, shown as grayed to indicate it has been selected, displays match-parameters-display component9550. A quiznavigator component button9566, shown as grayed to indicate it has been selected, displaysquiz navigator component9540. A “Match History”component button9568, shown as grayed to indicate it has been selected, displays a “Match History” component (not shown). Aphrase component button9570, shown as grayed to indicate it has been selected, displays phrase component9512. A “My Player Console”button9572 displays a “My Player Console” (not shown). A “Chat”button9574 displays a chat component (not shown).
ADVANTAGESFrom the description above, a number of advantages of some embodiments presented become evident:
- a. A novel user interface is devised for playing quiz games with multiple logical-levels of quiz-solving. This novelty also applies to alternative embodiments where the answer to a lower clue/answer pair is not necessarily equivalent to or necessarily related to a clue to an upper clue/answer pair that is revealed by the solution of the lower answer.
- b. These embodiments are intellectually stimulating and entertaining to play. They provide participants with a new recreational activity.
- c. A tree-formulator means is devised for associating raw quiz data into quiz structures that can be persisted and played by many different players at many different times. This supports embodiments that can maintain a high degree of novelty. It also encourages embodiments that are both highly ubiquitous and accessible.
- d. A framework is devised for facilitating the creation of quiz structures, specifically described as quiz-trees. This framework can include varying degrees of automation. This allows novelty to be constantly infused into the game by the addition of new quiz-trees.
- e. A framework for customizing quiz structures based on numerous parameters is devised. These parameters will include such things as quiz-tree depth, the number of clues allowed or required under a related answer, difficulty, and category. Enhancements include the updating of a quiz database with player data to update quiz-tree and sub-quiz difficulty ratings.
- f. Customization can include personalization, such that players can create their own quiz structures and insert their own phrases and quizzes, further increasing novelty.
- g. A frameword that facilitates customization of quiz structures also facilitates the creation of quiz structures suited to predictable approximate match durations. Popular quest-type games in the prior art may lead to futility by not having a demarcated beginning and end. However, the quiz structures are generally discreet and highly customized. This lends to embodiments that will maintain their novelty and yet fit within a balanced lifestyle shared by a broad community of players.
- h. When embodiments with alternative quiz-data sources, quiz-types, and media types are considered, the potential for sustained novelty becomes even greater.
- i. The multi-player embodiments in particular lend to a rapidly expanding demand for social networking and community-based games and applications. Embodiments facilitate friends interacting online in a healthy, socially-positive manner.
- j. A runtime means is devised to allow players to play the embodiments with electronic gaming devices over the Internet to provide a high degree of accessibility.
- k. A distributed architecture permits a high degree of scalability, accessibility and ubiquity to provide the game to a vast number of players with worldwide distribution. At the same time, there is potential for very low latency in the development, distribution, and enhancement of quiz structures.
- l. The embodiments are inherently educational. Playing the embodiments can increase the knowledge and associative ability of participants. Quiz and category selection can be adapted for different subjects, ages, and grade or course levels. A high-degree of customizability allows for the development of quiz structures that support highly custom curricula. Specific text book data and other curricula can provide the raw quiz data. The features that promote sustained novelty further enhance a learning context for the embodiments by making learning fun.
- m. Many classical non-computer games have been adapted into computer and Internet games in the prior art. In some cases, the historical games have been modified and combined with one another. In contrast, the present embodiments take advantage of advances in computer hardware, software, programming technologies, and the Internet along with high-speed access to it, to devise an entirely new type of game. The present and future embodiments can take full advantage of these technological advances. This approach lends to a game that is highly feature-rich, accessible and ubiquitous. These embodiments also hold promise for a sustained, high degree of novelty.
CONCLUSION, RAMIFICATIONS, AND SCOPEAs can be seen from the present embodiments, A QNQ may:
- a. offer player control over which sub-quizzes are selected and the order of their selection;
- b. contain different quiz types in the same puzzle;
- c. contain different media types in the same puzzle;
- d. be offered in single-user and multi-player embodiments;
- e. include special rules for answering quizzes and for determining and passing control in multi-player embodiments;
- f. include a scoring system.
A QNQ is supported by a system that can be used to manage:
- a. persistent storage of quiz-structures, including node and associated data, unless an embodiment creates the structures exclusively at runtime;
- b. runtime program structures, methods and states of quiz-trees and their nodes;
- c. connectivity between distributed components;
- d. the presentation of the user interface in single-user and multi-user modes and embodiments;
- e. the presentation of quiz, score, player, game state and other data to the user interface in single-user and multi-user embodiments;
- f. match control and answering rules.
A QNQ system can also include functionality to:
- a. input, store and manage expressions that facilitate the creation of quiz-trees;
- b. create, update and customize quiz-trees;
- c. establish a match by inviting players and setting match parameters;
- d. administer a match in progress;
- e. define different roles within the system and assign persons to roles;
- f. allow players to customize their player accounts;
- g. manage history and difficulty information about quizzes and quiz-trees;
- h. incorporate statistical history and difficulty information into new matches;
- i. support integration with communication tools and community-ware;
- j. support integration with payment, advertising and marketing infrastructures;
- k. support massive multiplayer online gaming for many simultaneous matches in progress;
- l. distribute access to certain system functionality to various roles or persons, including the participants.
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.