NumPad escreveu:Essa forma ai de cima é a forma mais amadora do mundo! Deixa o código poluído com vários if's e talvez até pesado. O mais fácil é dar um case na classe do player, e se não for nil, dar os pontos para ela.
Para evitar tanto os if quanto o case poderia se utilizar uma equação cujo resultado variasse de acordo com a classe, como:
- Código:
hp_max = hp_max + ((class_id * 20) / 0.8).round
Se a classe tivesse como id o 2 o hp seria 200 (seria adicionado apenas 50 ao valor máximo).
De forma alguma if e case se diferem quanto a profissionalidade, ambos são usados ocasionalmente para poupar tempo como foi o caso citado pelo João.
Se realmente quer algo profissional não deveria usar nenhum dos dois, pois há a possibilidade de obter os mesmos resultados sem eles.
Ps: A equação foi somente um exemplo, poderia ser feita com cálculos mais complexos para que se obtivesse resultados precisos.
Uma outra opção seria usar uma array ou hash:
- Código:
arr = [10, 20, 30, 40]
hp_max += arr[class_id]
Última edição por Paulo Soreto em Ter Fev 04, 2014 10:58 am, editado 1 vez(es)