card-factory
Version:
A comprehensive library for card manipulation
63 lines (62 loc) • 1.51 kB
JavaScript
import Card from "../card";
/**
* @props suit, symbol, number, value, color
* @methods updateValue(newValue)
*/
export default class PlayingCard extends Card {
suit;
symbol;
number;
value;
color;
constructor(number, suit, value = 0) {
super();
this.suit = suit;
this.number = number;
this.value = value;
// Set value based on number
this.value = this.getCardValue(number);
// Set symbol & color based on suit
this.symbol = this.getCardSymbol(suit);
this.color = this.getCardColor(suit);
}
getCardValue(number) {
switch (number) {
case "A":
return 1;
case "J":
return 11;
case "Q":
return 12;
case "K":
return 13;
case "joker":
return 100;
default:
return parseInt(number);
}
}
getCardSymbol(suit) {
const symbols = {
spade: "♠",
diamond: "♦",
club: "♣",
heart: "♥",
joker: "joker",
};
return symbols[suit];
}
getCardColor(suit) {
const colors = {
spade: "black",
club: "black",
diamond: "red",
heart: "red",
joker: "joker",
};
return colors[suit];
}
updateValue = (newValue) => {
this.value = newValue;
};
}