Beiträge von tacodek

    Ich sitze nun seid Dienstag wieder fest. Ich habe zwei Buttons. Einen um Deck1 aufzudecken und einen um Deck2 aufzudecken. Bei Button2 werden die 3 verdeckten Karten perfekt aufgedeckt. Bei Button 1 allerdings werden nur zwei sichtbar. Es existieren wirklich 3 Karten innerhalb des Decks und auch innerhalb des deckContainers in die die Karten beim Anklicken der Buttons hineinwandern. Allerdings sind nur 2 Karten sichtbar. Ich verstehe das nicht.

    Ich habe den Code jetzt sogar erstmals abgekürzt, sodass die Buttons unabhängig der Spielerrolle anklickbar sind etc. aber mir fällt nichts auf.

    Kannst du mir bitte helfen? Anbei ist der Code auschnitt und Bild zum Zustand.

    Klicken auf Ansehen(Deck1):

    image.png

    Klicken auf Ansehen Deck2:

    image.png

    Ich hatte den da noch nicht programmiert. Hier ist der Code Auszug. das letzte }); schließt das DOM Loaded ganz am Anfang meines Frontend. Also der Fehler müsste in diesem Ausschnitt liegen, da der Rest technisch funktioniert auch wenn nicht alle Console.Logs (EntwicklertoolKonsole) angezeigt werden.

    Ich frage mich auch welche Checklist ich bei solchen Fehlern durchgehen müsste. Ich habe nach Reihenfolge der Lade Inhalte geschaut und IDs und Klassen kontrolliert.

    Das verstehe ich jetzt nicht, vermutlich weil ich das Spiel und die Regeln nicht kenne. Kannst Du es genauer erklären?

    ist ein simples Skatspiel zum rein kommen . Ich will wenn spieler1 auf button ansehen drückt seine karten einsehen kann. Ich arbeite mit Perplexity KI der mir codes vorschlägt die ich aber auch nachvollziehe. Leider funktioniert es aber nicht. der button ist nicht klickbar. ich finde schon wieder seid heute morgen einfach nicht den fehler zumal konsole auch nichts sagt. wie gehst du in solchen fällen vor?

    Danke für deine schnelle Antwort. Jetzt lassen sich auf einmal doch die Karten austeilen, es lag wohl an der Reihenfolge der Codeabfolge. Ich fülle die Kind Elemente von Stapel mit Script generierten IMG-Tags, weil ich die Vorderseiten der Karten aus dem Backend erst ausliefere(damit niemand auf die Idee kommt über Element untersuchen zu schummeln).

    Hast du eine Idee wie ich den Code am besten sagen kann im welchen Bereich noch Runde 1 von 4 Runden (4 Leben jeder Spieler) ist?

    Die KI hat mir gesagt, dass ich pro aus teil klick messen könnte welche Runde gerade ist. Und den Button dann bis zur nächsten runde sperre. Das klingt mir aber irgendwie zu unüblich und nicht als Best Practise. Wie würdest du das machen ?

    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 ?

    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}`);
    });
    });

    ||