jp.ms.common.engine 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/game-control-player-turn.d.ts +4 -4
- package/dist/base/game-control-player-turn.d.ts.map +1 -1
- package/dist/base/game-control-player-turn.js.map +1 -1
- package/dist/base/game-master.d.ts +24 -21
- package/dist/base/game-master.d.ts.map +1 -1
- package/dist/base/game-master.js +6 -2
- package/dist/base/game-master.js.map +1 -1
- package/dist/base/game-player-connections-helper.d.ts +15 -0
- package/dist/base/game-player-connections-helper.d.ts.map +1 -0
- package/dist/base/game-player-connections-helper.js +33 -0
- package/dist/base/game-player-connections-helper.js.map +1 -0
- package/dist/base/game-player.d.ts +3 -1
- package/dist/base/game-player.d.ts.map +1 -1
- package/dist/base/game-player.js +3 -1
- package/dist/base/game-player.js.map +1 -1
- package/dist/base/game-room.d.ts +15 -17
- package/dist/base/game-room.d.ts.map +1 -1
- package/dist/base/game-room.js +16 -17
- package/dist/base/game-room.js.map +1 -1
- package/dist/base/game-round.d.ts +7 -10
- package/dist/base/game-round.d.ts.map +1 -1
- package/dist/base/game-round.js +2 -4
- package/dist/base/game-round.js.map +1 -1
- package/dist/base/game-state-machine.d.ts +4 -4
- package/dist/base/game-state-machine.d.ts.map +1 -1
- package/dist/base/game-state-machine.js.map +1 -1
- package/dist/base/game-summary-result.d.ts +3 -0
- package/dist/base/game-summary-result.d.ts.map +1 -0
- package/dist/base/game-summary-result.js +7 -0
- package/dist/base/game-summary-result.js.map +1 -0
- package/dist/base/game-table-seat.d.ts +3 -3
- package/dist/base/game-table-seat.d.ts.map +1 -1
- package/dist/base/game-table-seat.js.map +1 -1
- package/dist/base/game-table-seats.d.ts +12 -12
- package/dist/base/game-table-seats.d.ts.map +1 -1
- package/dist/base/game-table-seats.js.map +1 -1
- package/dist/base/game-table.d.ts +25 -51
- package/dist/base/game-table.d.ts.map +1 -1
- package/dist/base/game-table.js.map +1 -1
- package/dist/base/index.d.ts +2 -1
- package/dist/base/index.d.ts.map +1 -1
- package/dist/base/index.js +3 -1
- package/dist/base/index.js.map +1 -1
- package/dist/base/standard-game-state.d.ts +2 -2
- package/dist/base/standard-game-state.d.ts.map +1 -1
- package/dist/base/standard-game-state.js +1 -1
- package/dist/base/standard-game-state.js.map +1 -1
- package/dist/base-rooms/fast-tournament-room.d.ts +0 -13
- package/dist/base-rooms/fast-tournament-room.d.ts.map +1 -1
- package/dist/base-rooms/fast-tournament-room.js +59 -51
- package/dist/base-rooms/fast-tournament-room.js.map +1 -1
- package/dist/base-rooms/index.d.ts +1 -5
- package/dist/base-rooms/index.d.ts.map +1 -1
- package/dist/base-rooms/index.js +3 -9
- package/dist/base-rooms/index.js.map +1 -1
- package/dist/base-rooms/scheduled-tournament-room.d.ts +0 -27
- package/dist/base-rooms/scheduled-tournament-room.d.ts.map +1 -1
- package/dist/base-rooms/scheduled-tournament-room.js +181 -164
- package/dist/base-rooms/scheduled-tournament-room.js.map +1 -1
- package/dist/base-rooms/simple-room.d.ts +5 -4
- package/dist/base-rooms/simple-room.d.ts.map +1 -1
- package/dist/base-rooms/simple-room.js +16 -0
- package/dist/base-rooms/simple-room.js.map +1 -1
- package/dist/base-rooms/tournament-room.d.ts +0 -46
- package/dist/base-rooms/tournament-room.d.ts.map +1 -1
- package/dist/base-rooms/tournament-room.js +169 -109
- package/dist/base-rooms/tournament-room.js.map +1 -1
- package/dist/base-rooms/tournament-state.d.ts +2 -2
- package/dist/base-rooms/tournament-state.d.ts.map +1 -1
- package/dist/base-rooms/tournament-state.js +2 -2
- package/dist/base-rooms/tournament-state.js.map +1 -1
- package/dist/board-game/base/board-cell.d.ts +0 -15
- package/dist/board-game/base/board-cell.d.ts.map +1 -1
- package/dist/board-game/base/board-cell.js +50 -40
- package/dist/board-game/base/board-cell.js.map +1 -1
- package/dist/board-game/base/board-figure.d.ts +0 -15
- package/dist/board-game/base/board-figure.d.ts.map +1 -1
- package/dist/board-game/base/board-figure.js +49 -36
- package/dist/board-game/base/board-figure.js.map +1 -1
- package/dist/board-game/base/board-game-master.d.ts +0 -18
- package/dist/board-game/base/board-game-master.d.ts.map +1 -1
- package/dist/board-game/base/board-game-master.js +56 -34
- package/dist/board-game/base/board-game-master.js.map +1 -1
- package/dist/board-game/base/board-player-move.d.ts +0 -10
- package/dist/board-game/base/board-player-move.d.ts.map +1 -1
- package/dist/board-game/base/board-player-move.js +29 -28
- package/dist/board-game/base/board-player-move.js.map +1 -1
- package/dist/board-game/base/board-player.d.ts +0 -12
- package/dist/board-game/base/board-player.d.ts.map +1 -1
- package/dist/board-game/base/board-player.js +43 -29
- package/dist/board-game/base/board-player.js.map +1 -1
- package/dist/board-game/base/board-table.d.ts +0 -16
- package/dist/board-game/base/board-table.d.ts.map +1 -1
- package/dist/board-game/base/board-table.js +52 -33
- package/dist/board-game/base/board-table.js.map +1 -1
- package/dist/board-game/d1-board-game/d1-board-table.d.ts +0 -18
- package/dist/board-game/d1-board-game/d1-board-table.d.ts.map +1 -1
- package/dist/board-game/d1-board-game/d1-board-table.js +56 -39
- package/dist/board-game/d1-board-game/d1-board-table.js.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-cell.d.ts +0 -11
- package/dist/board-game/d2-board-game/d2-board-cell.d.ts.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-cell.js +30 -24
- package/dist/board-game/d2-board-game/d2-board-cell.js.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.d.ts +0 -28
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.d.ts.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.js +79 -49
- package/dist/board-game/d2-board-game/d2-board-pattern-move-figure.js.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-table.d.ts +0 -48
- package/dist/board-game/d2-board-game/d2-board-table.d.ts.map +1 -1
- package/dist/board-game/d2-board-game/d2-board-table.js +262 -182
- package/dist/board-game/d2-board-game/d2-board-table.js.map +1 -1
- package/dist/board-game/d2-board-game/types.d.ts +0 -4
- package/dist/board-game/d2-board-game/types.d.ts.map +1 -1
- package/dist/board-game/d2-board-game/types.js +4 -1
- package/dist/board-game/d2-board-game/types.js.map +1 -1
- package/dist/board-game/dice.js +2 -2
- package/dist/board-game/dice.js.map +1 -1
- package/dist/board-game/index.d.ts +0 -12
- package/dist/board-game/index.d.ts.map +1 -1
- package/dist/board-game/index.js +28 -24
- package/dist/board-game/index.js.map +1 -1
- package/dist/cards-game/cards-game-master.d.ts +7 -8
- package/dist/cards-game/cards-game-master.d.ts.map +1 -1
- package/dist/cards-game/cards-game-master.js +13 -10
- package/dist/cards-game/cards-game-master.js.map +1 -1
- package/dist/cards-game/cards-player.d.ts.map +1 -1
- package/dist/cards-game/cards-player.js +1 -1
- package/dist/cards-game/cards-player.js.map +1 -1
- package/dist/cards-game/index.d.ts +1 -2
- package/dist/cards-game/index.d.ts.map +1 -1
- package/dist/cards-game/index.js +1 -3
- package/dist/cards-game/index.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tests/just-black-jack/domain/black-jack-dealer.d.ts +6 -0
- package/dist/tests/just-black-jack/domain/black-jack-dealer.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-dealer.js +14 -0
- package/dist/tests/just-black-jack/domain/black-jack-dealer.js.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-master.d.ts +28 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-master.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-master.js +90 -0
- package/dist/tests/just-black-jack/domain/black-jack-game-master.js.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.d.ts +9 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.d.ts.map +1 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.js +21 -0
- package/dist/tests/just-black-jack/domain/black-jack-player.js.map +1 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.d.ts +3 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.d.ts.map +1 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.js +30 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.js.map +1 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.test.d.ts +2 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.test.d.ts.map +1 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.test.js +34 -0
- package/dist/tests/just-black-jack/helpers/calculate-result.test.js.map +1 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.d.ts +6 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.d.ts.map +1 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.js +13 -0
- package/dist/tests/just-black-jack/rooms/black-jack-simple-room.js.map +1 -0
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.d.ts +2 -0
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.d.ts.map +1 -0
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.js +58 -0
- package/dist/tests/just-black-jack/tests/black-jack-simple-room.test.js.map +1 -0
- package/dist/tests/just-black-jack/tests/common.d.ts +11 -0
- package/dist/tests/just-black-jack/tests/common.d.ts.map +1 -0
- package/dist/tests/just-black-jack/tests/common.js +51 -0
- package/dist/tests/just-black-jack/tests/common.js.map +1 -0
- package/package.json +3 -2
- package/src/base/game-control-player-turn.ts +5 -5
- package/src/base/game-master.ts +25 -19
- package/src/base/game-player-connections-helper.ts +40 -0
- package/src/base/game-player.ts +5 -2
- package/src/base/game-room.ts +26 -30
- package/src/base/game-round.ts +10 -16
- package/src/base/game-state-machine.ts +7 -7
- package/src/base/game-summary-result.ts +3 -0
- package/src/base/game-table-seat.ts +3 -3
- package/src/base/game-table-seats.ts +13 -13
- package/src/base/game-table.ts +28 -79
- package/src/base/index.ts +2 -0
- package/src/base/standard-game-state.ts +2 -2
- package/src/base-rooms/fast-tournament-room.ts +59 -59
- package/src/base-rooms/index.ts +9 -8
- package/src/base-rooms/scheduled-tournament-room.ts +181 -181
- package/src/base-rooms/simple-room.ts +15 -4
- package/src/base-rooms/tournament-room.ts +169 -169
- package/src/base-rooms/tournament-state.ts +2 -2
- package/src/board-game/base/board-cell.ts +50 -50
- package/src/board-game/base/board-figure.ts +49 -49
- package/src/board-game/base/board-game-master.ts +56 -56
- package/src/board-game/base/board-player-move.ts +29 -29
- package/src/board-game/base/board-player.ts +43 -43
- package/src/board-game/base/board-table.ts +52 -52
- package/src/board-game/d1-board-game/d1-board-table.ts +56 -56
- package/src/board-game/d2-board-game/d2-board-cell.ts +30 -30
- package/src/board-game/d2-board-game/d2-board-pattern-move-figure.ts +79 -79
- package/src/board-game/d2-board-game/d2-board-table.ts +262 -262
- package/src/board-game/d2-board-game/types.ts +4 -4
- package/src/board-game/dice.ts +1 -1
- package/src/board-game/index.ts +28 -28
- package/src/cards-game/cards-game-master.ts +19 -16
- package/src/cards-game/cards-player.ts +2 -1
- package/src/cards-game/index.ts +0 -2
- package/src/index.ts +1 -1
- package/src/tests/just-black-jack/domain/black-jack-dealer.ts +15 -0
- package/src/tests/just-black-jack/domain/black-jack-game-master.ts +103 -0
- package/src/tests/just-black-jack/domain/black-jack-player.ts +27 -0
- package/src/tests/just-black-jack/helpers/calculate-result.test.ts +49 -0
- package/src/tests/just-black-jack/helpers/calculate-result.ts +34 -0
- package/src/tests/just-black-jack/rooms/black-jack-simple-room.ts +10 -0
- package/src/tests/just-black-jack/tests/black-jack-simple-room.test.ts +75 -0
- package/src/tests/just-black-jack/tests/common.ts +63 -0
- package/dist/cards-game/cards-table.d.ts +0 -11
- package/dist/cards-game/cards-table.d.ts.map +0 -1
- package/dist/cards-game/cards-table.js +0 -20
- package/dist/cards-game/cards-table.js.map +0 -1
- package/src/cards-game/cards-table.ts +0 -28
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import { GameMaster } from '../../base';
|
|
2
|
-
import { IGameRound } from '../../base/game-round';
|
|
3
|
-
import { BoardPlayer } from './board-player';
|
|
4
|
-
import { IGameTable } from '../../base/game-table';
|
|
5
|
-
|
|
6
|
-
import { KillingMove, KillingMoveResult } from '../d2-board-game/d2-board-pattern-move-figure';
|
|
7
|
-
import { BoardCell } from './board-cell';
|
|
8
|
-
import { BoardFigure } from './board-figure';
|
|
9
|
-
|
|
10
|
-
export abstract class BoardGameMaster<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
> extends GameMaster<GT, GR, GP, GSR> {
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
1
|
+
// import { GameMaster } from '../../base';
|
|
2
|
+
// import { IGameRound } from '../../base/game-round';
|
|
3
|
+
// import { BoardPlayer } from './board-player';
|
|
4
|
+
// import { IGameTable } from '../../base/game-table';
|
|
5
|
+
//
|
|
6
|
+
// import { KillingMove, KillingMoveResult } from '../d2-board-game/d2-board-pattern-move-figure';
|
|
7
|
+
// import { BoardCell } from './board-cell';
|
|
8
|
+
// import { BoardFigure } from './board-figure';
|
|
9
|
+
//
|
|
10
|
+
// export abstract class BoardGameMaster<
|
|
11
|
+
// GT extends IGameTable<GP>,
|
|
12
|
+
// GR extends IGameRound<GP>,
|
|
13
|
+
// GP extends BoardPlayer,
|
|
14
|
+
// GSR,
|
|
15
|
+
// > extends GameMaster<GT, GR, GP, GSR> {
|
|
16
|
+
// private figuresCount: number = 0;
|
|
17
|
+
//
|
|
18
|
+
// abstract initStartFigures ();
|
|
19
|
+
//
|
|
20
|
+
// abstract figuresStartPositions: Array<Array<number>>;
|
|
21
|
+
//
|
|
22
|
+
// setFiguresStartPositions (figures: Array<Array<number>>) {
|
|
23
|
+
// this.figuresStartPositions = figures;
|
|
24
|
+
// }
|
|
25
|
+
//
|
|
26
|
+
// findPath (
|
|
27
|
+
// possibleMoves: Array<KillingMoveResult>,
|
|
28
|
+
// movingFigureId: number | undefined,
|
|
29
|
+
// movingFigureNewPosition: number | undefined,
|
|
30
|
+
// ): KillingMove | undefined {
|
|
31
|
+
// const foundMove = possibleMoves.find((item) => item.figureId === movingFigureId);
|
|
32
|
+
//
|
|
33
|
+
// if (foundMove) {
|
|
34
|
+
// return foundMove.paths.find((path) => path.targetCells.find((targetCell) => targetCell === movingFigureNewPosition));
|
|
35
|
+
// }
|
|
36
|
+
// }
|
|
37
|
+
//
|
|
38
|
+
// killFigure (cell: BoardCell<BoardFigure> | null) {
|
|
39
|
+
// const killedFigure = cell?.popFigure();
|
|
40
|
+
// const rival = this.table.getPlayerByColor(killedFigure?.getColor() ?? 0);
|
|
41
|
+
// rival?.popFigure(killedFigure?.getId() ?? 0);
|
|
42
|
+
// }
|
|
43
|
+
//
|
|
44
|
+
// isFinish () {
|
|
45
|
+
// return this.table.getPlayers().filter((item) => item.hasNoFigures()).length > 0;
|
|
46
|
+
// }
|
|
47
|
+
//
|
|
48
|
+
// getFiguresCount () {
|
|
49
|
+
// return this.figuresCount;
|
|
50
|
+
// }
|
|
51
|
+
//
|
|
52
|
+
// increaseFiguresCount () {
|
|
53
|
+
// this.figuresCount += 1;
|
|
54
|
+
// }
|
|
55
|
+
// }
|
|
56
|
+
//
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { GamePlayerMove } from '../../base/game-player-move';
|
|
2
|
-
|
|
3
|
-
export class BoardPlayerMove {
|
|
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
|
-
}
|
|
1
|
+
// import { GamePlayerMove } from '../../base/game-player-move';
|
|
2
|
+
//
|
|
3
|
+
// export class BoardPlayerMove {
|
|
4
|
+
// private readonly move?: GamePlayerMove;
|
|
5
|
+
//
|
|
6
|
+
// constructor (move: GamePlayerMove | undefined) {
|
|
7
|
+
// this.move = move;
|
|
8
|
+
// }
|
|
9
|
+
//
|
|
10
|
+
// getRoomId () {
|
|
11
|
+
// return this.move?.getRoomId();
|
|
12
|
+
// }
|
|
13
|
+
//
|
|
14
|
+
// getTableId () {
|
|
15
|
+
// return this.move?.getTableId();
|
|
16
|
+
// }
|
|
17
|
+
//
|
|
18
|
+
// getAction () {
|
|
19
|
+
// return this.move?.getAction();
|
|
20
|
+
// }
|
|
21
|
+
//
|
|
22
|
+
// getFigureId (): number | undefined {
|
|
23
|
+
// return parseInt(this.move?.getAttr('figureId') ?? '', 10);
|
|
24
|
+
// }
|
|
25
|
+
//
|
|
26
|
+
// getFigureNewPosition (): number | undefined {
|
|
27
|
+
// return parseInt(this.move?.getAttr('figureNewPosition') ?? '', 10);
|
|
28
|
+
// }
|
|
29
|
+
// }
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import { remove } from 'lodash';
|
|
2
|
-
|
|
3
|
-
import { GamePlayer } from '../../base';
|
|
4
|
-
import { BoardFigure } from './board-figure';
|
|
5
|
-
|
|
6
|
-
export abstract class BoardPlayer extends GamePlayer {
|
|
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
|
-
}
|
|
1
|
+
// import { remove } from 'lodash';
|
|
2
|
+
//
|
|
3
|
+
// import { GamePlayer } from '../../base';
|
|
4
|
+
// import { BoardFigure } from './board-figure';
|
|
5
|
+
//
|
|
6
|
+
// export abstract class BoardPlayer extends GamePlayer {
|
|
7
|
+
// private readonly figures: Array<BoardFigure>;
|
|
8
|
+
//
|
|
9
|
+
// constructor (
|
|
10
|
+
// id: string,
|
|
11
|
+
// fullName: string,
|
|
12
|
+
// avatarUrl: string,
|
|
13
|
+
// balance: number,
|
|
14
|
+
// color: number,
|
|
15
|
+
// ) {
|
|
16
|
+
// super(id, fullName, avatarUrl, balance, color);
|
|
17
|
+
// this.figures = [];
|
|
18
|
+
// }
|
|
19
|
+
//
|
|
20
|
+
// getFigures (): Array<BoardFigure> {
|
|
21
|
+
// return this.figures;
|
|
22
|
+
// }
|
|
23
|
+
//
|
|
24
|
+
// hasNoFigures (): boolean {
|
|
25
|
+
// return this.figures.length === 0;
|
|
26
|
+
// }
|
|
27
|
+
//
|
|
28
|
+
// addFigure (figure: BoardFigure): void {
|
|
29
|
+
// this.figures.push(figure);
|
|
30
|
+
// }
|
|
31
|
+
//
|
|
32
|
+
// popFigure (figureId: number) {
|
|
33
|
+
// remove(this.figures, (item) => item.getId() === figureId);
|
|
34
|
+
// }
|
|
35
|
+
//
|
|
36
|
+
// findFigure (figureId: number) {
|
|
37
|
+
// return this.figures.find((item) => item.getId() === figureId);
|
|
38
|
+
// }
|
|
39
|
+
//
|
|
40
|
+
// hasFigure (figureId: number) {
|
|
41
|
+
// return !!this.findFigure(figureId);
|
|
42
|
+
// }
|
|
43
|
+
// }
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { GamePlayer, GameTable } from '../../base';
|
|
2
|
-
import { GameTableConfig } from '../../base/game-table';
|
|
3
|
-
|
|
4
|
-
import { BoardFigure } from './board-figure';
|
|
5
|
-
import { BoardCell } from './board-cell';
|
|
6
|
-
|
|
7
|
-
export abstract class BoardTable<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
> extends GameTable<GP, GM, GSR> {
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
1
|
+
// import { GamePlayer, GameTable } from '../../base';
|
|
2
|
+
// import { GameTableConfig } from '../../base/game-table';
|
|
3
|
+
//
|
|
4
|
+
// import { BoardFigure } from './board-figure';
|
|
5
|
+
// import { BoardCell } from './board-cell';
|
|
6
|
+
//
|
|
7
|
+
// export abstract class BoardTable<
|
|
8
|
+
// GP extends GamePlayer,
|
|
9
|
+
// GM,
|
|
10
|
+
// GSR,
|
|
11
|
+
// BF extends BoardFigure,
|
|
12
|
+
// BC extends BoardCell<BF>,
|
|
13
|
+
// > extends GameTable<GP, GM, GSR> {
|
|
14
|
+
// private readonly bar: Array<BoardFigure>;
|
|
15
|
+
//
|
|
16
|
+
// constructor (config: GameTableConfig<GP>) {
|
|
17
|
+
// super(config);
|
|
18
|
+
// this.bar = [];
|
|
19
|
+
// }
|
|
20
|
+
//
|
|
21
|
+
// abstract initCells ();
|
|
22
|
+
//
|
|
23
|
+
// abstract getCell (id: number): BC | null;
|
|
24
|
+
//
|
|
25
|
+
// abstract getCellsArray (): Array<BC>;
|
|
26
|
+
//
|
|
27
|
+
// getCellsWithFigures (color: number) {
|
|
28
|
+
// return this.getCellsArray().filter((item) => item.hasYoursFigure(color));
|
|
29
|
+
// }
|
|
30
|
+
//
|
|
31
|
+
// moveFigure (fromCellId: number, toCellId: number) {
|
|
32
|
+
// const movingFigure = this.getCell(fromCellId)?.popFigure();
|
|
33
|
+
// if (movingFigure) {
|
|
34
|
+
// this.getCell(toCellId)?.addFigure(movingFigure);
|
|
35
|
+
// }
|
|
36
|
+
// }
|
|
37
|
+
//
|
|
38
|
+
// getBar () {
|
|
39
|
+
// return this.bar;
|
|
40
|
+
// }
|
|
41
|
+
//
|
|
42
|
+
// getFiguresAtBar (color: number) {
|
|
43
|
+
// return this.bar.filter((item) => item.getColor() === color);
|
|
44
|
+
// }
|
|
45
|
+
//
|
|
46
|
+
// moveFigureToBar (fromCellId: number) {
|
|
47
|
+
// const movingFigure = this.getCell(fromCellId)?.popFigure();
|
|
48
|
+
// if (movingFigure) {
|
|
49
|
+
// this.bar.push(movingFigure);
|
|
50
|
+
// }
|
|
51
|
+
// }
|
|
52
|
+
// }
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import { BoardFigure } from '../base/board-figure';
|
|
2
|
-
import { CircleList } from '../../utils/circle-list';
|
|
3
|
-
import { GameTableConfig } from '../../base/game-table';
|
|
4
|
-
import { BoardCell } from '../base/board-cell';
|
|
5
|
-
import { BoardTable } from '../base/board-table';
|
|
6
|
-
import { BoardPlayer } from '../base/board-player';
|
|
7
|
-
|
|
8
|
-
export abstract class D1BoardTable<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
> extends BoardTable<GP, GM, GSR, BF, BoardCell<BF>> {
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
1
|
+
// import { BoardFigure } from '../base/board-figure';
|
|
2
|
+
// import { CircleList } from '../../utils/circle-list';
|
|
3
|
+
// import { GameTableConfig } from '../../base/game-table';
|
|
4
|
+
// import { BoardCell } from '../base/board-cell';
|
|
5
|
+
// import { BoardTable } from '../base/board-table';
|
|
6
|
+
// import { BoardPlayer } from '../base/board-player';
|
|
7
|
+
//
|
|
8
|
+
// export abstract class D1BoardTable<
|
|
9
|
+
// GP extends BoardPlayer,
|
|
10
|
+
// GM,
|
|
11
|
+
// GSR,
|
|
12
|
+
// BF extends BoardFigure,
|
|
13
|
+
// > extends BoardTable<GP, GM, GSR, BF, BoardCell<BF>> {
|
|
14
|
+
// private cells: CircleList<BoardCell<BF>>;
|
|
15
|
+
// private readonly boardSize: number;
|
|
16
|
+
//
|
|
17
|
+
// protected constructor (config: GameTableConfig<GP>, boardSize: number) {
|
|
18
|
+
// super(config);
|
|
19
|
+
// this.boardSize = boardSize;
|
|
20
|
+
// this.initCells();
|
|
21
|
+
// }
|
|
22
|
+
//
|
|
23
|
+
// initCells () {
|
|
24
|
+
// const circleList: CircleList<BoardCell<BF>> = new CircleList<BoardCell<BF>>();
|
|
25
|
+
//
|
|
26
|
+
// for (let i = 0; i < this.getBoardSize(); i += 1) {
|
|
27
|
+
// circleList.push(new BoardCell(i));
|
|
28
|
+
// }
|
|
29
|
+
//
|
|
30
|
+
// this.cells = circleList;
|
|
31
|
+
// }
|
|
32
|
+
//
|
|
33
|
+
// getBoardSize (): number {
|
|
34
|
+
// return this.boardSize;
|
|
35
|
+
// }
|
|
36
|
+
//
|
|
37
|
+
// getCell (id: number): BoardCell<BF> | null {
|
|
38
|
+
// return this.cells.getData(id) ?? null;
|
|
39
|
+
// }
|
|
40
|
+
//
|
|
41
|
+
// getCells (): CircleList<BoardCell<BF>> {
|
|
42
|
+
// return this.cells;
|
|
43
|
+
// }
|
|
44
|
+
//
|
|
45
|
+
// getCellsArray (): Array<BoardCell<BF>> {
|
|
46
|
+
// return this.cells.toArray();
|
|
47
|
+
// }
|
|
48
|
+
//
|
|
49
|
+
// getCellsChain (id: number): Array<BoardCell<BF>> {
|
|
50
|
+
// return this.cells.getNextChain(id);
|
|
51
|
+
// }
|
|
52
|
+
//
|
|
53
|
+
// getCellSlice (start: number, end?: number): Array<BoardCell<BF>> {
|
|
54
|
+
// return this.cells.getSlice(start, end);
|
|
55
|
+
// }
|
|
56
|
+
// }
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { BoardCell } from '../base/board-cell';
|
|
2
|
-
import { BoardFigure } from '../base/board-figure';
|
|
3
|
-
|
|
4
|
-
import { Coordinate } from './types';
|
|
5
|
-
|
|
6
|
-
export class D2BoardCell<BF extends BoardFigure> extends BoardCell<BF> {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
1
|
+
// import { BoardCell } from '../base/board-cell';
|
|
2
|
+
// import { BoardFigure } from '../base/board-figure';
|
|
3
|
+
//
|
|
4
|
+
// import { Coordinate } from './types';
|
|
5
|
+
//
|
|
6
|
+
// export class D2BoardCell<BF extends BoardFigure> extends BoardCell<BF> {
|
|
7
|
+
// private readonly col: number;
|
|
8
|
+
// private readonly row: number;
|
|
9
|
+
//
|
|
10
|
+
// constructor (id: number, col: number, row: number) {
|
|
11
|
+
// super(id);
|
|
12
|
+
// this.col = col;
|
|
13
|
+
// this.row = row;
|
|
14
|
+
// }
|
|
15
|
+
//
|
|
16
|
+
// getRow (): number {
|
|
17
|
+
// return this.row;
|
|
18
|
+
// }
|
|
19
|
+
//
|
|
20
|
+
// getCol (): number {
|
|
21
|
+
// return this.col;
|
|
22
|
+
// }
|
|
23
|
+
//
|
|
24
|
+
// getCoordinate (): Coordinate {
|
|
25
|
+
// return {
|
|
26
|
+
// y: this.row ?? 0,
|
|
27
|
+
// x: this.col ?? 0,
|
|
28
|
+
// };
|
|
29
|
+
// }
|
|
30
|
+
// }
|