[R] Newbie to R: would like to solve a problem

percy tiglao prtiglao at gmail.com
Fri May 12 20:07:37 CEST 2006


Hello, I am very new to R (read the introduction a few hours ago), but
experianced in several other languages (including Scheme, C, ObjC and
C++, Java and Javascript) and I was wondering how to approach this
problem:

I am making a training calculator for a Video Game I play. Basically,
I want to calculate the probability of killing an enemy within x hits,
to help determine which is the best monster to train on in this game.

The current implementation
(http://geocities.com/dragontamer5788/maple2.html) uses the normal
curve to estimate just about everything. Not necessarily a bad idea
for when it takes 10 or 15 hits to destroy a single enemy, Central
Limit Theorm kicks in and normal curve is probably a good idea, but my
gut feeling is that it is not accurate for estimating kills in 1 or 2
shots (which happens in the majority of "training" monsters), or the
probability of Knockback (which is always determined by a single
shot).

The (simplified) function to represent the damage would be:

sdmg <- function(min, max, skill){
  if(runif(1) > .4) (runif(1) * (max-min) + min) * skill
  else (runif(1) * (max-min) +  min) * (skill+1)
}

total_damage <- function(min, max, skill, num_attacks){
  total <- 0
  for(i in 1:num_attacks){
    total <- total + sdmg(min, max, skill)
  }
  total
}

--------------------

The above is how damage is calculated. So the probability distribution
looks like 2 rectangles next to each other, one with height .6 and the
other with height .4. Sdmg is a helper function, because some attacks
attack 2 or 4 times in a single turn.

Though, I dont want the simulation (what I'm doing with the runif
here). I'd like to calculate the probability distribution of
total_damage, total_damage + total damage (the convolution,
representing 2 hits), and so on till about 5-8 hits (then I can just
use normal curve in the web-calculator I'm making), then have a
polynomial function estimate the probability distributions based on
min, max, and skill. (So I can make my online calculator estimate the
probability of killing enemies)

Erm, I know it is a lot to ask for, but how would I go about making
this in R? And if R isn't the right tool for this, is there any other
tool you'd reccomend? Cause doing convolutions by hand sucks.

Thanks a lot for reading this long message :) And thanks in advance
for your help.




More information about the R-help mailing list