UNPKG

@gamepark/rules-api

Version:

API to implement the rules of a board game

35 lines 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rankPlayers = void 0; var Competitive_1 = require("../Competitive"); var rankPlayers = function (rules, playerA, playerB) { if ((0, Competitive_1.isCompetitiveRank)(rules)) { return rules.rankPlayers(playerA, playerB); } if ((0, Competitive_1.isCompetitiveScore)(rules)) { var scoreA = rules.getScore(playerA); var scoreB = rules.getScore(playerB); if (scoreA !== scoreB) { return rules.rankByLowerScore ? scoreA - scoreB : scoreB - scoreA; } if (rules.getTieBreaker) { for (var tieBreaker = 1; tieBreaker <= 10; tieBreaker++) { var tieBreakerA = rules.getTieBreaker(tieBreaker, playerA); var tieBreakerB = rules.getTieBreaker(tieBreaker, playerB); if (tieBreakerA === undefined) { return tieBreakerB === undefined ? 0 : Infinity; } else if (tieBreakerB === undefined) { return -Infinity; } else if (tieBreakerA !== tieBreakerB) { return tieBreakerB - tieBreakerA; } } console.error('getTieBreaker must return "undefined" after the last tie breaker is still a tie!'); } } return 0; }; exports.rankPlayers = rankPlayers; //# sourceMappingURL=rank.util.js.map