# Zufallszahlen erraten



## Gast (7. Dez 2006)

Hallo,

ich möchte ein Programm schreiben, bei dem man eine Zahl zwischen 1 und 100 (inklusive) erraten werden soll. Dabei  soll nach jeder geratenen Zahl gesagt werden, ob sie zu klein, zu groß oder genau richtig ist. Dazu habe ich auch schon  mit Hilfe der Random-Klasse ein kleines Programm geschrieben. Mir ist jedoch nicht klar, wie ich diese Informationen (zu groß, zu klein, genau richtig) genau in das Programm einfügen muss (oder vorzugsweise eine zweite Klasse erstelle), damit das funktioniert.


```
import java.util.Random; 

public class Zufallszahlen {
	
	public static int[] ziehen(int k) {
	
		int[] die_zahlen = new int[k];
		Random rnd = new Random(); 
		for (int i = 0; i < k; i++)
		die_zahlen[i] = Math.abs(rnd.nextInt()); 
		return die_zahlen;
		
}

	public static int[] ziehen(int k, int max) {
	
		int[] die_zahlen = ziehen(k);
		for (int i = 0; i < k; i++)
		die_zahlen[i] = die_zahlen[i] % max + 1; 
		return die_zahlen; 
}
}
```

Wäre super, wenn jemand ne Idee hätte, wie man das mit einer zweiten Klasse realisieren kann!


Danke schon mal für Eure Hilfe!


----------



## SlaterB (7. Dez 2006)

wieso 'ziehst' du denn gleich k Zahlen auf einmal, reicht nicht eine?

und mit nextInt() bekommst du wohl eine Zahl zwisch -ganz ganz viel bis +ganz ganz viel,
schaue dir mal die API zu Random an, da findest du passendere Operationen

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Random.html

(ach, du benutzt modulo, das geht im Endeffekt wohl auch)
--------

die zweite Klasse braucht irgendeine Operation die mal dran kommt,
diese Operation muss die eine Zufallszahl kennen und noch fähig sein, Benutzereingaben einzulesen,
weißt du wie das geht?

dann in einer Schleife immer Eingaben lesen bis die richtige Zahl gefunden ist,
und natürlich zu jeder Eingabe einen Kommentar ausgeben,
aber versuch erstmal die Eingabe hinzubekommen


----------



## Ark (7. Dez 2006)

```
//Skizze

// Zufallszahl zwischen 1 und max inkl.
int gesucht=(int)(Math.random()*max+1);

// lasst uns raten
while((zahl=eingabe())!=gesucht){
    System.out.print("Die gesuchte Zahl ist ");
    if(gesucht>zahl) System.out.println("groesser.");
    else System.out.println("kleiner.");
}
// Zahl gefunden :)


// Kopf der Methode eingabe()
private int eingabe(){
    // der Körper fehlt noch
}
```
MfG
Ark

EDIT: @SlaterB: Bin ich jetzt zu großzügig? Sollte ich länger selbst überlegen lassen? ???:L


----------



## SlaterB (7. Dez 2006)

was heißt hier 'länger'?
für immer! 

zumindest solange wie jemand noch nicht so konfus antwort wie der hier:
http://www.java-forum.org/de/viewtopic.php?t=40615&start=30


aber es gibt solche und solche Antworten, ist doch egal


----------



## Ark (7. Dez 2006)

SlaterB hat gesagt.:
			
		

> was heißt hier 'länger'?
> für immer!


Stimmt. Lebenslanges Lernen, ist das nicht toll?!  (Das war jetzt an alle gerichtet, die meinen, von ein bisschen Computerspielen Ahnung von Informatik zu haben. :lol: )



			
				SlaterB hat gesagt.:
			
		

> zumindest solange wie jemand noch nicht so konfus antwort wie der hier:
> http://www.java-forum.org/de/viewtopic.php?t=40615&start=30


Wenn ich mir diesen Thread durchlese, brauch' ich wohl echt Hilfe. :shock: Bei den Kenntnissen frage ich mich, wie es die Einsteiger überhaupt schaffen, einen Beitragstext hier ins Forum zu stellen. (Das soll jetzt bitte niemand persönlich nehmen.)


----------



## Guest (7. Dez 2006)

Ark hat gesagt.:
			
		

> ```
> //Skizze
> 
> // Zufallszahl zwischen 1 und max inkl.
> ...



Hi Ark,

danke für Deine Antwort. Da ich nicht den hundertprozentigen Durchblick habe: Wiei mplentiere ich den Code jetzt entweder in die vorhandene Klasse oder in eine zweite Klasse. Kann man dafür auch DataInputStream aus der Klasse java.io.* benutzen? Wie müsste ich das realisieren?

Danke!


----------



## SlaterB (7. Dez 2006)

> Wiei mplentiere ich den Code jetzt entweder in die vorhandene Klasse oder in eine zweite Klasse

was kann man denn da falsch machen,
du musst doch erstmal ein Problem richtig beschreiben bevor du danach fragen kannst,

implementiere es IRGENDWIE, es geht auf jede erdenkliche Art.. 

------
wie man Benutzereingaben einliest steht in jedem Lehrbuch,
aber wenn du das hier von jemanden wiederholt haben möchtest.., bitte 

vielleicht der Ark


----------



## Leroy42 (7. Dez 2006)

Ist Ark jetzt der André für die Anfängerfragen?  :shock: 

(Bin mal gespannt, ob einer versteht, worauf ich hinauswill   )


----------



## Ark (7. Dez 2006)

Leroy42 hat gesagt.:
			
		

> Ist Ark jetzt der André für die Anfängerfragen?  :shock:
> 
> (Bin mal gespannt, ob einer versteht, worauf ich hinauswill   )


Da bin ich auch gespannt.  *nix kapier*

Ich gehe mal davon aus, dass unser Neuling von der API-Doku Ahnung hat, darum:
Benutzt Du Java 1.5? -> java.util.Scanner
Sonst: java.io.BufferedReader

 ???:L -> :### -> :idea: 

Ark


----------

