blackjack logic written in vue
https://luna-development.net/blackjack/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
913 B
44 lines
913 B
class Card { |
|
color; |
|
symbol; |
|
points; |
|
facingDown = false; |
|
assetUrl; |
|
backAssetUrl; |
|
|
|
constructor(color, symbol, points, assetBaseUrl = 'img/') { |
|
this.color = color; |
|
this.symbol = symbol; |
|
this.points = points; |
|
this.assetUrl = this.createAssetPath(assetBaseUrl); |
|
this.backAssetUrl = this.createBackAssetPath(assetBaseUrl); |
|
} |
|
|
|
createAssetPath(assetBaseUrl) { |
|
return assetBaseUrl + this.color + this.symbol + '.png' |
|
} |
|
|
|
createBackAssetPath(assetBaseUrl) { |
|
return assetBaseUrl + 'back.png' |
|
} |
|
|
|
isAnAce() { |
|
return this.symbol === 'a'; |
|
} |
|
|
|
flip() { |
|
this.facingDown = !this.facingDown; |
|
} |
|
|
|
isFacingDown() { |
|
return this.facingDown; |
|
} |
|
|
|
get assetUrl() { |
|
if (this.isFacingDown()) { |
|
return this.backAssetUrl; |
|
} |
|
|
|
return this.assetUrl; |
|
} |
|
}
|
|
|