UNPKG

ts-cards

Version:
85 lines (84 loc) 3.3 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var _this = this; Object.defineProperty(exports, "__esModule", { value: true }); exports.standardCardCompare = exports.standardRankValues = exports.StandardDeck = void 0; var deck_1 = require("../deck"); var card_1 = require("../card"); var ranks_1 = require("../ranks"); var suits_1 = require("../suits"); /** * @class PinochelDeck * @extends Deck */ var StandardDeck = /** @class */ (function (_super) { __extends(StandardDeck, _super); function StandardDeck() { return _super.call(this, generateDeck()) || this; } return StandardDeck; }(deck_1.Deck)); exports.StandardDeck = StandardDeck; var suits = [suits_1.spades, suits_1.diamonds, suits_1.clubs, suits_1.hearts]; var ranks = [ranks_1.two, ranks_1.three, ranks_1.four, ranks_1.five, ranks_1.six, ranks_1.seven, ranks_1.eight, ranks_1.nine, ranks_1.ten, ranks_1.jack, ranks_1.queen, ranks_1.king, ranks_1.ace]; var generateDeck = function () { var cards = []; for (var _i = 0, suits_2 = suits; _i < suits_2.length; _i++) { var suit = suits_2[_i]; for (var _a = 0, ranks_2 = ranks; _a < ranks_2.length; _a++) { var rank = ranks_2[_a]; cards.push(new card_1.Card(suit, rank, _this)); } } return cards; }; exports.standardRankValues = new Map(); exports.standardRankValues.set(ranks_1.two, 2); exports.standardRankValues.set(ranks_1.three, 3); exports.standardRankValues.set(ranks_1.four, 4); exports.standardRankValues.set(ranks_1.five, 5); exports.standardRankValues.set(ranks_1.six, 6); exports.standardRankValues.set(ranks_1.seven, 7); exports.standardRankValues.set(ranks_1.eight, 8); exports.standardRankValues.set(ranks_1.nine, 9); exports.standardRankValues.set(ranks_1.ten, 10); exports.standardRankValues.set(ranks_1.jack, 11); exports.standardRankValues.set(ranks_1.queen, 12); exports.standardRankValues.set(ranks_1.king, 13); exports.standardRankValues.set(ranks_1.ace, 14); var standardCardCompare = function (a, b, leadSuit, trump) { var bRank = exports.standardRankValues.get(b.rank); var aRank = exports.standardRankValues.get(a.rank); if (a.suit === b.suit) { return (bRank ? bRank : 0) - (aRank ? aRank : 0); } else { if (b.suit === trump) { return 1; } else if (a.suit === trump) { return -1; } else if (b.suit === leadSuit) { return 1; } else { return -1; } } }; exports.standardCardCompare = standardCardCompare;