Hey, if you don't know what Pokemon is, where have you been the past 3 years? Anyway, despite what most people think, Pokemon is a very strategic, formula-laden game.
For instance, the damage formula, which I will explain here:
A = attacker's Level
B = attacker's Attack or Special
C = attack Power
D = defender's Defense or Special
X = same-Type attack bonus (1 or 1.5)
Y = Type modifiers (40, 20, 10, 5, 2.5, or 0)
Z = a random number between 217 and 255
Full explanations of each variable follow.
This is the Level of the attacking Pokmon. In the event of a Critical Hit (see below), A is doubled.
In the absence of any statistic modifiers, B is equal to the Attack or Special (depending upon whether it is a physical or special attack being used) of the attacking Pokmon, while D is equal to the Defense or Special of the defending Pokmon.
However, an extremely important aspect of combat is that attacks like Meditate and Tail Whip can change the values of B and D, respectively, by increasing or decreasing the statistics of the combatants. D is also subject to change through the use of Reflect and Light Screen. The effects and interactions of these and similar moves make for quite a long story, and are therefore addressed separately on the Statistic Modifiers page.
This is simply the Power value reported in the Attacks Section for the physical or special attack being used. For example, if the attack is Surf, C = 95.
X is described above in the section on STAB: if the attacker's Type (or at least one of them, for dual-Types) is identical to the Type of the physical or special attack, X has a value of 1.5 if not, the value is 1.
As explained on the Type Modifier Chart page, attacks that are super-effective against the current enemy's Type multiply damage by 2, while those that are not very effective multiply damage by 0.5. Attacks that are totally ineffective multiply damage by 0. If the enemy has two types, both are taken into account, and the multipliers for each Type are multiplied together. Thus, the full range of possible Type Modifier values is as follows:
4, 2, 1, 0.5, 0.25, 0
However, as you will note from the above statement of the BDF, the game code apparently multiplies these values by 10 in order to produce the Y variable (which therefore has 40, 10, 5, 2.5, and 0 as its possible values). It's not clear why the programmers chose to do this, but in any case it makes no difference, because the formula immediately divides the result by 10! If you wish, you can simplify the BDF for your own use and ignore this step. If you choose to do this, Y will range from 4 to 0, and you won't have to divide by 10 at the next step.
Damage is variable for all physical and special attacks. If you're using an attack that the formula predicts will do a maximum of 115 points of damage, you could easily use that attack 30 times and not have exactly 115 points come up once. The values you get will range from 97 to 115 points.
To calculate the upper limit, make Z equal to 255. The right tail of the formula will now look like *255/255: this is obviously equal to 1, and will therefore not affect the predicted damage. To calculate the lower limit, make Z equal to 217. Multiply the total produced by the formula to that point by this value. Then, divide by 255, dropping any remainder. And Voila! You have the amount of damage. If all this math seems too confusing, you should try the Pokemasters' damage calculator