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-ID: 87338

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

Ausgedruckt am: 26.11.2024 um 06:11 Uhr

filippg
filippg 09.05.2008 um 20:40:42 Uhr
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
Bierkistenschlepper
Bierkistenschlepper 09.05.2008 um 20:48:19 Uhr
Goto Top
Das ist egal, ist ja nur zu testzwecken.

Ja ich habe bereits andere Zahlen probiert, ohne Erfolg.
tacker
tacker 09.05.2008 um 21:20:20 Uhr
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
filippg
filippg 09.05.2008 um 21:30:37 Uhr
Goto Top
salü!

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

Filipp
Bierkistenschlepper
Bierkistenschlepper 10.05.2008 um 11:02:48 Uhr
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
subminuentisch
subminuentisch 31.05.2008 um 12:06:50 Uhr
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
subminuentisch
subminuentisch 31.05.2008 um 13:21:36 Uhr
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);


}
}