Zaimplementuj program lub funkcję, która symuluje wspólne kości do gier RPG. Powinien obsługiwać przynajmniej d6 i d20, dwie najczęściej używane kości.
Powinno jednak działać tak, jak oczekują od stereotypowych graczy, a nie jak w prawdziwych kościach.
Żart między graczami polega na tym, że można mieć wyjątkowo szczęśliwą kostkę za bardzo ważny rzut, uprzednio rzucając dużą ilością kości, wybierając te, które dały wynik „1”, a następnie rzucając je ponownie, aż otrzymasz kilka, które rzuciły „1” wiele razy. Następnie ostrożnie je zachowaj, ponieważ rzuciły 1 wielokrotnie w sekwencji, więc prawdopodobieństwo rzutu 1 następnym razem powinno być bardzo niskie.
Oczywiście nie tak działają kości w prawdziwym życiu , ponieważ rzuty są statystycznie niezależne.
Twoje symulowane kości muszą brać pod uwagę wcześniejsze rzuty i działać podobnie do tego, jak hazardzista z błędu gracza oczekuje, że zadziała. Na przykład, jeśli wyrzucono wiele niskich liczb, należy zwiększyć prawdopodobieństwo wyrzucenia większej liczby.
Ponieważ jest to oszustwo, musisz to dobrze ukryć . Oznacza to, że przypadkowe spojrzenie na program nie powinno ujawniać, że oszukiwałeś. Oznacza to, że jawne zapisywanie poprzednich wyników i czytanie ich przy każdym rzucie byłoby zbyt podejrzane. Musisz ukryć tę „właściwość” swoich kości i punkty bonusowe, jeśli sprawisz, że będzie to możliwe, bez wątpienia, i ukryj to jako uczciwy błąd. (na przykład tworzysz własne RNG z „niezamierzoną” wadą)
Głosujący, proszę wziąć pod uwagę, jak dobrze ukryta jest ta „wada”.
Programy powinny być jasne i nie zaciemniać. Zbyt łatwo ukryć zły kod w zaciemnionym programie.
getRandomBetween(1,d)
spowodowałoby, że zajrzałbym głębiej.