DEV Community

Discussion on: Daily Challenge #192 - Can you Survive the Zombies?

Collapse
 
craigmc08 profile image
Craig McIlwrath

The 5% is throwing me off. There's no way to compute a certain live/die verdict when a probability. A singular zombie could be 2000 away and you get really unlucky and miss all shots.

Maybe you mean every 20th shot you miss? Or create an impure function that returns a different value depending on random chance from the probability? Or something else?

Collapse
 
aminnairi profile image
Amin

I believe it would mean something like that in Haskell (I'm not really confortable enough with Monad so there is room to improvements).

import System.Random (getStdGen, randomR)

hasHit :: IO Bool
hasHit = do
    g <- getStdGen
    return $ (>5) $ fst $ randomR (1 :: Int, 100) g

main :: IO ()
main = do
    h <- hasHit
    print $ h -- True/False

And I would use this on each shot. Meaning I have 5/100 chance of missing my target. That is what I understood but I may be wrong on this one.

Collapse
 
kerldev profile image
Kyle Jones

This was the problem that I couldn't work out either - the tests become flaky and unreliable. Seems at odds with the rest of the scenario