Skocz do zawartości

Przypadek losowania


Remx

Rekomendowane odpowiedzi

Moim zalozeniem bylo ze gdy strzelimy i naboj doleci do przeciwnika zaczyna sie test pancerza czyli tak

od Pancerza(ARp) odejmuje sie Obrażenia(OBs) a to sie rowna (w) nastepnie jest losowana liczba od 1 do 20 (k)

i jezeli wynik jest wyszy niz (w) wtedy dmg+1. OBx to ile nabojow naprzyklad wylecialo z lufy naraz i test dla kazdego z nich czy zranil przeciwnika czy moze pancez obronil.

 

przykład :  Obx=2 OBs=12 ARp=24  

(ARp)-(OBs)=(w)  czyli w=12 losowanie kosci

step 1(OBx):  

k=round(random(19)+1)      wypada     15

wiec  if k>w then dmg+1    czyli   15>12 wtedy dmg+1 w tym przypadku  wynik jest +1

step 2(OBx):

k=round(random(19)+1)      wypada     10

wiec  if k>w then dmg+1    czyli   10>12 wiec dmg nie nabiera +1 lecz pozostaje wartosc poprzednia

po tym losowaniu HPprzeciwnika-=dmg.

 

ponizej przedstawiam kod 2 przypadki i co dziwnego sie dzieje a mianowicie nieraz naprzykad 5>14 i dmg+1   albo czesto wypada zero :(

 

global.OBsx=2;

global.ARp=24;  

global.OBs=12;

var w,k;
{
for (i=0; i<=global.OBsx; i+=1)
{
  k=round(random(19)+1);
    w=(global.ARp-global.OBs);
       if (k>w)global.dmg+=1
    }
}

 

var w,k;
{
w=(global.ARp-global.OBs);
for (i=0; i<=global.OBsx; i+=1)
{
 kostka();
 if (global.ko>w)global.dmg+=1
 }

}

 

kostka();

var k;
{
k=round(random(19)+1);
  global.ko=k; break;
  }

 

Gdzie do licha w tym jest błąd :(

 

 

edit: sorrki za błąd w temacie :(

Odnośnik do komentarza
Udostępnij na innych stronach

Jesli ilosc pociskow wynosi 2 a petle zaczynasz od 0 przy zalozeniu for i=0;i<=ilosc to petla wykona sie 3 razy. Być moze to sprawia ze czasami wychodzi ci wieksza ilosc obrazen niz wynika to z obliczen. Co do reszty kodu nie znalazlem bledu, ale nie bardzo rozumiem za co on odpowiada. O ile dobrze to wywnioskowalem napisales 2 alternatywne rozwiazania na ten sam problem tak ?

 

var w,k;
{
w=(global.ARp-global.OBs);
for (i=0; i<global.OBsx; i+=1)
{
kostka();
if (global.ko>w)global.dmg+=1
}}

Odnośnik do komentarza
Udostępnij na innych stronach

hmm zaraz potestuje moze dobze mowisz ze sa 3 losowania bo zero liczy tez

a co do kodu to tak to sa 2 rozwiazania tego samego

 

wiec musze zrobic cos takiego

 

for (i=0; i<=(global.OBsx)-1; i+=1)

lub

for (i=1; i<=global.OBsx; i+=1)

 

aby dla OBsx =2 petala wykonywała sie dwa razy

 

:]

 

dzieki

 

a co do kodu i za co odpowiada to jest taki mini skrypcik testujacy pancerz czy pocisk przebił sie przez niego czy nie :)

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ę...