minesweeper-for-web
Version:
Minesweeper as a WebComponent.
37 lines • 1.54 kB
TypeScript
import { GameModeConfiguration } from '../types/index.js';
export declare class MinesweeperBoard {
#private;
private gameModeConfiguration;
constructor(gameModeConfiguration: GameModeConfiguration);
get rows(): number;
get columns(): number;
get bombs(): number;
get positions(): ReadonlyArray<ReadonlyArray<string | number>>;
get flags(): ReadonlyArray<ReadonlyArray<boolean>>;
get flagCounter(): number;
get questionMarks(): ReadonlyArray<ReadonlyArray<boolean>>;
get revealedFields(): ReadonlyArray<ReadonlyArray<boolean>>;
private generate2dFields;
private placeBombs;
/**
* Calculates a random set of indices where bombs are located on the field
* @returns List of indices of bomb #positions
*/
private calculateRandomBombIndices;
/**
* Calculates for every field, except the fields with bombs, how many neighbor bombs are present.
*/
private applyFieldNumbers;
revealField(row: number, column: number): string | number;
private expand;
/**
* @returns List of Neighbors, every entry contains a row and a column index
*/
private getNeighbors;
addFlag(selectedRow: number, selectedColumn: number): void;
removeFlag(selectedRow: number, selectedColumn: number): void;
addQuestionMark(selectedRow: number, selectedColumn: number): void;
removeQuestionMark(selectedRow: number, selectedColumn: number): void;
revealBombs(bombsAsFlags?: boolean): void;
}
//# sourceMappingURL=MinesweeperBoard.d.ts.map