Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 259x 259x 259x 259x 1x 1x 7x 7x 7x 7x 1x 1x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 1x | import {Position} from "./position";
/** used for macro calls */
export class VirtualPosition extends Position {
public readonly vrow: number;
public readonly vcol: number;
public constructor(virtual: Position, row: number, col: number) {
super(virtual.getRow(), virtual.getCol());
this.vrow = row;
this.vcol = col;
}
public equals(p: Position): boolean {
if (!(p instanceof VirtualPosition)) {
return false;
}
const casted: VirtualPosition = p as VirtualPosition;
return super.equals(this) && this.vrow === casted.vrow && this.vcol === casted.vcol;
}
public isAfter(p: Position | VirtualPosition): boolean {
if (p instanceof VirtualPosition) {
if (this.getRow() > p.getRow()) {
return true;
}
if (this.getRow() === p.getRow() && this.getCol() > p.getCol()) {
return true;
}
if (this.getRow() === p.getRow() && this.getCol() === p.getCol() && this.vrow > p.vrow) {
return true;
}
if (this.getRow() === p.getRow() && this.getCol() === p.getCol() && this.vrow === p.vrow && this.vcol > p.vcol) {
return true;
}
return false;
} else {
return super.isAfter(p);
}
}
}
|