# Lottoprogramm - Brauche Hilfe



## Punkbuster (9. Dez 2009)

Nabend zusammen,
um gleich zur Sache zu kommen, die Aufgabe lautet: Simulieren Sie das Lotto-Spiel (6 aus 49) mit einer while-Schleife(Klasse Math Dienst random)

Ich komme einfach auf keine gute Idee wie ich das machen könnte, hier meine bisherigen Codesachen. Ich glaube mein Kopf explodiert gleich^^


```
/**
 * @version 9.12.2009 
 */
public class Aufgabe2
{
    // Bezugsobjekte

    // Attribute
private int i;
private int zahl;
    // Konstruktor
    public Aufgabe2()
    {
    }

    // Dienste
  
    public int lotto(int zahl1, int zahl2, int zahl3, int zahl4, int zahl5, int zahl6)
    {
        while  (i <= 6);
        {
            if (zahl1 == ziehung())
            {
                i++;
            }
            if (zahl2 == ziehung())
            {
                i++;
            }
            if (zahl3 == ziehung())
            {
                i++;
            }
            if (zahl4 == ziehung())
            {
                i++;
            }
            if (zahl5 == ziehung())
            {
                i++;
            }
            if (zahl6 == ziehung())
            {
                i++;
            }        
        }
        return i;
    }

    private int ziehung()
    {
        return (int)(Math.random() * 49)+1;
    }
}
```

Hoffe einer kann mir möglichst Schnell helfen ;-)


----------



## partsch (9. Dez 2009)

```
import java.util.Random;
public class LottoSpiel { 
	private static final int MAX_ZIEHUNGEN 	= 6;
	private static final int MAX_VALUE 		= 49;
	
	private int[][] tipps;
	private int[] ziehung;
	private Random generator;
	
	public static void main(String...args){
		run();
	}
	
	public static void run(){
		int[][]my_tipps = {{1, 16,32, 21, 44, 36},
						  {34, 23, 9, 44, 33, 3}};
		LottoSpiel my_game = new LottoSpiel(my_tipps);
			my_game.fillZiehung();
			my_game.vergleich();
	}
	
	private LottoSpiel(int[][]tipps){
		this.ziehung = new int[MAX_ZIEHUNGEN];
		generator = new Random();
		this.tipps = tipps;
	}
	
	private void fillZiehung(){
		for(int i=0; i<MAX_ZIEHUNGEN; i++){
			ziehung[0] = generator.nextInt(MAX_VALUE+1);
		}
	}
	
	private void vergleich(){
		for(int i=0; i<tipps.length; i++){
			int gleichheit = 0;
			for(int j=0; j<ziehung.length; j++){
				if(tipps[i][j] == ziehung[j])
					++gleichheit;

			}
			if(gleichheit < 3)
				System.out.println("Sie haben leider in der "+(i+1)+". Reihe einen falschen tipp abgegeben.");
			else
				System.out.println("GLÜCKWUNSCH! Sie haben einen "+gleichheit+"er in der "+(i+1)+". Reihe getippt!!!");
		}
	}
}
```
Also hier wird im Konstruktor ein 2-Dim Array Übernommen wobei jede Reihe für einen Tipp steht
und dieser wird dann mit dem Random befüllten Array verglichen


----------



## Punkbuster (9. Dez 2009)

ähm also soviel info hette ich noch nicht, als das ich das verstehe würde :-D 

was mache ich den bei mir falsch
außer while (blub) hat hab ich nen ; das ist falsch
aber bei mir wird immer 7 ausgegeben ?!


----------



## partsch (9. Dez 2009)

naja dein i zählt ja in der while schleife solange es < = 6 ist
und wenn i dann 7 wird geht das programm aus der schleife raus und der
nächste befehl ist return i; und i ist ja wie erwähnt am ende der schleife 7 :toll:


----------

