Projekt: Lotto -- Gott würfelt nicht!

Übersicht



So soll Albert Einstein gesagt haben. Aber wir verwenden die Zufallsfunktionen, um ein wenig Abwechslung ins Spiel zu bringen.

Daten ändern mit Methode

Berechnungen werden in einen extra Bereich gelegt: methods.

Hier die neue Struktur von lotto.vue:

<script>
export default {
  name: 'lotto',
  data () {
    return {
      headline: 'Lotto',
      msg: 'Ist das der große Gewinn?',
      anzahl: 6,
      min: 1,
      max: 49,
      ziehung: []
    }
  },
  methods: {
    dice: function () {
      this.ziehung = []
      do {
        var x = Math.floor(Math.random() * (this.max - this.min + 1)) + this.min
        console.log(this.ziehung.indexOf(x), this.ziehung.length, x)
        if (this.ziehung.indexOf(x) < 0) {
          this.ziehung.push(x)
        }
      } while (this.ziehung.length < this.anzahl)
    }
  }
}
</script>

Die Funktion heißt dice (engl. für würfeln). Mit dem Schlüsselwort this werden die Variablen im data-Block referenziert. Für jeden Aufruf von dice wird die Variable ziehung gelöscht. Danach beginnt die neue Ziehung, die erst endet, wenn die Länge der Liste, der Vorgabe in anzahl entspricht. Mit console.log werden die Werte ausgegeben. Mit if beginnend wird geprüft, ob die Zahl schon in der ziehung enthalten ist und nur wenn der Vergleich negativ ist, wird die Zahl hinzugefügt. Damit werden doppelte Einträge vermieden.

Wenn alles fehlerfrei läuft, muss die Funktion noch aufgerufen werden. Wie das geht, zeigt die nächste Lektion.