shogiops
Version:
Shogi rules and operations
50 lines • 1.9 kB
TypeScript
import type { Square } from './types.js';
export type BitRows = [number, number, number, number, number, number, number, number];
export declare class SquareSet implements Iterable<Square> {
readonly dRows: BitRows;
constructor(dRows: BitRows);
static full(): SquareSet;
static empty(): SquareSet;
static fromSquare(square: Square): SquareSet;
static fromSquares(...squares: Square[]): SquareSet;
static fromRank(rank: number): SquareSet;
static fromFile(file: number): SquareSet;
static ranksAbove(rank: number): SquareSet;
static ranksBelow(rank: number): SquareSet;
complement(): SquareSet;
xor(other: SquareSet): SquareSet;
union(other: SquareSet): SquareSet;
intersect(other: SquareSet): SquareSet;
diff(other: SquareSet): SquareSet;
intersects(other: SquareSet): boolean;
isDisjoint(other: SquareSet): boolean;
supersetOf(other: SquareSet): boolean;
subsetOf(other: SquareSet): boolean;
shr256(shift: number): SquareSet;
shl256(shift: number): SquareSet;
rowSwap256(): SquareSet;
rbit256(): SquareSet;
minus256(other: SquareSet): SquareSet;
equals(other: SquareSet): boolean;
size(): number;
isEmpty(): boolean;
nonEmpty(): boolean;
has(square: Square): boolean;
set(square: Square, on: boolean): SquareSet;
with(square: Square): SquareSet;
withMany(...squares: Square[]): SquareSet;
without(square: Square): SquareSet;
withoutMany(...squares: Square[]): SquareSet;
toggle(square: Square): SquareSet;
first(): Square | undefined;
last(): Square | undefined;
withoutFirst(): SquareSet;
moreThanOne(): boolean;
singleSquare(): Square | undefined;
isSingleSquare(): boolean;
hex(): string;
visual(): string;
[Symbol.iterator](): Iterator<Square>;
reversed(): Iterable<Square>;
}
//# sourceMappingURL=square-set.d.ts.map