preferans-score-js
Version:
nodejs score for preferans
57 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const prefScoreHand_1 = require("./prefScoreHand");
const _validTricks = (main, left, right) => {
if (main.failed && main.tricks > 5)
return false;
const tricks = left.tricks + right.tricks;
return main.failed ? tricks === 5 : tricks < 5;
};
const _validFails = (main, left, right) => !(main.failed && (left.failed || right.failed));
class PrefScoreHandGame extends prefScoreHand_1.default {
constructor(value, main, left, right) {
if (!_validTricks(main, left, right)) {
throw new Error('PrefScoreHandGame::constructor:Invalid tricks! ' +
'[main:' +
main.tricks +
', left:' +
left.tricks +
', right:' +
right.tricks +
']');
}
if (!_validFails(main, left, right)) {
throw new Error('PrefScoreHandGame::constructor:Invalid fails! ' +
'[main.failed:' +
main.failed +
', left.failed:' +
left.failed +
', right.failed:' +
right.failed +
']');
}
super();
this._value = value;
this._left = left;
this._main = main;
this._right = right;
}
get value() {
return this._value;
}
get left() {
return this._left;
}
get main() {
return this._main;
}
get right() {
return this._right;
}
get game() {
return true;
}
}
exports.default = PrefScoreHandGame;
//# sourceMappingURL=prefScoreHandGame.js.map