Reference · Rules, solvers and generation
dragFingerfunction
A finger over finger, drawing the line of pair, with the reach it had:
the lines after it and the reach now. This is dragThrough for a board with
portals; on a board without them the reach stays none and it is the same.
Import it
import { dragFinger } from "@johnmorrisdotca/tsunagi";
Definition
function dragFinger(layout: LinkLayout, lines: Lines, pair: number, finger: number, reach?: Reach): { lines: Lines; reach: Reach; }
Parameters
| Name | Type | Description |
|---|---|---|
layout | LinkLayout | The decoded native board and its rule settings. |
lines | Lines | The native cell lists for every pair. |
pair | number | The zero-based pair index. |
finger | number | The current finger target cell. |
reach (optional) | Reach | The previous drag direction for continuous pointer movement. |
Returns
{ lines: Lines; reach: Reach; }
A finger over finger, drawing the line of pair, with the reach it had: the lines after it and the reach now. This is dragThrough for a board with portals; on a board without them the reach stays none and it is the same.
Examples
import { TSUNAGI_4 } from "@johnmorrisdotca/tsunagi/levels-4";
import { decodeLayout, dragFinger, noLines } from "@johnmorrisdotca/tsunagi";
const givens = TSUNAGI_4[0][0];
const layout = decodeLayout(givens,4)!;
const lines = noLines(layout);
console.log(dragFinger(layout,lines,0,layout.ends[0][0]));{ lines: [ [], [], [], [] ], reach: { dr: 0, dc: 0 } }What it prints (run when this page was built)