@gamepark/rules-api 5.20.0 → 5.21.0

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/Action.d.ts CHANGED
@@ -7,7 +7,7 @@ declare type Action<Move = any, PlayerId = any> = {
7
7
  consequences: Move[];
8
8
  };
9
9
  export default Action;
10
- export declare function playAction<State, Move, PlayerId>(rules: Rules<State, Move, PlayerId>, move: Move, playerId: PlayerId, id?: string): Action<Move, PlayerId>;
10
+ export declare function playAction<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, move: Move, playerId: PlayerId, id?: string): Action<Move, PlayerId>;
11
11
  export declare type ActionWithViews<Move = any, MoveView = Move, PlayerId = any> = {
12
12
  action: Action<Move, PlayerId>;
13
13
  views: ActionView<MoveView, PlayerId>[];
@@ -17,8 +17,8 @@ export declare type ActionView<MoveView = any, PlayerId = any> = {
17
17
  action: Action<MoveView, PlayerId>;
18
18
  };
19
19
  export declare function playActionWithViews<Game, View, Move, MoveView, PlayerId>(rules: Rules<Game, Move, PlayerId> & IncompleteInformation<View, Move, MoveView>, move: Move, playerId: PlayerId, recipients: PlayerId[], id?: string): ActionWithViews<Move, MoveView, PlayerId>;
20
- export declare function replayAction<State, Move, PlayerId>(rules: Rules<State, Move, PlayerId>, action: Action<Move, PlayerId>): void;
21
- export declare function replayActions<State, Move, PlayerId>(rules: Rules<State, Move, PlayerId>, actions: Action<Move, PlayerId>[]): void;
20
+ export declare function replayAction<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, action: Action<Move, PlayerId>): void;
21
+ export declare function replayActions<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, actions: Action<Move, PlayerId>[]): void;
22
22
  export declare type SecretAction<Move = any, MoveView = Move, PlayerId = any> = Action<Move, PlayerId> & {
23
23
  secrets: ActionView<MoveView, PlayerId>[];
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import Rules from './Rules';
2
- export declare function applyAutomaticMoves<State, Move, PlayerId>(rules: Rules<State, Move, PlayerId>, preprocessMove?: (move: Move) => void): void;
2
+ export declare function applyAutomaticMoves<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>, preprocessMove?: (move: Move) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ApplyAutomaticMoves.js","sourceRoot":"","sources":["../src/ApplyAutomaticMoves.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,+CAA2C;AAG3C,SAAgB,mBAAmB,CAAwB,KAAmC,EAAE,cAAqC;IACnI,IAAM,KAAK,GAAW,EAAE,CAAA;IACxB,IAAA,2BAAY,EAAC;QACX,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,EAAE;YACjD,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAA,2BAAc,EAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,EAAC;SAChE;QACD,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,IAAI,EAAE;YACR,IAAI,cAAc;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAA;YACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAA;SACZ;aAAM;YACL,OAAO,KAAK,CAAA;SACb;IACH,CAAC,EAAE,EAAC,OAAO,EAAE,cAAM,OAAA,IAAI,KAAK,CAAC,mEAA4D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAkB,EAAE,CAAC,MAAG,CAAC,EAApH,CAAoH,EAAC,CAAC,CAAA;AAC3I,CAAC;AAfD,kDAeC"}
1
+ {"version":3,"file":"ApplyAutomaticMoves.js","sourceRoot":"","sources":["../src/ApplyAutomaticMoves.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,+CAA2C;AAG3C,SAAgB,mBAAmB,CAAuB,KAAkC,EAAE,cAAqC;IACjI,IAAM,KAAK,GAAW,EAAE,CAAA;IACxB,IAAA,2BAAY,EAAC;QACX,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,EAAE;YACjD,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAA,2BAAc,EAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,EAAC;SAChE;QACD,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,IAAI,EAAE;YACR,IAAI,cAAc;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAA;YACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAA;SACZ;aAAM;YACL,OAAO,KAAK,CAAA;SACb;IACH,CAAC,EAAE,EAAC,OAAO,EAAE,cAAM,OAAA,IAAI,KAAK,CAAC,mEAA4D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAkB,EAAE,CAAC,MAAG,CAAC,EAApH,CAAoH,EAAC,CAAC,CAAA;AAC3I,CAAC;AAfD,kDAeC"}
@@ -1,5 +1,5 @@
1
1
  import Rules from './Rules';
2
- export default interface Competitive<State, Move = string, PlayerId = number> extends Rules<State, Move, PlayerId> {
2
+ export default interface Competitive<Game, Move = string, PlayerId = number> extends Rules<Game, Move, PlayerId> {
3
3
  rankPlayers(playerA: PlayerId, playerB: PlayerId): number;
4
4
  getScore?(playerId: PlayerId): number;
5
5
  }
package/dist/Dummy.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import RulesCreator from './RulesCreator';
2
- export default class Dummy<State, Move = string, PlayerId = number> {
3
- Rules: RulesCreator<State, Move, PlayerId>;
4
- constructor(Rules: RulesCreator<State, Move, PlayerId>);
5
- getRandomMove(state: State, playerId: PlayerId): Promise<Move[]>;
6
- getLegalMoves(state: State, playerId: PlayerId): Move[];
2
+ export default class Dummy<Game, Move = string, PlayerId = number> {
3
+ Rules: RulesCreator<Game, Move, PlayerId>;
4
+ constructor(Rules: RulesCreator<Game, Move, PlayerId>);
5
+ getRandomMove(state: Game, playerId: PlayerId): Promise<Move[]>;
6
+ getLegalMoves(state: Game, playerId: PlayerId): Move[];
7
7
  }
package/dist/Dummy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Dummy.js","sourceRoot":"","sources":["../src/Dummy.ts"],"names":[],"mappings":";;AAEA;IAIE,eAAY,KAA0C;QACpD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,6BAAa,GAAb,UAAc,KAAY,EAAE,QAAkB;QAC5C,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC/C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED,6BAAa,GAAb,UAAc,KAAY,EAAE,QAAkB;QAC5C,IAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,KAAK,CAAC,aAAa,EAAE;YACvB,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;SACrC;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAA;YAC9E,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IACH,YAAC;AAAD,CAAC,AAvBD,IAuBC"}
1
+ {"version":3,"file":"Dummy.js","sourceRoot":"","sources":["../src/Dummy.ts"],"names":[],"mappings":";;AAEA;IAIE,eAAY,KAAyC;QACnD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,6BAAa,GAAb,UAAc,KAAW,EAAE,QAAkB;QAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC/C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED,6BAAa,GAAb,UAAc,KAAW,EAAE,QAAkB;QAC3C,IAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,KAAK,CAAC,aAAa,EAAE;YACvB,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;SACrC;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAA;YAC9E,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IACH,YAAC;AAAD,CAAC,AAvBD,IAuBC"}
@@ -19,7 +19,7 @@ function getGameView(rules, playerId) {
19
19
  return rules.getView();
20
20
  }
21
21
  else {
22
- return rules.state;
22
+ return rules.game;
23
23
  }
24
24
  }
25
25
  exports.getGameView = getGameView;
@@ -1 +1 @@
1
- {"version":3,"file":"IncompleteInformation.js","sourceRoot":"","sources":["../src/IncompleteInformation.ts"],"names":[],"mappings":";;;AAQA,SAAgB,wBAAwB,CAA6C,KAAa;IAChG,IAAM,IAAI,GAAG,KAAwD,CAAA;IACrE,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,CAAA;AACrF,CAAC;AAHD,4DAGC;AAUD,SAAgB,oBAAoB,CAA6D,KAAa;IAC5G,IAAM,IAAI,GAAG,KAA8D,CAAA;IAC3E,OAAO,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,CAAA;AACjD,CAAC;AAHD,oDAGC;AAED,SAAgB,WAAW,CAA2B,KAAiC,EAAE,QAAmB;IAC1G,IAAI,oBAAoB,CAA+B,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE;QACvF,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;KACrC;SAAM,IAAI,wBAAwB,CAAW,KAAK,CAAC,EAAE;QACpD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;KACvB;SAAM;QACL,OAAO,KAAK,CAAC,KAAwB,CAAA;KACtC;AACH,CAAC;AARD,kCAQC;AAED,SAAgB,WAAW,CAAqC,KAAiC,EAAE,IAAU,EAAE,QAAmB;IAChI,IAAI,oBAAoB,CAAqC,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,IAAI,QAAQ,KAAK,SAAS,EAAE;QACxH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;KAC3E;SAAM,IAAI,wBAAwB,CAA2B,KAAK,CAAC,EAAE;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAC3D;SAAM;QACL,OAAO,IAAuB,CAAA;KAC/B;AACH,CAAC;AARD,kCAQC"}
1
+ {"version":3,"file":"IncompleteInformation.js","sourceRoot":"","sources":["../src/IncompleteInformation.ts"],"names":[],"mappings":";;;AAQA,SAAgB,wBAAwB,CAA6C,KAAa;IAChG,IAAM,IAAI,GAAG,KAAwD,CAAA;IACrE,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,CAAA;AACrF,CAAC;AAHD,4DAGC;AAUD,SAAgB,oBAAoB,CAA6D,KAAa;IAC5G,IAAM,IAAI,GAAG,KAA8D,CAAA;IAC3E,OAAO,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,CAAA;AACjD,CAAC;AAHD,oDAGC;AAED,SAAgB,WAAW,CAA2B,KAAiC,EAAE,QAAmB;IAC1G,IAAI,oBAAoB,CAA+B,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE;QACvF,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;KACrC;SAAM,IAAI,wBAAwB,CAAW,KAAK,CAAC,EAAE;QACpD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;KACvB;SAAM;QACL,OAAO,KAAK,CAAC,IAAuB,CAAA;KACrC;AACH,CAAC;AARD,kCAQC;AAED,SAAgB,WAAW,CAAqC,KAAiC,EAAE,IAAU,EAAE,QAAmB;IAChI,IAAI,oBAAoB,CAAqC,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,IAAI,QAAQ,KAAK,SAAS,EAAE;QACxH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;KAC3E;SAAM,IAAI,wBAAwB,CAA2B,KAAK,CAAC,EAAE;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAC3D;SAAM;QACL,OAAO,IAAuB,CAAA;KAC/B;AACH,CAAC;AARD,kCAQC"}
@@ -3,5 +3,5 @@ export default interface RandomMove<Move = string, RandomizedMove = string> {
3
3
  randomize(move: Move): Move & RandomizedMove;
4
4
  play(move: Move & RandomizedMove): void;
5
5
  }
6
- export declare function hasRandomMove<State, Move, RandomizedMove>(rules: Rules<State, Move>): rules is Rules<State, Move> & RandomMove<Move, RandomizedMove>;
7
- export declare function randomizeMoves<State, Move, RandomizedMove = Move>(rules: Rules<State, Move>, moves: Move[]): (Move & RandomizedMove)[];
6
+ export declare function hasRandomMove<Game, Move, RandomizedMove>(rules: Rules<Game, Move>): rules is Rules<Game, Move> & RandomMove<Move, RandomizedMove>;
7
+ export declare function randomizeMoves<Game, Move, RandomizedMove = Move>(rules: Rules<Game, Move>, moves: Move[]): (Move & RandomizedMove)[];
@@ -1 +1 @@
1
- {"version":3,"file":"RandomMove.js","sourceRoot":"","sources":["../src/RandomMove.ts"],"names":[],"mappings":";;;AAQA,SAAgB,aAAa,CAA8B,KAAyB;IAClF,IAAM,IAAI,GAAG,KAA8D,CAAA;IAC3E,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,CAAA;AAC7C,CAAC;AAHD,sCAGC;AAED,SAAgB,cAAc,CAAqC,KAAyB,EAAE,KAAa;IACzG,OAAO,aAAa,CAA8B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAE,KAAmC,CAAA;AAC5I,CAAC;AAFD,wCAEC"}
1
+ {"version":3,"file":"RandomMove.js","sourceRoot":"","sources":["../src/RandomMove.ts"],"names":[],"mappings":";;;AAQA,SAAgB,aAAa,CAA6B,KAAwB;IAChF,IAAM,IAAI,GAAG,KAA6D,CAAA;IAC1E,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,CAAA;AAC7C,CAAC;AAHD,sCAGC;AAED,SAAgB,cAAc,CAAoC,KAAwB,EAAE,KAAa;IACvG,OAAO,aAAa,CAA6B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAE,KAAmC,CAAA;AAC3I,CAAC;AAFD,wCAEC"}
package/dist/Robot.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare type Robot<State, Move = string, PlayerId = number> = (state: State, playerId: PlayerId) => Promise<Move[]>;
1
+ declare type Robot<Game, Move = string, PlayerId = number> = (state: Game, playerId: PlayerId) => Promise<Move[]>;
2
2
  export default Robot;
package/dist/Rules.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- export default abstract class Rules<State = any, Move = any, PlayerId = any> {
2
- state: State;
1
+ export default abstract class Rules<Game = any, Move = any, PlayerId = any> {
2
+ game: Game;
3
3
  automaticMoves: Move[];
4
- constructor(game: State);
5
- delegate(): Rules<State, Move, PlayerId> | undefined;
6
- delegates(): Rules<State, Move, PlayerId>[];
4
+ constructor(game: Game);
5
+ get state(): Game;
6
+ delegate(): Rules<Game, Move, PlayerId> | undefined;
7
+ delegates(): Rules<Game, Move, PlayerId>[];
7
8
  isTurnToPlay(playerId: PlayerId): boolean;
8
9
  getActivePlayer?(): PlayerId | undefined;
9
10
  isLegalMove(playerId: PlayerId, move: Move): boolean;
package/dist/Rules.js CHANGED
@@ -17,8 +17,15 @@ var Eliminations_1 = require("./Eliminations");
17
17
  var Rules = /** @class */ (function () {
18
18
  function Rules(game) {
19
19
  this.automaticMoves = [];
20
- this.state = game;
20
+ this.game = game;
21
21
  }
22
+ Object.defineProperty(Rules.prototype, "state", {
23
+ get: function () {
24
+ return this.game;
25
+ },
26
+ enumerable: false,
27
+ configurable: true
28
+ });
22
29
  Rules.prototype.delegate = function () {
23
30
  return;
24
31
  };
package/dist/Rules.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Rules.js","sourceRoot":"","sources":["../src/Rules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oEAAmC;AACnC,+CAA8C;AAE9C;IAIE,eAAY,IAAW;QAFvB,mBAAc,GAAW,EAAE,CAAA;QAGzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,wBAAQ,GAAR;QACE,OAAM;IACR,CAAC;IAED,yBAAS,GAAT;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,CAAC;IAED,4BAAY,GAAZ,UAAa,QAAkB;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAA5B,CAA4B,CAAC,EAAE;YACrD,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,QAAQ,KAAK,IAAI,CAAC,eAAe,EAAE,CAAA;SAC3C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAID,2BAAW,GAAX,UAAY,QAAkB,EAAE,IAAU;QACxC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAjC,CAAiC,CAAC,EAAE;YAC1D,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,IAAA,yBAAK,EAAC,IAAI,EAAE,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAAE;YAC1E,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAA,8BAAe,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,OAAO,IAAA,yBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,6BAAa,GAAb,UAAc,QAAkB;QAC9B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAA7B,CAA6B,CAAC,CAAA;IACzE,CAAC;IAED,iCAAiB,GAAjB;QACE,uCAAW,IAAI,CAAC,cAAc,SAAK,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,iBAAiB,EAAE,EAAzB,CAAyB,CAAC,QAAC;IAClG,CAAC;IAED,oBAAI,GAAJ,UAAK,IAAU;QACb,KAAoB,UAAgB,EAAhB,KAAA,IAAI,CAAC,SAAS,EAAE,EAAhB,cAAgB,EAAhB,IAAgB,EAAE;YAAjC,IAAM,KAAK,SAAA;YACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACjB;IACH,CAAC;IAED,sBAAM,GAAN,UAAO,SAAqB;QAA5B,iBAEC;QADC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAA3B,CAA2B,CAAC,CAAA;IACjE,CAAC;IACH,YAAC;AAAD,CAAC,AA7DD,IA6DC"}
1
+ {"version":3,"file":"Rules.js","sourceRoot":"","sources":["../src/Rules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oEAAmC;AACnC,+CAA8C;AAE9C;IAIE,eAAY,IAAU;QAFtB,mBAAc,GAAW,EAAE,CAAA;QAGzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,sBAAI,wBAAK;aAAT;YACE,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;;;OAAA;IAED,wBAAQ,GAAR;QACE,OAAM;IACR,CAAC;IAED,yBAAS,GAAT;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,CAAC;IAED,4BAAY,GAAZ,UAAa,QAAkB;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAA5B,CAA4B,CAAC,EAAE;YACrD,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,QAAQ,KAAK,IAAI,CAAC,eAAe,EAAE,CAAA;SAC3C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAID,2BAAW,GAAX,UAAY,QAAkB,EAAE,IAAU;QACxC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAjC,CAAiC,CAAC,EAAE;YAC1D,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,IAAA,yBAAK,EAAC,IAAI,EAAE,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAAE;YAC1E,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAA,8BAAe,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,OAAO,IAAA,yBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,6BAAa,GAAb,UAAc,QAAkB;QAC9B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAA7B,CAA6B,CAAC,CAAA;IACzE,CAAC;IAED,iCAAiB,GAAjB;QACE,uCAAW,IAAI,CAAC,cAAc,SAAK,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,iBAAiB,EAAE,EAAzB,CAAyB,CAAC,QAAC;IAClG,CAAC;IAED,oBAAI,GAAJ,UAAK,IAAU;QACb,KAAoB,UAAgB,EAAhB,KAAA,IAAI,CAAC,SAAS,EAAE,EAAhB,cAAgB,EAAhB,IAAgB,EAAE;YAAjC,IAAM,KAAK,SAAA;YACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACjB;IACH,CAAC;IAED,sBAAM,GAAN,UAAO,SAAqB;QAA5B,iBAEC;QADC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAA3B,CAA2B,CAAC,CAAA;IACjE,CAAC;IACH,YAAC;AAAD,CAAC,AAjED,IAiEC"}
@@ -1,5 +1,5 @@
1
1
  import Rules from './Rules';
2
- export default interface RulesCreator<State = any, Move = any, PlayerId = number, Options = any> {
3
- new (state: State): Rules<State, Move, PlayerId>;
4
- new (options: Options): Rules<State, Move, PlayerId>;
2
+ export default interface RulesCreator<Game = any, Move = any, PlayerId = number, Options = any> {
3
+ new (state: Game): Rules<Game, Move, PlayerId>;
4
+ new (options: Options): Rules<Game, Move, PlayerId>;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import Rules from './Rules';
2
- export default interface TimeLimit<State, Move = string, PlayerId = number> extends Rules<State, Move, PlayerId> {
2
+ export default interface TimeLimit<Game, Move = string, PlayerId = number> extends Rules<Game, Move, PlayerId> {
3
3
  /**
4
4
  * Amount of time given to a player everytime it is their turn to play.
5
5
  * @param playerId Id of the player, if you want to give different time depending of the id for asymmetric games.
@@ -11,7 +11,7 @@ export default interface TimeLimit<State, Move = string, PlayerId = number> exte
11
11
  */
12
12
  startingTime?(playerId: PlayerId): number;
13
13
  }
14
- export declare function hasTimeLimit<State, Move, PlayerId>(rules: Rules<State, Move, PlayerId>): rules is TimeLimit<State, Move, PlayerId>;
14
+ export declare function hasTimeLimit<Game, Move, PlayerId>(rules: Rules<Game, Move, PlayerId>): rules is TimeLimit<Game, Move, PlayerId>;
15
15
  export declare enum GameSpeed {
16
16
  Disabled = "Disabled",
17
17
  RealTime = "RealTime"
@@ -1 +1 @@
1
- {"version":3,"file":"TimeLimit.js","sourceRoot":"","sources":["../src/TimeLimit.ts"],"names":[],"mappings":";;;AAgBA,SAAgB,YAAY,CAAwB,KAAmC;IACrF,OAAO,OAAQ,KAA0C,CAAC,QAAQ,KAAK,UAAU,CAAA;AACnF,CAAC;AAFD,oCAEC;AAED,IAAY,SAAwD;AAApE,WAAY,SAAS;IAAE,kCAAqB,CAAA;IAAE,kCAAqB,CAAA;AAAA,CAAC,EAAxD,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAA+C"}
1
+ {"version":3,"file":"TimeLimit.js","sourceRoot":"","sources":["../src/TimeLimit.ts"],"names":[],"mappings":";;;AAgBA,SAAgB,YAAY,CAAuB,KAAkC;IACnF,OAAO,OAAQ,KAAyC,CAAC,QAAQ,KAAK,UAAU,CAAA;AAClF,CAAC;AAFD,oCAEC;AAED,IAAY,SAAwD;AAApE,WAAY,SAAS;IAAE,kCAAqB,CAAA;IAAE,kCAAqB,CAAA;AAAA,CAAC,EAAxD,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAA+C"}
package/dist/Undo.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import Action from './Action';
2
- export default interface Undo<State, Move = string, PlayerId = number> {
2
+ export default interface Undo<Game, Move = string, PlayerId = number> {
3
3
  canUndo(action: Action<Move, PlayerId>, consecutiveActions: Action<Move, PlayerId>[]): boolean;
4
- restoreLocalMoves?(localState: State): void;
4
+ restoreLocalMoves?(localState: Game): void;
5
5
  }
6
- export declare function hasUndo<State, Move, PlayerId>(rules: Object): rules is Undo<State, Move, PlayerId>;
6
+ export declare function hasUndo<Game, Move, PlayerId>(rules: Object): rules is Undo<Game, Move, PlayerId>;
package/dist/Undo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Undo.js","sourceRoot":"","sources":["../src/Undo.ts"],"names":[],"mappings":";;;AAOA,SAAgB,OAAO,CAAwB,KAAa;IAC1D,IAAM,IAAI,GAAG,KAAoC,CAAA;IACjD,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,CAAA;AAC3C,CAAC;AAHD,0BAGC"}
1
+ {"version":3,"file":"Undo.js","sourceRoot":"","sources":["../src/Undo.ts"],"names":[],"mappings":";;;AAOA,SAAgB,OAAO,CAAuB,KAAa;IACzD,IAAM,IAAI,GAAG,KAAmC,CAAA;IAChD,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,CAAA;AAC3C,CAAC;AAHD,0BAGC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/rules-api",
3
- "version": "5.20.0",
3
+ "version": "5.21.0",
4
4
  "description": "API to implement the rules of a board game",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,5 +27,5 @@
27
27
  "devDependencies": {
28
28
  "i18next": ">=21.3.0"
29
29
  },
30
- "gitHead": "f04c7333a2295153061eac50ad910375fc50758c"
30
+ "gitHead": "0caeae47e4d92831c1ed8191d35c5b9d8dfed9ce"
31
31
  }
package/dist/Game.d.ts DELETED
@@ -1,10 +0,0 @@
1
- export default interface Game<State, Move = string> {
2
- state: State;
3
- play(move: Move): void;
4
- getAutomaticMoves?(): Move[];
5
- }
6
- export declare function applyAutomaticMoves<State, Move>(game: Game<State, Move>, preprocessMove?: (move: Move) => void): void;
7
- export declare function loopWithFuse(repeat: () => boolean, options?: {
8
- attempts?: number;
9
- errorFn?: () => Error;
10
- }): void;
package/dist/Game.js DELETED
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loopWithFuse = exports.applyAutomaticMoves = void 0;
4
- var RandomMove_1 = require("./RandomMove");
5
- function applyAutomaticMoves(game, preprocessMove) {
6
- var moves = [];
7
- loopWithFuse(function () {
8
- if (moves.length === 0 && game.getAutomaticMoves) {
9
- moves.push.apply(moves, (0, RandomMove_1.randomizeMoves)(game, game.getAutomaticMoves()));
10
- }
11
- var move = moves.shift();
12
- if (move) {
13
- if (preprocessMove)
14
- preprocessMove(move);
15
- game.play(JSON.parse(JSON.stringify(move)));
16
- return true;
17
- }
18
- else {
19
- return false;
20
- }
21
- }, { errorFn: function () { return new Error("Infinite loop detected while applying move consequences: ".concat(JSON.stringify(game.getAutomaticMoves()), ")")); } });
22
- }
23
- exports.applyAutomaticMoves = applyAutomaticMoves;
24
- function loopWithFuse(repeat, options) {
25
- var attempts = (options === null || options === void 0 ? void 0 : options.attempts) || (process.env.NODE_ENV === 'development' ? 100 : 1000);
26
- var errorFn = (options === null || options === void 0 ? void 0 : options.errorFn) || (function () { return new Error('Infinite loop detected'); });
27
- while (repeat()) {
28
- if (attempts == 0) {
29
- throw errorFn();
30
- }
31
- attempts--;
32
- }
33
- }
34
- exports.loopWithFuse = loopWithFuse;
35
- //# sourceMappingURL=Game.js.map
package/dist/Game.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Game.js","sourceRoot":"","sources":["../src/Game.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAU3C,SAAgB,mBAAmB,CAAc,IAAuB,EAAE,cAAqC;IAC7G,IAAM,KAAK,GAAW,EAAE,CAAA;IACxB,YAAY,CAAC;QACX,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAChD,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,IAAA,2BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAC;SAC9D;QACD,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,IAAI,EAAE;YACR,IAAI,cAAc;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAA;SACZ;aAAM;YACL,OAAO,KAAK,CAAA;SACb;IACH,CAAC,EAAE,EAAC,OAAO,EAAE,cAAM,OAAA,IAAI,KAAK,CAAC,mEAA4D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAkB,EAAE,CAAC,MAAG,CAAC,EAAnH,CAAmH,EAAC,CAAC,CAAA;AAC1I,CAAC;AAfD,kDAeC;AAED,SAAgB,YAAY,CAAC,MAAqB,EAAE,OAAsD;IACxG,IAAI,QAAQ,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACzF,IAAM,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,CAAC,cAAM,OAAA,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAnC,CAAmC,CAAC,CAAA;IAC/E,OAAO,MAAM,EAAE,EAAE;QACf,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,MAAM,OAAO,EAAE,CAAA;SAChB;QACD,QAAQ,EAAE,CAAA;KACX;AACH,CAAC;AATD,oCASC"}
@@ -1,4 +0,0 @@
1
- import Game from './Game';
2
- export default interface GameCreator<State, Move = string> {
3
- new (state: State): Game<State, Move>;
4
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=GameCreator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GameCreator.js","sourceRoot":"","sources":["../src/GameCreator.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- import Rules from './Rules';
2
- export default abstract class SequentialGame<State, Move = string, PlayerId = number> implements Rules<State, Move, PlayerId> {
3
- state: State;
4
- protected constructor(game: State);
5
- abstract play(move: Move): void;
6
- isLegalMove(playerId: PlayerId, move: Move): boolean;
7
- getActivePlayer?(): PlayerId | undefined;
8
- isTurnToPlay(playerId: PlayerId): boolean;
9
- getLegalMoves?(): Move[];
10
- isOver(): boolean;
11
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
7
- var Eliminations_1 = require("./Eliminations");
8
- var SequentialGame = /** @class */ (function () {
9
- function SequentialGame(game) {
10
- this.state = game;
11
- }
12
- SequentialGame.prototype.isLegalMove = function (playerId, move) {
13
- if (!this.getLegalMoves || !this.getActivePlayer) {
14
- throw new Error('You must either implement "isLegalMove" or ("getLegalMoves" and "getActivePlayer")');
15
- }
16
- if (playerId !== this.getActivePlayer()) {
17
- return false;
18
- }
19
- if (this.getLegalMoves().some(function (legalMove) { return (0, fast_deep_equal_1.default)(move, legalMove); })) {
20
- return true;
21
- }
22
- if ((0, Eliminations_1.hasEliminations)(this) && this.giveUpMove) {
23
- return (0, fast_deep_equal_1.default)(move, this.giveUpMove(playerId));
24
- }
25
- return false;
26
- };
27
- SequentialGame.prototype.isTurnToPlay = function (playerId) {
28
- if (!this.getActivePlayer) {
29
- throw new Error('You must either implement "isTurnToPlay" or "getActivePlayer"');
30
- }
31
- return playerId === this.getActivePlayer();
32
- };
33
- SequentialGame.prototype.isOver = function () {
34
- if (!this.getActivePlayer) {
35
- throw new Error('You must either implement "isOver" or "getActivePlayer"');
36
- }
37
- return this.getActivePlayer() === undefined;
38
- };
39
- return SequentialGame;
40
- }());
41
- exports.default = SequentialGame;
42
- //# sourceMappingURL=SequentialGame.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SequentialGame.js","sourceRoot":"","sources":["../src/SequentialGame.ts"],"names":[],"mappings":";;;;;AAAA,oEAAmC;AACnC,+CAA8C;AAG9C;IAGE,wBAAsB,IAAW;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAID,oCAAW,GAAX,UAAY,QAAkB,EAAE,IAAU;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAA;SACtG;QACD,IAAI,QAAQ,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE;YACvC,OAAO,KAAK,CAAA;SACb;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,IAAA,yBAAK,EAAC,IAAI,EAAE,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAAE;YAClE,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAA,8BAAe,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,OAAO,IAAA,yBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAID,qCAAY,GAAZ,UAAa,QAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;SACjF;QACD,OAAO,QAAQ,KAAK,IAAI,CAAC,eAAe,EAAE,CAAA;IAC5C,CAAC;IAID,+BAAM,GAAN;QACE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QACD,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,SAAS,CAAA;IAC7C,CAAC;IACH,qBAAC;AAAD,CAAC,AA1CD,IA0CC"}
@@ -1,11 +0,0 @@
1
- import Rules from './Rules';
2
- export default abstract class SimultaneousGame<State, Move = string, PlayerId = number> implements Rules<State, Move, PlayerId> {
3
- state: State;
4
- protected constructor(game: State);
5
- abstract play(move: Move): void;
6
- isLegalMove(playerId: PlayerId, move: Move): boolean;
7
- abstract isTurnToPlay(playerId: PlayerId): boolean;
8
- getLegalMoves?(playerId: PlayerId): Move[];
9
- getPlayerIds?(): PlayerId[];
10
- isOver(): boolean;
11
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
7
- var Eliminations_1 = require("./Eliminations");
8
- var SimultaneousGame = /** @class */ (function () {
9
- function SimultaneousGame(game) {
10
- this.state = game;
11
- }
12
- SimultaneousGame.prototype.isLegalMove = function (playerId, move) {
13
- if (typeof this.getLegalMoves === 'undefined') {
14
- throw new Error('You must either implement "isLegalMove" or "getLegalMoves');
15
- }
16
- if (this.getLegalMoves(playerId).some(function (legalMove) { return (0, fast_deep_equal_1.default)(move, legalMove); })) {
17
- return true;
18
- }
19
- if ((0, Eliminations_1.hasEliminations)(this) && this.giveUpMove) {
20
- return (0, fast_deep_equal_1.default)(move, this.giveUpMove(playerId));
21
- }
22
- return false;
23
- };
24
- SimultaneousGame.prototype.isOver = function () {
25
- var _this = this;
26
- if (!this.getPlayerIds) {
27
- throw new Error('You must either implement "isOver" or "getPlayerIds"');
28
- }
29
- return !this.getPlayerIds().some(function (playerId) { return _this.isTurnToPlay(playerId); });
30
- };
31
- return SimultaneousGame;
32
- }());
33
- exports.default = SimultaneousGame;
34
- //# sourceMappingURL=SimultaneousGame.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SimultaneousGame.js","sourceRoot":"","sources":["../src/SimultaneousGame.ts"],"names":[],"mappings":";;;;;AAAA,oEAAmC;AACnC,+CAA8C;AAG9C;IAGE,0BAAsB,IAAW;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAID,sCAAW,GAAX,UAAY,QAAkB,EAAE,IAAU;QACxC,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;SAC7E;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS,IAAI,OAAA,IAAA,yBAAK,EAAC,IAAI,EAAE,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAAE;YAC1E,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,IAAA,8BAAe,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5C,OAAO,IAAA,yBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;SAC9C;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAQD,iCAAM,GAAN;QAAA,iBAKC;QAJC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;SACxE;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAA3B,CAA2B,CAAC,CAAA;IAC3E,CAAC;IACH,uBAAC;AAAD,CAAC,AAlCD,IAkCC"}