Anfänger JS Ausgabe je nach Anzahl

D0bby

Cadet 3rd Year
Registriert
Aug. 2023
Beiträge
55
Aloha

bin gerade wieder ein wenig am üben und bin dabei auf eine Challenge für mich gestoßen.
Bei meinem Fall ist es quasi ein Würfel-Spiel (oder soll es werden). Man kann vorher die Würfelanzahl bestimmen und dann rnd auswürfeln - nix dolles.
Bei der Ausgabe kommt es dann aber immer zu einer Zahlen Wurst und da begann die Challenge für mich.

Ich denke meine Lösung ist noch sehr simpel und Anfängerhaft - daher die Nachfrage zu Verbesserungen.


Zusätzlich ist mir dabei aufgefallen, das .pop() zwar das letzte Element entfernt, aber nicht wenn es nur ein Element gibt?! Ist das korrekt?

Grüße


https://jsfiddle.net/5p1gcfa3/
 
Javascript:
y = wuerfel_counter[x - 1];
ist falsch und deine Annahme ist, dass es
Javascript:
y = wuerfel_counter.at(x-1);
entspricht.

Grundsätzlich also immer Variablen sinnvoll benennen. Nun denn, erstmal kannst du selber weiter probieren.
 
  • Gefällt mir
Reaktionen: BeBur und D0bby
D0bby schrieb:
Ich denke meine Lösung ist noch sehr simpel und Anfängerhaft - daher die Nachfrage zu Verbesserungen.
Du solltest erstmal versuchen deine eigene Lösung komplett umzusetzen. Wenn du das fertig hast kannst du mal versuchen das hier auseinander zu nehmen und zu verstehen:

Javascript:
let min = 1;
let max = 6;
let wuerfel_anzahl = 4;

const wuerfel = new Array(wuerfel_anzahl)
  .fill(null)
  .map(() => Math.floor(Math.random() * (max - min + 1) + min))
  .join(", ");

const ergebnis = [
  "Die Würfel sind gefallen!",
  wuerfel_anzahl > 1 ? "Es sind die Zahlen:" : "Es ist die Zahl:",
  wuerfel
].join(" ");

console.log(ergebnis);

D0bby schrieb:
Zusätzlich ist mir dabei aufgefallen, das .pop() zwar das letzte Element entfernt, aber nicht wenn es nur ein Element gibt?! Ist das korrekt?
Das ist nicht korrekt. .pop() entfernt auch das einzige Element aus einem Array.
 
  • Gefällt mir
Reaktionen: D0bby
elgorro schrieb:
ist falsch und deine Annahme ist, dass es

Sorry das ich da noch mal etwas "dumm" nachfragen muss, aber das verstehe ich nicht ganz.

Ja auf jeden fall muss ich das besser benennen.
Nur sehe ich meinen Fehler nicht :freak:

x ist die Würfel Anzahl als länge im Array. Damit ich den letzten Würfel nach dem "und" ansprechen kann nehme ich die länge des Arrays -1 und hab damit die Position des Würfels.

Und es funktioniert ja :/
Ergänzung ()

@Kano
Deine Lösung ist sehr cool - aber auch mit einigen ? bei mir. Da werde ich mich sehr gerne dran setzen.
Vielen Dank
 
Zuletzt bearbeitet:
D0bby schrieb:
Und es funktioniert ja :/
Tatsächlich ja, aber nicht wie du dir vorstellst.

Javascript:
let min = 1;
let max = 6;
let wuerfel_anzahl = 3;
let wuerfel_counter = [];
let test = [1];

const wuerfel = function(wuerfel) {
    for (let i = 0; i < wuerfel; ++i) {
        let rnd_number = Math.floor(Math.random() * (max - min + 1) + min);
        wuerfel_counter.push(rnd_number);
        console.log("Würfle " + i + ". Ergebnis: " + rnd_number);
    }
   
};

const ausgabe = function() {
    x = wuerfel_counter.length;
    console.log("Mein Array hat die Größe: " + x);
    y = wuerfel_counter[x - 1];
    console.log("Welchen Wert hat meinee Variable y? " + y);
    //Brauchst du eigentlich nicht, da es eigentlich gar nichts macht.
    //wuerfel_counter.pop();
    if (x > 1) {
        console.log(`Die Würfel sind gefallen! Es sind die Zahlen ${wuerfel_counter.join(" ")} und ${y}`);
    } else {
        console.log(`Die Würfel sind gefallen! Es ist die Zahl ${y}`);
    }
};


wuerfel(wuerfel_anzahl);
ausgabe();
console.log(test.pop());

Lass den nun ein paar mal laufen ("RUN in fiddle" bzw F5 im Browser - dann reden wir ggf. noch einmal.
 
Zurück
Oben