diff options
Diffstat (limited to 'src/Board/Board.ts')
-rw-r--r-- | src/Board/Board.ts | 50 |
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(); } } |