Wie man mit Hilfe von Math.random() einen Würfel simulieren kann
Wie man mit Hilfe von Math.random() einen Würfel simulieren kann

Wie man mit Hilfe von Math.random() einen Würfel simulieren kann

Tutorial

Ich habe bereits in einem Beitrag zuvor die Funktionen Math.random(), Math.floor() und Math.ceil() erklärt. Nun will ich zusätzlich erklären wie man daraus einen Würfel simuliert.

Dieser Code funtioniert ausschliesslich in der JavaScript Konsole denn er enthält noch keine Einbindungsmöglichkwit in HTML. In meinem Projekt Dicegame 1.0 zeige ich genau wie das funktioniert. Zum Rumspielen auf dem Handy nutze ich (aktuell) die App JS Code Run.

Die Berechnung richtig erstellen

Wie wir bereits wissen gibt uns Math.random eine Kommazahl zwischen 0 oder grösser bis kleiner als 1 aus. Die Frage ist, wie bekommen wir daraus eine Zahl zwischen 1 und 6.

Die Antwort lautet ganz simpel: Wir multiplizieren das Resultat mit 6, nehmen 1 dazu und runden dann ab. Rein rechnerisch auf alle 10 direkten Nachkommaziffern sähe das wie folgt aus:

  • 0,0 x 6 + 1 = 1,0 ergibt abgerundet 1
  • 0,1 x 6 + 1 = 1,6 ergibt abgerundet 1
  • 0,2 x 6 + 1 = 2,2 ergibt abgerundet 2
  • 0,3 x 6 + 1 = 2,8 ergibt abgerundet 2
  • 0,4 x 6 + 1 = 3,4 ergibt abgerundet 3
  • 0,5 x 6 + 1 = 4,0 ergibt abgerundet 4
  • 0,6 x 6 + 1 = 4,6 ergibt abgerundet 4
  • 0,7 x 6 + 1 = 5,2 ergibt abgerundet 5
  • 0,8 x 6 + 1 = 5,8 ergibt abgerundet 5
  • 0,9 x 6 + 1 = 6,4 ergibt abgerundet 6

Die Funktionen anschliessend richtig einsetzen

  1. Beginnen wir mit der Funktion: Math.random();
  2. Multiplizieren diese mit 6: Math.random()6;
  3. Nehmen wir zum Ergebnis 1 hinzu: Math.random()6+1;
  4. Zum Schluss wird noch abgerundet: Math.floor(Math.random()*6+1);

Im folgenden Codebeispiel habe ich gleich 2 Würfel gegeneinander antreten gelassen und habe das Resultat jeweils miteinander verglichen.

// Let's start playing
let diceAvatar = Math.floor(Math.random()*6+1);
let diceMachine = Math.floor(Math.random()*6+1);

//Outcome
console.log("Mein Würfel zeigt " + diceMachine);
console.log("Dein Würfel zeigt " + diceAvatar);

// Let"s evaluate the outcome
if (diceAvatar > diceMachine) {
      console.log("Du hast gewonnen!");
} else if (diceAvatar < diceMachine) {
      console.log("Ich habe gewonnen!");
} else {
      console.log("Gleichstand");
}

Je nach Ergebnis gibt die Konsole den passenden Text aus.

Du gewinnst

Du verlierst

Gleichstand

Dies war eines meiner ersten Programme in JavaScript, das nach ein paar Anlaufschwierigkeiten gut funktioniert hat. Das Ergebnis in Verbindung mit HTML und CSS zeige ich wie bereits oben erwähnt in meinem ersten JavaScript Spiel Dicegame 1.0

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.