Zufallzahl

Bratmaxe

Mitglied
Hi,

Folgendes Problem...

Ich brauch 2 Zufallszahlen in einem bestimmten Bereich (z.B. 5 und -5) dabei darf aber keine 0 sein.

Es handelt sich hierbei um die Geschwindigkeit in der sich ein Objekt bewegt ... und 0 ist da ein wenig doof ;)

Java:
yTemp = rnd.nextInt(2);
		if (yTemp == 0) {
			ySpeed = (int) (((rnd.nextInt((5 - 1) + 1) + 1) * theGameView.speed) * theGameView.getDensity());
		} else
			ySpeed = (int) ((((rnd.nextInt((5 - 1) + 1) + 1) * theGameView.speed) * (-1)) * theGameView.getDensity());

		xTemp = rnd.nextInt(2);
		if (xTemp == 0) {
			xSpeed = (int) (((rnd.nextInt((5 - 1) + 1) + 1) * theGameView.speed) * theGameView.getDensity());
		} else
			xSpeed = (int) ((((rnd.nextInt((5 - 1) + 1)+1)*theGameView.speed)*(-1)) * theGameView.getDensity());

Das Problem hab ich gelöst ... mit einer weiteren Zufallzahl ...

Jetzt die Frage, geht das auch einfacher ?
Es gibt viele Wege ... nur einfache und schwere :D
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
falls die Zahl öfter hintereinander die gleiche sein darf

Java:
import java.util.Random;

public class Foo {

	public static int generateRandomNumber(){
		Random r = new Random();
		
		int x = r.nextInt(5);
		
		if(x > 0)
			return x;
		else{
			return generateRandomNumber();
		}
	}
	public static void main(String[] args) {
		System.out.println(Foo.generateRandomNumber());
	}
}

[EDIT]falls es nicht so sein soll das bei der relativ geringen anzahl an zahlen , öfter mal hintereinander die gleiche zahl rauskommt , bedarf es mehreren anweisungen um dies zu verhindern[/EDIT]
 
Zuletzt bearbeitet:

Bratmaxe

Mitglied
Danke!

Hat mir sehr weiter geholfen, hab zwar bemerkt, dass sich bei mir was kürzen lässt, aber ne seperate Funktion spart einiges an Zeit :)

Es kann ruhig öfter mal eine Zahl gleich sein, spielt eine nicht so große Rolle.

Vielen Dank!
 

Oben