Skocz do zawartości

Narzucone losowe pozycje...


Hriser

Rekomendowane odpowiedzi

Chcę aby komputer sam losował pozycje pojawienia sie objektu ale nie z przedziału "od-do" tylko między konkretnymi pozycjami np. x=20,50 albo 80 a y=100,200 albo 300. Tylko... jak to zrobić? :D

 

Liczę na Waszą pomoc... :rolleyes: ... i wiedzę :D dz :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

jeżeli z zakresu to:

x=20+round(random(30)); Minimum w tym przypadku to 20, max to 50.

 

a jeżeli z tcyh trzech to:

var los;
los=ceil(random(3));
switch los
{
case 3: 80; break;
case 2: 50; break;
default: 20; break;//tak jakby case 1
}

Odnośnik do komentarza
Udostępnij na innych stronach

yyyy... nie kapuje ;P

 

inaczej [bo jak to wklejam to sie pierniczy ;P ]:

 

objekt ma sie pojawić losowo w takich miejscach:

x=112 y=208

x=464 y=208

x=464 y=80

x=112 y=80

 

i teraz napisz mi co, do czego przypisać, żeby było dobrze :D

 

pliz :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

no tak tam błąd się wkradł mały do tego :P

 

ale to ma być jakoś tak:

 

var los;
los=ceil(random(4));
switch los
{
case 4: x=112; y=208; break;
case 3: x=464; y=208; break;
case 2:x=464; y=80; break;
default: x=112; y=80; break;
}

Odnośnik do komentarza
Udostępnij na innych stronach

Cytując: "Rozwiązanie już padło, ale ja podam alternatywne:" A nie lepiej na choose to dać ? Choose ci wybiera liczby jakie podasz w nawiasie, np. x = choose(112, 464), a y = choose(208,80) i wszystko: masz to na dwie prościutkie funkcje i cała zabawa :D A nie się w jakieś switchy bawić xP (nie obrażając jednocześnie autora cytatu xD)... Jednakże tak jak ty to chcesz zrobić to działa raczej na dwie zmienne, bo przy większej ilości będzie więcej niechcianych kombinacji :]

Odnośnik do komentarza
Udostępnij na innych stronach

Ludzie! Nie używajcie w tym przypadku ceil and floor -_- przy ceil zmniejszacie szanse na wylosowanie 0 na minimum! A przy floor zmniejszacie szanse na wylosowanie liczby w nawiasie po funkcji np(floor(TA_LICZBA))

Floor zaokrągla tylko w dół a ceil tylko do góry :/ czyli jak macie 0.1 to wam zrobi z tego 1. Używajcie round(x); To jest lepsze bo wam zaokrągla według ogólnej zasady zaokrąglania od <=0.4(9) w dół a od >=0.5 w górę.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...