Losowanie liczb z przedzialu

0

Nie pierwszy raz używam Random i nigdy nie miałem z nim problemów. Po jakimś czasie zaczął losować liczby nie z przedziału. Przykładowo, gdy zakres losowania ustawiam na od 15 do 50 to losuje liczby na minusie albo liczby typu 90,60,70,5 itp.

Okrojony i po przycinany kawałek kodu :

public MalyKwadrat(float x, float y, String sciezka, int rxMin, int rxMax,int ryMin, int ryMax)
{
vy = -rand.nextInt(ryMax)+ryMin;
vx = -rand.nextInt(rxMax)+rxMin;

koniecY = rand.nextInt(1200)+500;

iloscKawalkow = rand.nextInt(30)+15;
}

Kawalki.add(new MalyKwadrat(this.x,this.y,"kw.png",1,10,10,15));

1

W którym miejscu kodu ustawiasz zakres [rxMin,rxMax] dla vx? Dla ułatwienia podam, że w tym miejscu

vx = -rand.nextInt(rxMax)+rxMin;

nie robisz tego.

0

Ustawiam zakres <ort>po przez</ort> konstruktor,a ten z kolei wywołuje się po utworzeniu obiektu.

0

Ustawiasz nie taki zakres jak chcesz. U Ciebie maksymalna wartość to rxMin, a minimalna to rxMin-rxMax+1.

0

Zawsze robiłem to w ten sposób i było dobrze :/
Więc powinno być tak ?

vy = rand.nextInt(ryMax-ryMin+1)+ryMin;
vx = rand.nextInt(rxMax+rxMin+1)-rxMin; // jeśli zamiast + dam - to będzie liczba ujemna ?
1

To zawsze robiłeś źle.

vx = rand.nextInt(rxMax-rxMin+1)+rxMin;

1 użytkowników online, w tym zalogowanych: 0, gości: 1