Witam, piszę dość rozbudowany Combat System w PHP. Mamy dwóch walczących z konkretnymi statystykami (zręczność, celność, siła, itp.). Za pomocą algorytmu obliczyłem szansę na trafienie Walczącego nr. 1. Załóżmy że jego szansa na trafienie to 40%, a walka ma 10 rund. Jak, w pętli, uwzględnić kiedy gracz trafi, a kiedy nie, tak aby na 10 rund, 40% razy trafił (czyli aby trafił 4 razy)?
Próbowałem zrobić to tak:
40% to 40/100, czyli 4/10, a to jest 2/5. Wywoływałem w środku pętli funkcję rand(2, 5), a następnie warunek:
if(rand(2,5) == 2) {
// uderzył
} else {
// chybił
}
jednak to raczej się nie sprawdza. Krótko mówiąc, daje zły efekt.
Jak mogę to rozwiązać ten problem? Nic nie przychodzi mi do głowy, oprócz tego aby zapisać w zmiennej że gracz ma trafić cztery razy (40% z 10), a następnie nakazać by pierwsze cztery okrążenia pętli były trafne, a pozostałe nie. Nie wyglądałoby to jednak profesjonalnie, dlatego zależy mi na innym rozwiązaniu.
Z góry dziękuję za pomoc, Alegres =)