Fórmula do Dano

Fórmula do Dano

por Taís Pinheiro -
Número de respostas: 7

Professor/Monitores/Colegas,

A fórmula do dano passada no enunciado não está clara e encontrei diferentes fórmulas na internet.

Poderia colocar aqui uma explicação para fórmula ou uma nova fórmula que possa ser aplicada?

 

Grata,

 

Em resposta à Taís Pinheiro

Re: Fórmula do Dano

por Eric Kenji Yoshikawa -

Pelo que eu entendi é isso:

 

 ( (2 * level + 10)/250) * (ATK/DEF) * (Base) + 2) * Modifier

Base: poder do ataque

ATK: Ataque de quem ataca
DEF: Defesa de quem defende

(No caso de Special moves deveria usar o SPC)
http://bulbapedia.bulbagarden.net/wiki/Special_attack#Generation_I-III


Modifier = STAB * Type * Critical * other * (random(0,85, 1))

STAB: Se o pokemon for do mesmo tipo do ataque STAB = 1,5 caso contrario STAB = 1
Type: Efetividade entre o tipo que ataca e defende. (varia de 0 a 4)
     Pode ser encontrado em http://bulbapedia.bulbagarden.net/wiki/Type
    Os tipos somam se o pokemon tiver dois tipos
    (Flying + Fire) -> (2x + 2x) = 4x em bug
    (Rock + Ground) -> (2x + 1/2x) = 1x em bug
Other: Fields, held itens etc (provavelmente não será necessário)

random: random

Em resposta à Taís Pinheiro

Re: Fórmula do Dano

por Rafael Reggiani Manzo -

Oi Taís,

Traduzindo para português a fórmula do link temos:

Dano = (((2*Nível + 10)/250)*(Ataque/Defesa)*Base + 2)*Modificador

  • Ataque e Defesa são os atributos do polémon atacante e defensor, respectivamente. Se o ataque for especial, eles são substituídos pelo atributo Especial (veja)
  • Base é o dano base do ataque (veja os atributos do ataque)
  • Modificador = STAB*Tipo*Critico*aleatório
    • STAB (same type attack bonus - bonus de ataque para mesmo tipo)
      • 1.5 se o tipo do ataque for o mesmo do pokémon
      • 1 caso contrário
    • Tipo refere-se a efetividade de ataques de acordo com seu tipo e o do pokémon defensor, variando entre {0, 0.25, 0.5, 1, 2, 4} (veja)
    • Crítco = 2 se o ataque for crítico (veja)
    • Aleatório é um número pertencente a [0.85, 1]

Note também logo após a descrição da fórmula no link do enunciado há um exemplo que ajuda a entender.

Respondi?

Em resposta à Rafael Reggiani Manzo

Re: Fórmula do Dano

por André Meneghelli -

Seguem algumas outras dúvidas que tive a respeito da mecânica do jogo:

1) SPC. não existe nenhum indício se um ataque é especial ou não de acordo com o arquivo de entrada, iremos ignorar este atributo nesta etapa?

2) Critical Hit. Não encontrei direito como calcular a probabilidade de ocorrência e a variação no cálculo de dano.

3) Acurácia. É uma probabilidade de acerto do golpe e portanto está em [0-1]? Utilizo isso fazendo um sorteio entre 0 e 1 e verifico se é menor que a minha Acurácia?

4) Evasion. Isso não será implementado nesta etapa?

Em resposta à André Meneghelli

Re: Fórmula do Dano

por Eric Kenji Yoshikawa -

A more accurate formula for the multiplier is (2L+5)/(L+5) where L is the user's level; as a result, lower-leveled Pokémon have a smaller critical hit boost than higher-leveled Pokémon. For example, a level 5 Pokémon will inflict 1.5× the damage on a critical hit, while a level 20 Pokémon will inflict 1.8× and a level 95 Pokémon will inflict 1.95×.

In this generation only, the probability of landing a critical hit is based on a Pokémon's base Speed. For most moves, the probability of landing a critical hit is BaseSpeed / 512; for example, Clefable, with a base Speed of 60, has roughly a 11.7% chance of landing a critical hit under usual circumstances.

Fonte: 

http://bulbapedia.bulbagarden.net/wiki/Special_attack#Generation_I-III

http://bulbapedia.bulbagarden.net/wiki/Critical_hit

Em resposta à André Meneghelli

Re: Fórmula do Dano

por Rafael Reggiani Manzo -

Respondendo 3 e 4: http://bulbapedia.bulbagarden.net/wiki/Evasion#Evasion

Então, acurácia é um valor inteiro entre 1 e 100 (na verdade são usados apenas entre 50 e 100). O cálculo é feito com essa fórmula: http://bulbapedia.bulbagarden.net/wiki/Accuracy#Formula_for_accuracy_and_evasion

Evasion sempre terá valor 100 nessa nossa modelagem onde atributos não podem ser modificados por ataques.

Ficou claro? Faltou responder algo?