aboutsummaryrefslogtreecommitdiff
path: root/src/Board/Board.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/Board/Board.ts')
-rw-r--r--src/Board/Board.ts50
1 files changed, 41 insertions, 9 deletions
diff --git a/src/Board/Board.ts b/src/Board/Board.ts
index 1525c6c..ef4b4a5 100644
--- a/src/Board/Board.ts
+++ b/src/Board/Board.ts
@@ -17,13 +17,42 @@ export default class Board {
const maxY = _.maxBy(this.tiles, 'position.y').position.y;
const minY = _.minBy(this.tiles, 'position.y').position.y;
+ const maxX = _.maxBy(this.tiles, 'position.x').position.x;
+ const minX = _.minBy(this.tiles, 'position.x').position.x;
+
_.range(maxY, minY - 1, -1)
- .map(y => {
+ .map((y: number) => {
const rowTiles = _.filter(this.tiles, { position: { y } });
- // console.log({ rowTiles, y });
- console.log(rowTiles.map(tile => ` ${tile.sides[North]} `).join());
- console.log(rowTiles.map(tile => `${tile.sides[West]}${tile.center}${tile.sides[East]}`).join());
- console.log(rowTiles.map(tile => ` ${tile.sides[South]} `).join());
+
+ console.log(
+ _.range(minX, maxX + 1)
+ .map((x: number) => {
+ const tile = _.find(rowTiles, { position: { x, y } });
+ if (!tile) return ' ';
+ return ` ${tile.getSide(North)} `;
+ })
+ .join('|')
+ );
+
+ console.log(
+ _.range(minX, maxX + 1)
+ .map((x: number) => {
+ const tile = _.find(rowTiles, { position: { x, y } });
+ if (!tile) return ' ';
+ return `${tile.getSide(West)}${tile.center}${tile.getSide(East)}`;
+ })
+ .join('|')
+ );
+
+ console.log(
+ _.range(minX, maxX + 1)
+ .map((x: number) => {
+ const tile = _.find(rowTiles, { position: { x, y } });
+ if (!tile) return ' ';
+ return ` ${tile.getSide(South)} `;
+ })
+ .join('|')
+ );
});
}
@@ -32,7 +61,7 @@ export default class Board {
}
attach(attachment: Attachment) {
- const { tile, attachTo, side } = attachment;
+ const { tile, attachTo, side, orientation } = attachment;
const xIncrement = {
[East]: 1,
@@ -52,13 +81,16 @@ export default class Board {
x: attachTo.position.x + (xIncrement[side] || 0),
y: attachTo.position.y + (yIncrement[side] || 0),
},
+ orientation,
);
this.tiles.push(tileOnBoard);
}
- getLegalMoves(tile: Tile) {
- const attachments = this.getAttachments(tile);
- console.log(attachments);
+ previewAttachment(attachment: Attachment) {
+ console.log(attachment);
+ const previewBoard = _.cloneDeep(this);
+ previewBoard.attach(attachment);
+ previewBoard.print();
}
}