Karten auf Decks verteilen

  • Guten Tag,

    Leider finde ich den Fehler nicht , warum ein Teil meines Frontendcodes nicht abgespielt wird.

    Ich programmiere ein Kartenspiel(Replit):

    Es geht darum, dass die Karten vom Stapel (.stapel) nicht an die Decks verteilt werden. Im Kern ist das Problem dass der Frontend-Code nicht richtig abgespielt wird. Die F12 Konsole zeigt auch keine eingerichteten Logs bezüglich dieses Parts. Hat jemand Tipps, Tricks wie ich trotzdem die Fehlerquelle weiter eingrenzen kann zumindest ? ich bin schon seid über 48 h dran und drehe mich mit Perplexity im Kreis. So langsam ist es echt zermürbend.


    Hier ist der Codeauszug:

    let aktuelleRunde = 1;
    const maxRunden = 4;
    const austeilVorgaengeProRunde = 3; // 3 Austeilvorgänge pro Runde

    document.addEventListener("DOMContentLoaded", () => {
    console.log("DOM vollständig geladen, Listener läuft");
    const button = document.getElementById("karten-austeilen");
    const stapel = document.querySelector(".stapel");

    const deckspieler1_1 = document.getElementById("deckspieler1_1");
    const deckspieler1_2 = document.getElementById("deckspieler1_2");
    const deckspieler2_1 = document.getElementById("deckspieler2_1");
    const deckspieler2_2 = document.getElementById("deckspieler2_2");

    // Check, ob alle wichtigen Elemente vorhanden sind
    if (!button || !stapel || !deckspieler1_1 || !deckspieler1_2 || !deckspieler2_1 || !deckspieler2_2) {
    console.error("Wichtige Elemente fehlen im DOM!");
    console.log("button:", button);
    console.log("stapel:", stapel);
    console.log("deckspieler1_1:", deckspieler1_1);
    console.log("deckspieler1_2:", deckspieler1_2);
    console.log("deckspieler2_1:", deckspieler2_1);
    console.log("deckspieler2_2:", deckspieler2_2);
    return;
    }

    function karteAusteilen(zielDeck) {
    const karte = stapel.firstElementChild;
    if (karte) {
    zielDeck.appendChild(karte);
    console.log(`Karte aus Stapel an ${zielDeck.id} ausgeteilt.`);
    } else {
    console.warn("Keine Karten mehr im Stapel zum Austeilen.");
    }
    }

    button.addEventListener("click", () => {
    console.log(`Button geklickt. Starte Runde ${aktuelleRunde}...`);
    button.disabled = true; // Button deaktivieren, Mehrfachklick verhindern

    console.log("Karten im Stapel vor Austeilen:", stapel.children.length);

    for (let i = 0; i < austeilVorgaengeProRunde; i++) {
    if (aktuelleRunde === 1 || aktuelleRunde === 3) {
    // Runden 1 & 3
    karteAusteilen(deckspieler1_1);
    karteAusteilen(deckspieler1_2);
    karteAusteilen(deckspieler2_1);
    } else if (aktuelleRunde === 2 || aktuelleRunde === 4) {
    // Runden 2 & 4
    karteAusteilen(deckspieler2_1);
    karteAusteilen(deckspieler2_2);
    karteAusteilen(deckspieler1_2);
    } else {
    console.warn("Unbekannte Runde:", aktuelleRunde);
    }
    }

    console.log("Karten im Stapel nach Austeilen:", stapel.children.length);
    console.log(`Runde ${aktuelleRunde} abgeschlossen.`);

    // Rundenummer erhöhen und zyklisch zurücksetzen
    aktuelleRunde++;
    if (aktuelleRunde > maxRunden) {
    aktuelleRunde = 1;
    console.log("Rundenzähler wurde zurückgesetzt.");
    }

    button.disabled = false; // Button wieder aktivieren
    console.log(`Bereit für die nächste Runde: ${aktuelleRunde}`);
    });
    });

    ||

  • Hallo tacodek und willkommen im Forum!

    Wenn Du Code postest, benutze bitte Codetags, das Symbol <> in der Werkzeugleiste oben. In deinem Fall wurden manche Zeichenfolgen in Smilies umgewandelt.

    Dann ist es, wenn man den Fehler finden will, am einfachsten, wenn man eine Testdatei anlegt. Dafür fehlt aber das HTML. Poste das bitte ebenfalls.

  • Hallo tacodek und willkommen im Forum!

    Wenn Du Code postest, benutze bitte Codetags, das Symbol <> in der Werkzeugleiste oben. In deinem Fall wurden manche Zeichenfolgen in Smilies umgewandelt.

    Dann ist es, wenn man den Fehler finden will, am einfachsten, wenn man eine Testdatei anlegt. Dafür fehlt aber das HTML. Poste das bitte ebenfalls.

    meinen sie eine txt datei wo ich frontend und html rein kopiere ?

  • Ja, das hilft schon Mal weiter, die Buttons etc. sind da. Allerdings fehlt der Kern der Sache, nämlich der Stapel. Das div ist leer und wird wahrscheinlich durch den GET-Request gefüllt. Um testen zu können habe ich es rasch von Hand mit 10 Elementen gefüllt:

    Damit funktioniert jedoch das Geben der Karten einwandfrei, 3 x 3 werden auf die Spieler verteilt und eine bleibt im Stapel.

    Das kann ich mir jetzt nur so erklären, dass der originale Stapel bei dir anders aussieht. Poste doch auch mal das HTML des Stapels aus der Quelltextansicht des Browsers.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!