I am making a text-based C++ RPG and I am trying to figure out how to work out the amount of damage that the enemy hits you for. My idea is something like this.
Damage done = randomIntBetween10and20*enemyLevel
This way it doesn't always hit for a set amount each time and allows there to be Critical Strikes (For example, if the hit is above 15 I would class that as a Critical Strike)
I'm new to C++ so I'm not quite sure how I can do this, any help would be greatly appreciated.
look this out, it might be helpful:
Use srand() to initialise the random number generator:
http://www.cplusplus.com/reference/clibrary/cstdlib/srand/
Then use the
rand()
function to generate a sequence of random numbers.http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
As others said, maybe rand() will be really sufficient for you. What is important is the seed used to initialise the pseudo random number generator ( the call to srand() is the seed)
But beware, True Chaos doesnt mean that you have exactly the same chance to generate any possible random output.
Ten years ago I have played with stochastic sound generation. I needed several sources of chaos.
I just let you know those which I had kept and found useful. of course since they need a seed, they are pseudo chaos.
1/for chaotic float number between -1 and 1: compute the function f(x) = cos(exp(x)). exp() grows so fast, that after really few iteration, what goes out from cos() is chaos.
2/the baker transform: chaotic number between 0 and 1: take a number, multiply it by two, and again, when it is superior to 1, substract something so as it goes back betwen 0 and 1. A much more precise explanation The Baker Transform.
But I think rand() and srand() will satisfy you.
For applying to your range 10-20, of course you stretch/scale the chaotic range (0;1) or (-1;1) by multiplying and offsetting so as the ouput fits your need. ;-)