src/pon2/app/simulator

Search:
Group by:
Source   Edit  

This module implements simulators.

Compile Options:

OptionDescriptionDefault
-d:pon2.path=<str>Path of the web studio./pon2/stable/studio/

Types

Simulator = object
  keyBindPattern*: SimulatorKeyBindPattern
Simulator for Puyo Puyo and Nazo Puyo. Source   Edit  
SimulatorEditData = object
  selecting*: tuple[cellOpt: Opt[Cell], crossOpt: Opt[bool]]
  field*: tuple[row: Row, col: Col]
  steps*: tuple[index: int, pivot: bool, col: Col]
  focusField*: bool
  insert*: bool
Edit information. Source   Edit  
SimulatorKeyBindPattern {.pure.} = enum
  Pon2, IshikawaPuyo
Simulator's key bind pattern. Source   Edit  
SimulatorKeyBinds = object
  modeToggle*: seq[KeyEvent]
  playRotateRight*: seq[KeyEvent]
  playRotateLeft*: seq[KeyEvent]
  playMoveRight*: seq[KeyEvent]
  playMoveLeft*: seq[KeyEvent]
  playForward*: seq[KeyEvent]
  playForwardSkip*: seq[KeyEvent]
  playForwardReplay*: seq[KeyEvent]
  playBackward*: seq[KeyEvent]
  playReset*: seq[KeyEvent]
  editInsertToggle*: seq[KeyEvent]
  editFocusToggle*: seq[KeyEvent]
  editRuleNext*: seq[KeyEvent]
  editRulePrev*: seq[KeyEvent]
  editCursorRight*: seq[KeyEvent]
  editCursorLeft*: seq[KeyEvent]
  editCursorUp*: seq[KeyEvent]
  editCursorDown*: seq[KeyEvent]
  editCellRed*: seq[KeyEvent]
  editCellGreen*: seq[KeyEvent]
  editCellBlue*: seq[KeyEvent]
  editCellYellow*: seq[KeyEvent]
  editCellPurple*: seq[KeyEvent]
  editCellGarbage*: seq[KeyEvent]
  editCellHard*: seq[KeyEvent]
  editCellNone*: seq[KeyEvent]
  editCellRotate*: seq[KeyEvent]
  editCellCrossRotate*: seq[KeyEvent]
  editCell0*: seq[KeyEvent]
  editCell1*: seq[KeyEvent]
  editCell2*: seq[KeyEvent]
  editCell3*: seq[KeyEvent]
  editCell4*: seq[KeyEvent]
  editCell5*: seq[KeyEvent]
  editFieldShiftRight*: seq[KeyEvent]
  editFieldShiftLeft*: seq[KeyEvent]
  editFieldShiftUp*: seq[KeyEvent]
  editFieldShiftDown*: seq[KeyEvent]
  editFieldFlip*: seq[KeyEvent]
  editUndo*: seq[KeyEvent]
  editRedo*: seq[KeyEvent]
  editForward*: seq[KeyEvent]
  editBackward*: seq[KeyEvent]
  editReset*: seq[KeyEvent]
  replayForward*: seq[KeyEvent]
  replayBackward*: seq[KeyEvent]
  replayReset*: seq[KeyEvent]
Simulator's keybinds. Source   Edit  
SimulatorMode {.pure.} = enum
  PlayViewer, PlayEditor, EditViewer, EditEditor, Replay
Simulator's mode. Source   Edit  
SimulatorState {.pure.} = enum
  Stable, WillPop, WillSettle, AfterEdit
Simulator's state. Source   Edit  

Consts

EditModes = {SimulatorMode.EditViewer, SimulatorMode.EditEditor}
Source   Edit  
EditorModes = {SimulatorMode.PlayEditor, SimulatorMode.EditEditor}
Source   Edit  
PlayModes = {SimulatorMode.PlayViewer, SimulatorMode.PlayEditor}
Source   Edit  
Pon2Path {.define: "pon2.path".} = "/pon2/stable/studio/"
Source   Edit  
SimulatorKeyBindsArray: array[SimulatorKeyBindPattern, SimulatorKeyBinds] = [(modeToggle: [
    (code: "KeyT", shift: false, ctrl: false, alt: false, meta: false)], playRotateRight: [
    (code: "KeyK", shift: false, ctrl: false, alt: false, meta: false)], playRotateLeft: [
    (code: "KeyJ", shift: false, ctrl: false, alt: false, meta: false)], playMoveRight: [
    (code: "KeyD", shift: false, ctrl: false, alt: false, meta: false)], playMoveLeft: [
    (code: "KeyA", shift: false, ctrl: false, alt: false, meta: false)], playForward: [
    (code: "KeyS", shift: false, ctrl: false, alt: false, meta: false)], playForwardSkip: [
    (code: "Space", shift: false, ctrl: false, alt: false, meta: false)], playForwardReplay: [
    (code: "KeyC", shift: false, ctrl: false, alt: false, meta: false)], playBackward: [
    (code: "KeyW", shift: false, ctrl: false, alt: false, meta: false),
    (code: "KeyX", shift: false, ctrl: false, alt: false, meta: false)], playReset: [
    (code: "KeyZ", shift: false, ctrl: false, alt: false, meta: false)], editInsertToggle: [
    (code: "KeyG", shift: false, ctrl: false, alt: false, meta: false)], editFocusToggle: [
    (code: "Tab", shift: false, ctrl: false, alt: false, meta: false)], editRuleNext: [
    (code: "KeyR", shift: false, ctrl: false, alt: false, meta: false)], editRulePrev: [
    (code: "KeyE", shift: false, ctrl: false, alt: false, meta: false)], editCursorRight: [
    (code: "KeyD", shift: false, ctrl: false, alt: false, meta: false)], editCursorLeft: [
    (code: "KeyA", shift: false, ctrl: false, alt: false, meta: false)], editCursorUp: [
    (code: "KeyW", shift: false, ctrl: false, alt: false, meta: false)], editCursorDown: [
    (code: "KeyS", shift: false, ctrl: false, alt: false, meta: false)], editCellRed: [
    (code: "KeyH", shift: false, ctrl: false, alt: false, meta: false)], editCellGreen: [
    (code: "KeyJ", shift: false, ctrl: false, alt: false, meta: false)], editCellBlue: [
    (code: "KeyK", shift: false, ctrl: false, alt: false, meta: false)], editCellYellow: [
    (code: "KeyL", shift: false, ctrl: false, alt: false, meta: false)], editCellPurple: [
    (code: "Semicolon", shift: false, ctrl: false, alt: false, meta: false)], editCellGarbage: [
    (code: "KeyO", shift: false, ctrl: false, alt: false, meta: false)], editCellHard: [
    (code: "KeyP", shift: false, ctrl: false, alt: false, meta: false)], editCellNone: [
    (code: "Space", shift: false, ctrl: false, alt: false, meta: false)], editCellRotate: [
    (code: "KeyN", shift: false, ctrl: false, alt: false, meta: false)], editCellCrossRotate: [
    (code: "KeyM", shift: false, ctrl: false, alt: false, meta: false)], editCell0: [
    (code: "Digit0", shift: false, ctrl: false, alt: false, meta: false)], editCell1: [
    (code: "Digit1", shift: false, ctrl: false, alt: false, meta: false)], editCell2: [
    (code: "Digit2", shift: false, ctrl: false, alt: false, meta: false)], editCell3: [
    (code: "Digit3", shift: false, ctrl: false, alt: false, meta: false)], editCell4: [
    (code: "Digit4", shift: false, ctrl: false, alt: false, meta: false)], editCell5: [
    (code: "Digit5", shift: false, ctrl: false, alt: false, meta: false)], editFieldShiftRight: [
    (code: "KeyD", shift: true, ctrl: false, alt: false, meta: false)], editFieldShiftLeft: [
    (code: "KeyA", shift: true, ctrl: false, alt: false, meta: false)], editFieldShiftUp: [
    (code: "KeyW", shift: true, ctrl: false, alt: false, meta: false)], editFieldShiftDown: [
    (code: "KeyS", shift: true, ctrl: false, alt: false, meta: false)], editFieldFlip: [
    (code: "KeyF", shift: false, ctrl: false, alt: false, meta: false)], editUndo: [
    (code: "KeyZ", shift: true, ctrl: false, alt: false, meta: false)], editRedo: [
    (code: "KeyX", shift: true, ctrl: false, alt: false, meta: false)], editForward: [
    (code: "KeyC", shift: false, ctrl: false, alt: false, meta: false)], editBackward: [
    (code: "KeyX", shift: false, ctrl: false, alt: false, meta: false)], editReset: [
    (code: "KeyZ", shift: false, ctrl: false, alt: false, meta: false)], replayForward: [
    (code: "KeyS", shift: false, ctrl: false, alt: false, meta: false),
    (code: "KeyC", shift: false, ctrl: false, alt: false, meta: false)], replayBackward: [
    (code: "KeyW", shift: false, ctrl: false, alt: false, meta: false),
    (code: "KeyX", shift: false, ctrl: false, alt: false, meta: false)], replayReset: [
    (code: "KeyW", shift: true, ctrl: false, alt: false, meta: false),
    (code: "KeyZ", shift: false, ctrl: false, alt: false, meta: false)]), (modeToggle: [
    (code: "KeyT", shift: false, ctrl: false, alt: false, meta: false)], playRotateRight: [
    (code: "KeyX", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit3", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit5", shift: false, ctrl: false, alt: false, meta: false),
    (code: "KeyL", shift: false, ctrl: false, alt: false, meta: false)], playRotateLeft: [
    (code: "KeyZ", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit1", shift: false, ctrl: false, alt: false, meta: false),
    (code: "KeyK", shift: false, ctrl: false, alt: false, meta: false)], playMoveRight: [
    (code: "KeyM", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit6", shift: false, ctrl: false, alt: false, meta: false)], playMoveLeft: [
    (code: "KeyB", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit4", shift: false, ctrl: false, alt: false, meta: false)], playForward: [
    (code: "KeyN", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit2", shift: false, ctrl: false, alt: false, meta: false)], playForwardSkip: [
    (code: "Space", shift: false, ctrl: false, alt: false, meta: false)], playForwardReplay: [
    (code: "Digit9", shift: false, ctrl: false, alt: false, meta: false)], playBackward: [
    (code: "KeyH", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit8", shift: false, ctrl: false, alt: false, meta: false)], playReset: [
    (code: "Digit7", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit0", shift: false, ctrl: false, alt: false, meta: false)], editInsertToggle: [
    (code: "KeyY", shift: false, ctrl: false, alt: false, meta: false)], editFocusToggle: [
    (code: "Tab", shift: false, ctrl: false, alt: false, meta: false)], editRuleNext: [
    (code: "KeyI", shift: false, ctrl: false, alt: false, meta: false)], editRulePrev: [
    (code: "KeyU", shift: false, ctrl: false, alt: false, meta: false)], editCursorRight: [
    (code: "KeyM", shift: false, ctrl: false, alt: false, meta: false)], editCursorLeft: [
    (code: "KeyB", shift: false, ctrl: false, alt: false, meta: false)], editCursorUp: [
    (code: "KeyH", shift: false, ctrl: false, alt: false, meta: false)], editCursorDown: [
    (code: "KeyN", shift: false, ctrl: false, alt: false, meta: false)], editCellRed: [
    (code: "KeyG", shift: false, ctrl: false, alt: false, meta: false)], editCellGreen: [
    (code: "KeyF", shift: false, ctrl: false, alt: false, meta: false)], editCellBlue: [
    (code: "KeyD", shift: false, ctrl: false, alt: false, meta: false)], editCellYellow: [
    (code: "KeyS", shift: false, ctrl: false, alt: false, meta: false)], editCellPurple: [
    (code: "KeyA", shift: false, ctrl: false, alt: false, meta: false)], editCellGarbage: [
    (code: "KeyW", shift: false, ctrl: false, alt: false, meta: false)], editCellHard: [
    (code: "KeyQ", shift: false, ctrl: false, alt: false, meta: false)], editCellNone: [
    (code: "Space", shift: false, ctrl: false, alt: false, meta: false)], editCellRotate: [
    (code: "KeyV", shift: false, ctrl: false, alt: false, meta: false)], editCellCrossRotate: [
    (code: "KeyC", shift: false, ctrl: false, alt: false, meta: false)],
    editCell0: [], editCell1: [], editCell2: [], editCell3: [], editCell4: [],
    editCell5: [], editFieldShiftRight: [
    (code: "KeyM", shift: true, ctrl: false, alt: false, meta: false)], editFieldShiftLeft: [
    (code: "KeyB", shift: true, ctrl: false, alt: false, meta: false)], editFieldShiftUp: [
    (code: "KeyH", shift: true, ctrl: false, alt: false, meta: false)], editFieldShiftDown: [
    (code: "KeyN", shift: true, ctrl: false, alt: false, meta: false)], editFieldFlip: [
    (code: "KeyJ", shift: false, ctrl: false, alt: false, meta: false)], editUndo: [
    (code: "KeyZ", shift: true, ctrl: false, alt: false, meta: false)], editRedo: [
    (code: "KeyX", shift: true, ctrl: false, alt: false, meta: false)], editForward: [
    (code: "Digit9", shift: false, ctrl: false, alt: false, meta: false)], editBackward: [
    (code: "Digit8", shift: false, ctrl: false, alt: false, meta: false)], editReset: [
    (code: "Digit7", shift: false, ctrl: false, alt: false, meta: false)], replayForward: [
    (code: "KeyN", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit9", shift: false, ctrl: false, alt: false, meta: false)], replayBackward: [
    (code: "KeyH", shift: false, ctrl: false, alt: false, meta: false),
    (code: "Digit8", shift: false, ctrl: false, alt: false, meta: false)], replayReset: [
    (code: "KeyH", shift: true, ctrl: false, alt: false, meta: false),
    (code: "Digit7", shift: false, ctrl: false, alt: false, meta: false)])]
Source   Edit  
ViewerModes = {SimulatorMode.PlayViewer, SimulatorMode.EditViewer}
Source   Edit  

Procs

func backward(self: var Simulator; detail = false) {....raises: [], tags: [],
    forbids: [].}
Backwards the simulator. Source   Edit  
func delStep(self: var Simulator; index: int) {....raises: [], tags: [],
    forbids: [].}
Deletes the step at the specified index. Source   Edit  
func editData(self: Simulator): SimulatorEditData {....raises: [], tags: [],
    forbids: [].}
Returns the edit information of the simulator. Source   Edit  
func flip(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Flips the field or the step. Source   Edit  
func flipFieldHorizontal(self: var Simulator) {....raises: [], tags: [],
    forbids: [].}
Flips the field horizontally. Source   Edit  
func flipFieldVertical(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Flips the field vertically. Source   Edit  
func forward(self: var Simulator; replay = false; skip = false) {....raises: [],
    tags: [], forbids: [].}
Forwards the simulator. This functions requires that the initial field is settled. skip is prioritized over replay. Source   Edit  
func goalClearColorOpt=(self: var Simulator; clearColorOpt: Opt[GoalColor]) {.
    ...raises: [], tags: [], forbids: [].}
Sets the goal clear color. Source   Edit  
func goalColor=(self: var Simulator; color: GoalColor) {....raises: [], tags: [],
    forbids: [].}
Sets the goal color. Source   Edit  
func goalKindOpt=(self: var Simulator; kindOpt: Opt[GoalKind]) {....raises: [],
    tags: [], forbids: [].}
Sets the goal kind. Source   Edit  
func goalOperator=(self: var Simulator; operator: GoalOperator) {....raises: [],
    tags: [], forbids: [].}
Sets the goal operator. Source   Edit  
func goalVal=(self: var Simulator; val: int) {....raises: [], tags: [], forbids: [].}
Sets the goal value. Source   Edit  
func init(T: type Simulator; mode = DefaultMode;
          keyBindPattern = SimulatorKeyBindPattern.Pon2): T:type {....raises: [].}
Source   Edit  
func init(T: type Simulator; nazoPuyo: NazoPuyo; mode = DefaultMode;
          keyBindPattern = SimulatorKeyBindPattern.Pon2): T:type {....raises: [].}
Source   Edit  
func init(T: type Simulator; puyoPuyo: PuyoPuyo; mode = DefaultMode;
          keyBindPattern = SimulatorKeyBindPattern.Pon2): T:type {....raises: [].}
Source   Edit  
func mark(self: Simulator): MarkResult {....raises: [], tags: [], forbids: [].}
Marks the steps in the Nazo Puyo in the simulator. Source   Edit  
func mode(self: Simulator): SimulatorMode {....raises: [], tags: [], forbids: [].}
Returns the mode of the simulator. Source   Edit  
func mode=(self: var Simulator; mode: SimulatorMode) {....raises: [], tags: [],
    forbids: [].}
Sets the mode of the simulator. Source   Edit  
func moveCursorDown(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Moves the cursor downward. Source   Edit  
func moveCursorLeft(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Moves the cursor leftward. Source   Edit  
func moveCursorRight(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Moves the cursor rightward. Source   Edit  
func moveCursorUp(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Moves the cursor upward. Source   Edit  
func movePlacementLeft(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Moves the next placement left. Source   Edit  
func movePlacementRight(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Moves the next placement right. Source   Edit  
func moveResult(self: Simulator): MoveResult {....raises: [], tags: [], forbids: [].}
Returns the moving result of the simulator. Source   Edit  
func nazoPuyo(self: Simulator): NazoPuyo {....raises: [], tags: [], forbids: [].}
Returns the Nazo Puyo in the simulator. Source   Edit  
func normalizeGoal(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Normalizes the goal. This function does not affects undo/redo. Source   Edit  
func operate(self: var Simulator; key: KeyEvent): bool {.discardable,
    ...raises: [], tags: [], forbids: [].}
Performs an action specified by the key. Returns true if the key is handled. Source   Edit  
func operating(self: Simulator): tuple[index: int, placement: Placement] {.
    ...raises: [], tags: [], forbids: [].}
Returns the operating data of the simulator. Source   Edit  
func parseSimulator(uri: Uri): Pon2Result[Simulator] {....raises: [], tags: [],
    forbids: [].}
Returns the simulator converted from the URI. Viewer modes are set to the result simulator preferentially if the FQDN is IshikawaPuyo or Ips. Source   Edit  
func redo(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Performs redo. Source   Edit  
func reset(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Backwards the simulator to the pre-move state. Source   Edit  
func rotatePlacementLeft(self: var Simulator) {....raises: [], tags: [],
    forbids: [].}
Rotates the next placement left (counterclockwise). Source   Edit  
func rotatePlacementRight(self: var Simulator) {....raises: [], tags: [],
    forbids: [].}
Rotates the next placement right (clockwise). Source   Edit  
func rule(self: Simulator): Rule {....raises: [], tags: [], forbids: [].}
Returns the rule of the Nazo Puyo in the simulator. Source   Edit  
func rule=(self: var Simulator; rule: Rule) {....raises: [], tags: [], forbids: [].}
Sets the rule of the simulator. Source   Edit  
func selectingCell=(self: var Simulator; cell: Cell) {....raises: [], tags: [],
    forbids: [].}
Sets the selecting cell. Source   Edit  
func selectingCross=(self: var Simulator; cross: bool) {....raises: [], tags: [],
    forbids: [].}
Sets the selecting cross. Source   Edit  
func setRule(self: var Simulator; rule: Rule) {....raises: [], tags: [],
    forbids: [].}
Sets the rule of the simulator. This function is a "safe" version. Source   Edit  
func shiftFieldDown(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Shifts the field downward. Source   Edit  
func shiftFieldLeft(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Shifts the field leftward. Source   Edit  
func shiftFieldRight(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Shifts the field rightward. Source   Edit  
func shiftFieldUp(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Shifts the field upward. Source   Edit  
func state(self: Simulator): SimulatorState {....raises: [], tags: [], forbids: [].}
Returns the state of the simulator. Source   Edit  
func toExportUri(self: Simulator; viewer = true; clearPlacements = true;
                 fqdn = SimulatorFqdn.Pon2): Pon2Result[Uri] {....raises: [],
    tags: [], forbids: [].}
Returns the URI of the simulator with any moves reset. Source   Edit  
func toggleFocus(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Toggles focusing field or not. Source   Edit  
func toggleInsert(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Toggles inserting or not. Source   Edit  
func toUri(self: Simulator; clearPlacements = false; fqdn = SimulatorFqdn.Pon2): Pon2Result[
    Uri] {....raises: [], tags: [], forbids: [].}
Returns the URI converted from the simulator. Source   Edit  
func undo(self: var Simulator) {....raises: [], tags: [], forbids: [].}
Performs undo. Source   Edit  
func writeCell(self: var Simulator; cell: Cell) {....raises: [], tags: [],
    forbids: [].}
Writes the cell to the selecting position in the field or steps. Source   Edit  
func writeCell(self: var Simulator; index: int; pivot: bool) {....raises: [],
    tags: [], forbids: [].}
Writes the selecting cell to the specified position in the steps. Source   Edit  
func writeCell(self: var Simulator; row: Row; col: Col) {....raises: [], tags: [],
    forbids: [].}
Writes the selecting cell to the specified position in the field. Source   Edit  
func writeCount(self: var Simulator; count: int) {....raises: [], tags: [],
    forbids: [].}
Writes the nuisance count to the selecting position in the steps. Source   Edit  
func writeCount(self: var Simulator; index: int; col: Col; count: int) {.
    ...raises: [], tags: [], forbids: [].}
Writes the nuisance count to the specified position in the steps. Source   Edit  
func writeCountClamp(self: var Simulator; index: int; col: Col; count: int) {.
    ...raises: [], tags: [], forbids: [].}
Writes the nuisance clamped count to the specified position in the steps. Source   Edit  
func writeCross(self: var Simulator; cross: bool) {....raises: [], tags: [],
    forbids: [].}
Writes the rotation to the selecting position in the steps. Source   Edit  
func writeCross(self: var Simulator; index: int) {....raises: [], tags: [],
    forbids: [].}
Writes the selecting rotation to the specified position in the steps. Source   Edit  

Exports

puyoCount, $, cellCount, puyoCount, parsePlacement, moveLeft, DeadRule, score, puyoCount, del, rotatedLeft, $, init, cellCount, Field, puyoCount, nuisancePuyoCount, swapped, init, MoveResult, parseRule, mark, validDoublePlacements, coloredPuyoCount, pivotCol, init, ==, parseNazoPuyo, coloredPuyoCounts, init, parseStep, NuisancePuyos, Width, init, $, Rule, GoalOperator, Pair, toUriQuery, cellCount, isNormalized, $, movedLeft, GoalMain, rotateRight, AirHeight, puyoCount, MarkResult, connection2Vertical, colorsSeq, del, init, shiftRight, rotor, isValid, init, canPop, $, Steps, toUriQuery, ActualPlacements, Dir, init, cellCount, invalidPlacements, connection3, []=, shiftUp, puyoCount, NoneGoalColor, parseGoal, connection2Horizontal, init, rotatedRight, dropNuisance, placeCounts, toUriQuery, rotateLeft, SimulatorFqdn, nuisancePuyoCount, cellCount, init, init, parseSteps, nuisancePuyoCount, validPlacements, toUriQuery, DoublePlacements, movedRight, init, toUriQuery, parsePair, Notice, coloredPuyoCount, cellCount, nuisancePuyoCount, WaterTopRow, StepKind, init, cellCounts, Physics, isDouble, swap, WaterHeight, coloredPuyoCount, connection2, Col, Step, coloredPuyoCount, insert, toArray, parseSimulatorFqdn, init, parsePuyoPuyo, Cell, connectionCounts, rotorDir, init, Puyos, parseNazoPuyo, NoneGoalMain, parsePuyoPuyo, [], apply, puyoCount, nuisancePuyoCounts, ColoredPuyos, Behaviour, toField, noticeCounts, pivot=, Height, context, $, connection3LShape, isSupported, parseGoal, init, ==, isSettled, connectionCounts, PopResult, placeCounts, rotate, init, nuisancePuyoCount, toUriQuery, init, init, coloredPuyoCount, Row, isPopped, NoColorKinds, nuisancePuyoCount, init, init, parseStep, mpairs, connection3Horizontal, Placement, flipHorizontal, parseField, parsePair, isDead, puyoCounts, init, shiftDown, rotorCol, init, PuyoPuyo, init, flipVertical, pivot, Behaviours, shiftLeft, parseSteps, NazoPuyo, init, move, colors, parsePlacement, nuisancePuyoCount, toUriQuery, init, parseField, AirBottomRow, parseCell, cellCount, ColorKinds, normalized, place, insert, connectionCounts, GoalColor, Goal, Pon2Result, crossRotate, rotor=, init, connection3Vertical, noticeCounts, settle, toDeque, toUriQuery, coloredPuyoCount, moveRight, hardToGarbageCount, init, move, pop, NoneGoal, coloredPuyoCount, normalize, GoalKind, KeyEventShiftE, KeyEventShiftZ, KeyEvent4, KeyEventI, init, KeyEventShiftN, KeyEventShiftX, KeyEventS, KeyEventU, KeyEventP, KeyEvent7, KeyEventShiftK, KeyEventC, KeyEventQ, KeyEventT, KeyEventF, KeyEvent2, KeyEvent5, KeyEventShiftC, KeyEvent8, KeyEvent9, KeyEventShiftQ, KeyEvent6, KeyEventJ, KeyEventShiftD, KeyEventShiftI, KeyEventK, KeyEventB, KeyEventTab, KeyEventShiftV, KeyEventH, KeyEventShiftY, KeyEventShiftW, KeyEventY, KeyEventSpace, KeyEventShiftB, KeyEventShiftG, KeyEventL, KeyEventShiftO, KeyEventE, KeyEventShiftU, KeyEvent3, KeyEventD, KeyEventM, KeyEventEnter, KeyEventX, KeyEventO, KeyEventN, KeyEventSemicolon, KeyEvent, KeyEventShiftL, KeyEvent0, KeyEventShiftT, KeyEventG, KeyEventA, KeyEventZ, KeyEventShiftJ, KeyEventShiftA, KeyEventShiftR, KeyEventShiftH, KeyEventV, KeyEventShiftEnter, KeyEventShiftM, KeyEventShiftTab, KeyEventR, KeyEventShiftS, KeyEventShiftP, KeyEventShiftF, KeyEvent1, KeyEventW, updatedQuery