bierkistenschlepper
Goto Top

Random spukt nur 0en aus

Wieso spukt folgender Code nur Nullen aus?

import java.util.Random;
class City {
int x;
int y;
Random generator = new Random(548796354);


public void City(){

x = generator.nextInt()%20;
y = generator.nextInt()%20;

}
public static void main(String args){
City c = new City();
System.out.println(c.x);
System.out.println(c.y);


}
}

Content-Key: 87338

Url: https://administrator.de/contentid/87338

Printed on: April 18, 2024 at 06:04 o'clock

Member: filippg
filippg May 09, 2008 at 18:40:42 (UTC)
Goto Top
Hallo,

hast du denn mal einen anderen RandomSeed ausprobiert?

Grundsätzlich wirst du aber immer die gleiche Zahl herausbekommen. Du erzeugst jedes mal ein neues City-Objekt, dabei wird jedes mal der Zufallszahlengenerator mit gleichen Zahl initialisiert. Also fällt auch jedes mal der gleiche Wert raus.

Gruß

Filipp
Member: Bierkistenschlepper
Bierkistenschlepper May 09, 2008 at 18:48:19 (UTC)
Goto Top
Das ist egal, ist ja nur zu testzwecken.

Ja ich habe bereits andere Zahlen probiert, ohne Erfolg.
Member: tacker
tacker May 09, 2008 at 19:20:20 (UTC)
Goto Top
salü!

man entferne aus dem Konstruktor der Klasse einfach das "void"!

import java.util.Random;
class City {
int x;
int y;
Random generator = new Random(548796354);


public City(){

x = generator.nextInt()%20;
y = generator.nextInt()%20;

}
public static void main(String args){
City c = new City();
System.out.println(c.x);
System.out.println(c.y);



}
}

gruss tacker
Member: filippg
filippg May 09, 2008 at 19:30:37 (UTC)
Goto Top
salü!

man entferne aus dem Konstruktor der Klasse
einfach das "void"!
Oh ja, verflucht. Total übersehen.

Filipp
Member: Bierkistenschlepper
Bierkistenschlepper May 10, 2008 at 09:02:48 (UTC)
Goto Top
Ja, Eclipse meint dazu nur "This method has a constructor name"

Sehr aussagekräftige Fehlermeldung face-smile

Habe schon ewig nicht mehr Java programmiert, daher diese Anfängerfrage face-smile
Member: subminuentisch
subminuentisch May 31, 2008 at 10:06:50 (UTC)
Goto Top
Du hast da n fehler drin

Random generator=new Random ();
x=generator.nextInt(548796354);
y=generator.nextInt(548796354);//erzeugt int zahlen bis 548796354

ich hoff ma das hilft dir weiter
Member: subminuentisch
subminuentisch May 31, 2008 at 11:21:36 (UTC)
Goto Top
hmm so ich hoff ma ich hab dich richtig verstanden und der code hilft dir so weiter


import java.util.Random;
class City2 {
int x;
int y;
boolean fund=false;
Random generator = new Random();
Random generator2 = new Random();

public City2(){
int x;
int y;
int temp;
for (int i=0;fund==false;i++){
temp=generator.nextInt(548796354);

if (temp%20==0){
x=temp;
fund=true;
stoppt wenn eine durch 20 glatt teilbare zahl gefunden wurde die suche (for schleife)
}}


for (int i=0;fund==false;i++){
temp=generator2.nextInt(548796354);

if (temp%20==0){
y=temp;
fund=true;
}}

}


public static void main(String args){
City2 c = new City2();

System.out.println(c.x);
System.out.println(c.y);


}
}