News Ticker

Java 7: Array – Lotto Programm erstellen

Ein Array verwendet man wenn z.B. sehr viele Variablen erstellt werden sollen. So ein Aufgabe könnte man z.B. bei haben wenn man tausende von Artikelnummern mit fortlaufenden Nummern erstellen soll. Bis jetzt würden wir ja jede Variable einzeln erstellen, das wäre bei einigen tausend Variablen sehr viel Arbeit und würde den Code extrem groß machen. Mit einem Array geht so etwas aber mit nur einem Befehl.
Ein Array ist folgendermaßen aufgebaut:

<Datentyp>[] <variablenname> = new <Datentyp> [<anzahl>] ;

Hier ein Beispiel wie man ein Array mit 100 integer Werten anlegt.

int[] artikelnummern = new int [100] ;

Wichtig ist noch an zu merken das ein Array mit der Nr. 0 beginnt. das Array artikelnummern geht also von der Zahl 0 bis 99. Wenn ihr jetzt in das 15. Element den Wert 4 Speichern möchtet macht ihr das wie so:

artikelnummern[14]=4;

Wenn ihr jetzt das 15. Element von diesem Array wieder ausgeben wollt macht ihr das mit diesem Befehl.

System.out.println (artikelnummern[14]);

Jetzt aber zu der eigentlichen Aufgabe, dem Programm welches wir schreiben wollen. Jeder von euch will bestimmt einmal im Lotto gewinnen. Hier schreiben wir uns jetzt ein kleines Programm mit dem wir Lotto spielen können aber kein Geld dabei ausgeben. Das dumme ist wir Gewinnen leider auch keine Millionen :).

Bei dem Programm fordert ihr den User zunächst auf 6 Zahlen ein zu geben, wenn der Benutzer seine Zahlen eingegeben hat zeigt ihr ihm diese noch einmal. Anschließend müsst ihr per Zufallsgenerator 6 Zahlen ziehen. Jetzt ist die Frage wie bekomme kann ich eine Zufallszahl heraus bekommen. Dazu könnt ihr diesen Codeschnipsel verwenden:

import java.util.Random;  // Packege welches Importiert werden muss
int aktuelleZahl=0; 
Random mygenerator = new Random (); // Zufallsgenerator Anlegen 
aktuelleZahl=mygenerator.nextInt(50);

So wir eine Zufallszahl zwischen 0 und 49 gezogen denn beim Lotto gehen die zahlen ja bis 49. Ok die 0 Zahl 0 gibt es im Lotto eigentlich nicht aber das vernachlässigen wir erst einmal damit das Programm einfacher ist. Außerdem ist es uns auch zunächst egal ob eine Zahl 2 mal gezogen werden kann.

Jetzt wisst ihr ja wie man Zufällig eine Zahl per Random raus bekommen kann. So müsst ihr jetzt 6 Zufallszahlen ziehen. Diese Zahlen gebt ihr wieder aus so das der Benutzter sehen kann welche Zahlen gewonnen haben. Wenn der Spieler eine Zahl richtig getippt habt zeigt ihr dem Benutzer mit welchen Zahlen er gewonnen habt.

Euer Fertiges Programm sollte jetzt in etwa so aus sehen:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
package lotto;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;
 
/**
 *
 * @author Andreas
 */
public class Main {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
         try {
 
         BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
         System.out.println("*******************");
         System.out.println("***  Lottoking ***");
         System.out.println("*******************");
 
 int[] zufallsZahlen= new int [6]  ;
 int[] getippteZahlen= new int [6]  ;
 
 int g = 0;
 
          for (int i = 0; i <=5; i++)
          {
          g++;           
          System.out.println("Bitte geben Sie die " +g+ ". Zahl ein");
          getippteZahlen[i] = Integer.parseInt( input.readLine());
          }
          System.out.println("Sie haben folgende Zahlen getippt");
          for (int i = 0; i <=5; i++)
          {
              System.out.println ( getippteZahlen[i] );
          }
          System.out.println("");
 
          for (int i = 0; i <=5; i++)
          {
          //Zufallsgenerator Anlegen
          Random mygenerator = new Random();
          // Zufallsahl ziwschen 0 und 49 (50 ist exklusive
          // Grenze) erzeugen und in aktuelle/ahl speichern
          zufallsZahlen[i]=mygenerator.nextInt(50);
          }
 
          System.out.println("Die Gewinnzahlen Lauten:");
 
          for (int i = 0; i <=5; i++)
          {
              System.out.println ( zufallsZahlen[i] );
          }
 
          System.out.println("Sie haben mit folgenden Zahlen gewonnen:");
          for(int i=0; i<=5; i++)
          {
              for(int j=0; j<=5; j++)
              {
                  if (zufallsZahlen[i] == getippteZahlen[j])
                      System.out.println(getippteZahlen[j]);
              }
          }            
 
 
         }
         catch(Exception ex)
         {
  System.out.println("Irgendwas ist schief gelaufen !!!");
 
  System.out.println(ex.getMessage() );
 
         }
 
        // TODO code application logic here
    }
 
}

  • In der Zeile 9 Importiert ihr das Package welches ihr für das Random Script benötigt.
  • In der Zeile 28 legt ihr ein Array mit 6 Elementen für die Zufallszahlen an.
  • In der Zeile 29 legt ihr das Array mit den 6 Elementen an in welchem die Zahlen gespeichert werden welche der User eingibt.
  • In der Zeile 31 wird eine Laufvariable 6 mit dem Wert 0 erstellt.
  • In der Zeile 33 erstellt ihr eine For Schleife welche 6 mal durchlaufen wird. In der Forschleife zählen wir außerdem die Laufvariable i immer um die Zahl 1 hoch und beginnen mit dem wert 0.
  • In der Zeile 35 addieren wir immer die Zahl 1 auf den Inhalt der Laufvariablen g.
  • In der Zeile 36 fordert ihr den Benutzer auf seine Zahlen ein zu geben.
  • In der Zeile 37 lest ihr die Zahlen die der User ein gibt in das Array getippteZahlen ein.
  • In der Zeile 39 bis 43 zeigen wir noch einmal an welche Zahlen getippt wurden.
  • In der Zeile 46 erstellen wir wieder eine For Schleife die 6 mal durchlaufen wird.
  • In den Zeilen 47 bis 53 ziehen wir unsere 6 Zufallszahlen.
  • In der Zeile 57 bis 60 geben wir in einer For Schleife die Zufallszahlen aus.
  • In der Zeile 63 bis 70 haben wir 2 For Schleifen mit einander verschachtelt und dort drin noch eine If abfrage. Damit Fragen wir ab ob bei unseren getippten Zahlen mit den Zufallszahlen überein stimmen. Wir machen das so indem wir zunächst die erste Zufallszahl nehmen und sie mit allen 6 getippten Zahlen vergleichen. Danach nehmen wir die 2. Zufallszahl und vergleiche sie wieder mit allen 6 getippten Zahlen und so geht es mit allen Zufallszahlen weiter bis man alle verglichen hat.

Hier geht es zu den bisherigen Teilen der Artikelserie Java:

Java 1: Netbeans die ersten Schritte und Hello World

Java 2: Rechnen mit Variablen

Java 3: Werte einlesen, zwischenspeichern und wieder ausgeben

Java 4: Kassen Programm mit if Abfrage

Java 5: Kassen Programm while, do-while Schleife

Java 6: Kassen Programm For Schleife