Mark class for the Mystery Master Logic Puzzle Solver.

Michael Benson

2021-08-01

Constructors

  • Parameters

    • num: number

    Returns Mark

Properties

facts: Fact[] = []
guess: boolean = false
levelNum: number = 0
levelSub: string = ' '
noun1: Noun = null
noun2: Noun = null
num: number
offFacts: Fact[] = []
placers: Noun[] = []
reason: string = ""
refMark: Mark = null
refNum: number = 0
refSub: string = ' '
rulePlacers: Noun[] = []
type: MarkType = Mark.Type.None
valid: boolean = false
verb: Verb = null
getTypeByNumber: (num: number) => MarkType = ...
Type: {
    Law: { name: string; num: number };
    Level: { name: string; num: number };
    None: { name: string; num: number };
    Rule: { name: string; num: number };
    User: { name: string; num: number };
} = ...

Methods

  • Adds noun to rule placers array. Example: Rule 4 of "Dandy Salespeople" calls this to find the ages. Called by the puzzle's rule function. Note: Force value to be string. Do NOT add placer if noun already has value!

    Parameters

    • noun: Noun

      Noun updated by rule.

    • value: string | number

      New name/title of noun.

    Returns void

  • Returns string

  • Returns void

  • Returns void

  • Returns string

  • Parameters

    Returns string

  • Determines if mark has any nouns that were updated by any rule. Called by viewer.sayRemoveMark.

    Returns boolean

    Boolean true/false.

  • Determines if latest rule invoked on mark updated any nouns. This leads to solver.sayPlacers, which tells UI there are rule placers. Called by lawyer.doRules.

    Returns boolean

    Boolean true/false.

  • Returns void

  • Returns string

  • Enables facts disabled by mark. Called by solver.removeMark.

    Returns void