# Frage zu "Lottozahlen"



## bugmenot (17. Sep 2008)

Hallo Guys,
Ich habe mal ne Aufgebanestellung aus meinem INF LK mitgebracht.
Wir haben dieses Prog dazu bekommen:


```
import java.util.*;

public class Zufall
{
   private static Random r;
   private static boolean rWurdeErzeugt = false;

   public static int zahl (int n) {
       if (!rWurdeErzeugt) {
           r = new Random();
           rWurdeErzeugt = true;
       }
       int i;
       i = r.nextInt(n);  
       i = i+1;
       return i;
    }
}
```

Jetzt sagte er uns wir sollen daraus ein Programm schreiben was das ziehen der Lottozahlen simuliert, aber das is für mich undenkbar, ich KANNS einfach nict.
Könntet ihr vll. mal was rudimentäres schreiben und dan gleich mit Kommentaren? PLS

MFG Bugg


----------



## L-ectron-X (17. Sep 2008)

Vergiss es, wir machen keine Hausaufgaben.
*verschoben*


----------



## Andi87 (17. Sep 2008)

Ihr lernt in der Schule java? In welcher Klasse denn?

z.B. 

```
int zufallsZahl = Zufall.zahl(49)
```
liefert dir eine Zufallszahl aus 49.... naja und wenn du das 6x (z.b. in einer Schleife) aufrufst hast du 6 Zufallszahlen.


----------



## Gast (17. Sep 2008)

@l-ectron: richtig

Nichts desto trotz finde ich den "Zufallsgenerator schon etwas umständlich... aber gut, er ist immer noch leicht verständlich und sollte bei richtiger Benutzung die gewünschten Zahlen liefern.

@Thread Ersteller:

Du hast LK und kommst noch nicht mal ansatzweise auf die Aufgabenstellung klar?! Soetwas ist mir unbegreiflich...


----------



## bugmenot (17. Sep 2008)

Na hab du mal 3 Wochen lang Fieber...
Dan verpasst du auch nichts mitbekommen
Ich versuch halt atm wieder rein zu komen


----------



## SlaterB (17. Sep 2008)

'intelligente Ausrede' könnte man sagen nach eher plumpen Beginn,
aber das bringt nix, sowas musst du mit deinem Lehrer klären,

ein einfaches Lehrbuch zu absoluten Grundlagen lesen wäre auch denkbar


----------



## bugmenot (17. Sep 2008)

OK ich habs nich nötig mich zu rechtfertigen oder im Stoff hinterher zu hängen, türlich könnt ich auch die anderen ausm Kurs fragen nur iwie lässt das mein Stolz nich zu^^

Achja ich bin in der 12


----------



## L-ectron-X (17. Sep 2008)

Aber dein Stolz lässt es zu, später die Arbeit von anderen als deine eigene auszugeben?
Schäm dich!


----------



## bugmenot (17. Sep 2008)

Ja es geht^^
Und um der Warheit die Ehre zu geben, in 2 Wochen sind die ersten Klausuren und dan wirds eng.
Wen ihr meint die Zufalls Funktion wäre kompliziert, wie würdet ihrs machen? Wie gesagt bitte mit Erklärung oder schliest den Thread hier einfach, aber diese Ethik Diskusion is doch scheise.

EDIT: Oo Is die Programmzeile da oben lauffähig? Also die Random Zahl aus 49?
Das is dan aber ne Java eigene Klasse oder?


----------



## L-ectron-X (17. Sep 2008)

Ich hab den Verdacht, dass du gar nichts lernen willst. Du möchtest immer nur von uns was bekommen.
Aber hier gehts anders rum. Erst, wenn wir was von dir bekommen haben, nämlich etwas Vorarbeit von dir, ein paar Gedanken, konkrete Fragen zu einem Problem etc., kannst du etwas von uns erwarten.
Eine Aufgabenstellung ins Forum zu werfen und eine fertige Lösung zu erwarten, ist einfach zu plump (um's mit SlaterB's Worten auszudrücken).


----------



## SlaterB (17. Sep 2008)

> EDIT: Oo Is die Programmzeile da oben lauffähig? Also die Random Zahl aus 49? 
> Das is dan aber ne Java eigene Klasse oder?

Zufall ist doch die Klasse, die du gepostet hast..


----------



## florian1x (17. Sep 2008)

Also man muss die aufgaben ja net kommplett für ihn machen aber ihm eine hilfestellung zu geben is ja auch ent verkehrt.

Deine Klasse "Zufall" ...

```
import java.util.*;

public class Zufall
{
   private static Random r;
   private static boolean rWurdeErzeugt = false;

   public static int zahl (int n) {
       if (!rWurdeErzeugt) {
           r = new Random();
           rWurdeErzeugt = true;
       }
       int i;
       i = r.nextInt(n); 
       i = i+1;
       return i;
    }
}
```

... erzeugt sofern ich nicht falsch liege. Zufallszahlen. (Klasse Zufall sollte im selben verzeichnis liegen)
Da es eine statische Methode ist, musst du auch kein Objekt initialisieren.
Der Aufruf der methode zahl geht über den Klassennamen und funktioniert wie folgt



			
				Andi87 hat gesagt.:
			
		

> ```
> int zufallsZahl = Zufall.zahl(49)
> ```



Der Methode "zahl" wird hierbei ein Integer Parameter übergeben welche den bereich kenzeichnet in dem 
die Zufallszahl steckt. Bei 49 wäre das der Bereich 1-49.

So und da ich denke dass euer Spiel über die Konsole ausgegeben werden soll, ist vlt noch der Befehl wichtig

```
System.out.print(""); //Schreibt etwas in die derzeitige Reihe
```
und

```
System.out.println("");//Schreibt etwas in eine neue Reihe
```

So nun musst du nurnoch 6 Zahlen erzeugen und über die Konsole ausgeben

Tipps: 
-nimm ne schleife .. am besten die For schleife und erzeuge deine 6 zahlen
-überprüfe ob deine per Zufall erzeugte zahl schon vorkam wenn ja setz den zählerindex einen zurück damit er noch einmal länger eine zahl erzeugt.

ka ob alles stimmt was ich gesagt hab aber ich glaube es.
und vlt hilft es ja auch wenns mehr eine zusamnenfassung der beiträge zuvor is


----------



## bugmenot (17. Sep 2008)

So ich hab nu:


```
public class Proggi
{
    public static void main (String[] args)
        {
            (int zah1_1 = 0; int zah1_2 = 0; int zahl_3 = 0; int zah1_4 = 0; int zah1_5 = 0; int zahl_6 = 0;)
                {
                    zahl_1 = Zufall.zahl (100);
                    zahl_2 = Zufall.zahl (100);
                    zahl_3 = Zufall.zahl (100);
                    zahl_4 = Zufall.zahl (100);
                    zahl_5 = Zufall.zahl (100);
                    zahl_6 = Zufall.zahl (100);
                }
                System.out.println("Das sind ihre Lotto Zahlen" + zahl_1 zahl_2 zahl_3 zahl_4 zahl_5 zahl_6);

            }
        }
```

Das überprüfen auf doppelzahl kommt noch, wollt erstmal nen Grundriss haben.
gibt beim Compilen aber noch Probleme. Werd da mal weiter dran arbeiten.
//Flame on


----------



## moormaster (17. Sep 2008)

florian1x hat gesagt.:
			
		

> ```
> System.out.print(""); //Schreibt etwas in die derzeitige Reihe
> ```


Jap...



> und
> 
> ```
> System.out.println("");//Schreibt etwas in eine neue Reihe
> ```



Nein. Die Methode println schreibt auch in die aktuelle "Reihe", auch als Zeile bekannt , hängt jedoch einen Zeilenumbruch ans Ende der Ausgabe und beginnt somit eine neue Zeile >hinter< der Ausgabe.


----------



## florian1x (17. Sep 2008)

gut zu wissen 
und sorry für meine falschaussage

ehm der anfang is schonma gut 

*@Bugmenot*
aber ich empfehle ein array 

```
private int[] iZahl = new int[6+1];// +1 damit man von 1 an und net von null aus zählen kann
```

und die überprüfung kannste dann das schreib ich jetzt ma einfach so in folgende methide packen

```
public boolean check(int value){

		for(int i=0;i<=iZahl.length;i++){

			if(iZahl[i]==value){
				return false; //Zahl ist schoneinma vorgekommen, gebe false zurück
			}

		}
		return true;

	}
```

Also die funktion überprüft bei jedem feld ob der angegene wert schon vorhanden ist

aufruf:


```
check(40); //überprüft ob im array 40 enthalten ist
```

ich habs noch net ausprobiert also garantiere ich net für die funktionalität


----------

