Je fais un jeu de cartes en tant que mission et je suis bloqué au dernier obstacle. Le problème que j'ai est que j'ai besoin d'un contrôle de condition pour voir et déterminer la valeur d'une carte dépendante du résultat. L'ACE dans ce jeu pourrait valoir 1 ou 14 en fonction de ce qui est le plus bénéfique pour le résultat. Le jeu est une sorte de blackjack mais chaque carte a sa valeur nominale en dehors de l'ACE qui peut valoir 1 et 14. Je peux vérifier et mettre la valeur à 1 ou 14 si la somme des cartes est 7 ou Moins. 7 + 14 = 21 et le plus bénéfique pour le jeu. Mais je ne peux pas obtenir le code correct pour le contraire: si la première carte est une ACE et que sa valeur est fixée à 14 et la deuxième carte est un 9, le résultat sera 23 et le joueur est éclaté. J'ai besoin ACE à une valeur de 1, alors ... La valeur par défaut d'un ACE est 1. Le code que j'ai à ce jour est:Inverser la valeur de consigne avec la clause de condition
this.dealCard = function() {
this.dealedHand.push(shuffledDeck.shift())
let sum = 0
this.dealedHand.forEach(function (card) {
if (card.value === 1 && sum <= 7) {
card.value = 14
} //Another condition clause to reverse that and let the ACE be 1 again...
sum = sum + card.value
})
this.dealedHandSum = sum
}
for (let i = 0; i < 2; i++) {
this.dealCard()
}
while (this.dealedHandSum < player.stopAtValue) {
this.dealCard()
}
Cette fonction est d'additionner les cartes décalées dans la main.
Tout le reste fonctionne comme il se doit, mais je veux éviter que cela se produise:
Johanna: A♠ K♣ 27
Johanna got 27 and is busted!
double possible de [Y at-il une façon élégante de faire face à l'As dans le Blackjack?] (Https: // stackoverflow .com/questions/837951/est-il-un-moyen-de-traiter-avec-l'ac-au-blackjack) – GottZ