Ich erstelle ein grundlegendes Kartenspiel (21) in JavaScript, wo jeder Spieler eine Hand der Karten hat. Die Spieler beginnen mit 2 Karten, aber ich möchte abhängig vom Gesamtwert der Karten neue Karten hinzufügen und anpassen, ob ein As vorhanden ist oder nicht.Kartenspiel in Javascript, Konstruktor Funktion Fehler
Leider bekomme ich diesen Fehler: FATAL ERROR: CALL_AND_RETRY_LAST Zuweisung fehlgeschlagen - JavaScript-Heap nicht genügend Arbeitsspeicher. Ich denke das Problem muss mit der this.newCard Methode, ich kann einfach nicht verstehen, warum es nicht funktioniert.
function Hand() {
this.cards = []
this.cardsAtStart = function() {
this.cards.push(new DealCards, new DealCards)
return this.cards
}
this.checkValue = function() {
let cardsInHand = this.cardsAtStart()
let ace = false
let value = 0
for (let i = 0; i < cardsInHand.length; i++) {
if (cardsInHand[i].cardnumber === 'A' && !ace) {
ace = true
value = value + 13
}
value = value + cardsInHand[i].cardvalue
}
if (ace && value > 21) {
value = value - 13
}
console.log(value)
return value
}
this.newCard = function() {
let value = this.checkValue()
console.log(value)
while (value < 15) {
this.cards.push(new DealCards)
}
if (value > 15) {
endGame()
}
console.log(this.cards)
}
}
Eine Karte Objekt sieht wie folgt aus: { suit: '♦', cardnumber: 'K', cardvalue: 13 }
wo Ihre break-Anweisung innerhalb der while ist 'while (Wert < 15) { this.cards.push (neue DealCards) } ' –
Wie sieht Ihre Konsolenausgabe aus? wahrscheinlich eine unendliche while-Schleife –
Verpassen Sie das Semikolon ';' absichtlich? – Ivan86