Options
All
  • Public
  • Public/Protected
  • All
Menu

Viewer class for the Mystery Master Logic Puzzle Solver.

copyright

mysterymaster.com. All rights reserved.

author

Michael Benson

version

2021-08-31

Hierarchy

  • Viewer

Implements

Index

Constructors

constructor

  • new Viewer(okAllPuzzles?: boolean, okSavePuzzle?: boolean, okSaveSolved?: boolean): Viewer
  • Initializes viewer.

    Parameters

    • okAllPuzzles: boolean = false

      Flag to load and solve all puzzles.

    • okSavePuzzle: boolean = false

      Flag to save puzzle parts to files.

    • okSaveSolved: boolean = false

      Flag to save solved parts to files.

    Returns Viewer

Properties

Private board

board: IBoard = null

Private nodeFlag

nodeFlag: boolean = ...

Determines if running on server (true) or browser (false).

Private okAllPuzzles

okAllPuzzles: boolean = false

Flag to load and solve all puzzles.

Private okAutorun

okAutorun: boolean = false

Private okPauseAll

okPauseAll: boolean = false

Private okPauseGuess

okPauseGuess: boolean = false

Private okPauseLevel

okPauseLevel: boolean = false

Private okPauseMark

okPauseMark: boolean = false

Private okPauseNext

okPauseNext: boolean = false

Private okPausePlacers

okPausePlacers: boolean = false

Private okPauseSolution

okPauseSolution: boolean = true

Private okPauseTrigger

okPauseTrigger: boolean = false

Private okPauseViolation

okPauseViolation: boolean = false

okRechart

okRechart: boolean = false

Private okSavePuzzle

okSavePuzzle: boolean = false

Flag to save puzzle parts to files.

Private okSaveSolved

okSaveSolved: boolean = false

Flag to save solved parts to files.

puzzle

puzzle: Puzzle = null

Private puzzleNames

puzzleNames: string[] = []

Names of puzzle modules. Server only.

Private puzzleNum

puzzleNum: number = -1

Zero-based number of puzzle module. Server only.

Private setup

setup: ISetup = null

solver

solver: Solver = null

Private tabby

tabby: ITabby = null

Methods

asString

  • asString(): string
  • Returns string

clickGridCell

  • clickGridCell(t1: number, n1: number, t2: number, n2: number, v: number): void
  • Determines nouns based on clicked cell and Grid Verb. Called by UIX.clickGridCell.

    Parameters

    • t1: number

      Zero-based index of noun type 1.

    • n1: number

      Zero-based index of noun 1.

    • t2: number

      Zero-based index of noun type 2.

    • n2: number

      Zero-based index of noun 2.

    • v: number

      Zero-based number of the current verb.

    Returns void

Private doNextPuzzle

  • doNextPuzzle(): void
  • Loads and solves next puzzle in puzzles folder if nodeFlag and okAllPuzzles are both true. Called by constructor, sayPause.

    Returns void

doPause

  • doPause(): void
  • Sets "Pause Next" flag to true. Called when user clicks Pause button.

    Returns void

doQuit

  • doQuit(): void
  • Stops solving puzzle. Called when user clicks Quit button.

    Returns void

doReset

  • doReset(): void
  • Resets viewer. Called when user clicks Reset button.

    Returns void

doResume

  • doResume(): void
  • Calls the callback function set by the solver. Called by sayPause and when user clicks Resume button.

    Returns void

doWork

  • doWork(): void
  • Invokes the solver to solve the logic puzzle. Called when user clicks Solve button, or setPuzzle if autoRun is true.

    Returns void

Private reset

  • reset(): void
  • Resets the puzzle, solver, and viewer. Called by doSolve, doReset.

    Returns void

sayAddMark

  • sayAddMark(mark: Mark): void
  • Event 05. Updates UI when mark is entered.

    Parameters

    Returns void

sayContradiction

  • sayContradiction(msg: string): void
  • Event 08. Updates UI when potential mark contradicts an existing mark.

    Parameters

    • msg: string

    Returns void

sayFactViolation

  • sayFactViolation(msg: string, mark: Mark, fact: Fact): void
  • Event 09. Updates UI when mark violates a fact.

    Parameters

    Returns void

sayLawViolation

  • sayLawViolation(msg: string, mark: Mark): void
  • Event 11. Updates UI when mark violates a law.

    Parameters

    • msg: string
    • mark: Mark

    Returns void

sayLevel

  • sayLevel(msg: string): void
  • Event 03. Updates UI when level changes.

    Parameters

    • msg: string

    Returns void

Private sayMessage

  • sayMessage(msg: string): void
  • Sets message field of Board form. Called by clickGridCell, sayPause.

    Parameters

    • msg: string

      Message.

    Returns void

Private sayPause

  • sayPause(evn: SayEvent, msg: string, okPause: boolean): void
  • Displays pause message, otherwise calls doResume method. Called by sayX methods.

    Parameters

    • evn: SayEvent

      "Say Event" number.

    • msg: string

      Message.

    • okPause: boolean

      Pause flag.

    Returns void

sayPlacers

  • sayPlacers(mark: Mark, rule: Rule): void
  • Event 12. Updates UI when rule updates one or more nouns.

    Parameters

    Returns void

sayRemoveMark

  • sayRemoveMark(msg: string, mark: Mark): void
  • Event 06. Updates UI when mark is removed.

    Parameters

    • msg: string
    • mark: Mark

    Returns void

sayRuleViolation

  • sayRuleViolation(msg: string, mark: Mark, rule: Rule): void
  • Event 10. Updates UI when mark violates a rule.

    Parameters

    Returns void

saySolution

  • saySolution(msg: string, elapsedTime: number): void
  • Event 04. Updates UI when solution is found.

    Parameters

    • msg: string
    • elapsedTime: number

    Returns void

sayStarted

  • sayStarted(msg: string): void
  • Event 01. Updates UI when solver starts solving a puzzle.

    Parameters

    • msg: string

    Returns void

sayStopped

  • sayStopped(msg: string, elapsedTime: number): void
  • Event 02. Updates UI when solver stops solving a puzzle.

    Parameters

    • msg: string
    • elapsedTime: number

    Returns void

Private sayTuple

  • sayTuple(key: string, val: boolean): void
  • Default for sending key/val tuples. Example: okFinder, okLawyer. TODO: Not Used?

    Parameters

    • key: string

      Key.

    • val: boolean

      Value.

    Returns void

sayValidMark

  • sayValidMark(msg: string, mark: Mark): void
  • Event 07. Updates UI when mark is validated.

    Parameters

    • msg: string
    • mark: Mark

    Returns void

setPuzzle

  • setPuzzle(puzzle: Puzzle): void
  • Sets and validates the puzzle. Also solves if autorun is true. Called by Node.js script (server) or web page (browser).

    Parameters

    • puzzle: Puzzle

      Puzzle object.

    Returns void

toString

  • toString(): string
  • Returns string

toggleFact

  • toggleFact(num: number): void
  • Toggles enabled property of fact given its one-based number. If no marks are entered, also overrides initEnabled property of fact. Called by UIX.toggleFact.

    Parameters

    • num: number

      One-based number of fact.

    Returns void

toggleRule

  • toggleRule(num: number): void
  • Toggles enabled property of rule given its one-based number. If no marks are entered, also overrides initEnabled property of rule. Called by UIX.toggleRule.

    Parameters

    • num: number

      One-based number of rule.

    Returns void

undoUserMark

  • undoUserMark(): void
  • Undo marks back to and including last mark entered by user. Called by UIX.undoUserMark.

    Returns void

updateChartCol1

  • updateChartCol1(icol: number): void
  • Updates the Chart form. Called by UIX.updateChartCol1.

    Parameters

    • icol: number

      One-based number of first noun type to display.

    Returns void

updateOption

  • updateOption(key: string, val: boolean): void
  • Sets an option. Called by setup.updateField.

    Parameters

    • key: string

      Key.

    • val: boolean

      Value.

    Returns void

Generated using TypeDoc