Alguem me ajuda com esse código, por favor!

Oi gente sou novato em java nunca programei nada, faz uns 5 dias que comecei, e meu método de aprendizado foi sempre botando mão na massa, só funciona assim para mim, não sou muito bem com teoria, mas leio bastante!

Estou baixando aqueles dvd do neri, para aprender, ensina muito bem o cara, e do jeito que gosto “mão na massa”!

Enfim meu problema é: não consigo fazer com que essa fórmula do código abaixo, diga quanto falta de mana total, do magic level que ele tem até o magic que ele quer, exemplo: do magic level 1 até o 15 para kina por exemplo, mas a fórmula só diz o proximo magic do 1 para 2, do 45 para 46, tentei usando for, while, mas não sai nada do meu cerébro!

falem tbm do que acharam desse código, para um novato como eu, está todo embaralhado mas funciona! :oops:


package javaapplication3;

import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {
        int fin, k, n, deseja;
        String magic, voc;
        double elevar, magicd, biro = 0;
        long total, totalx;
        String kina = "kina";
        String mage = "mage";
        String Paladin = "paladin";

        voc = JOptionPane.showInputDialog("Qual sua vocação kina, mage, paladin?");
        if (kina.equals(voc)) {
            biro = 3;
        } else if (mage.equals(voc)) {
            biro = 1.1;
        } else if (Paladin.equals(voc)) {
            biro = 1.4;
        } else {
            JOptionPane.showMessageDialog(null, "Vocação Errada");
        }
        magicd = Double.parseDouble(JOptionPane.showInputDialog("Diga seu magic Level: "));
        deseja = Integer.parseInt(JOptionPane.showInputDialog("Qual magic level deseja?: "));
        elevar = Math.pow(biro, magicd);
        total = (long) elevar;
        totalx = 1600 * total;
        JOptionPane.showMessageDialog(null, "Mana necessaria para proximo magic level: " + totalx);
    }
}

Amigão juro que não entendi a lógica que vc escreveu, tenta explicar melhor que assim fica mais facil…

oks, vou tentar explicar cada passo:

a formula do jogo para o proximo magic level é 1600*b^a ^=igual elevação, não se é isso mesmo

b no codigo é igual = biro que pode variar como:
kina: 3
mages: 1.1
paladin: 1.4

a no codigo é = magicd que o camarada vai escrever: 1,2,3,…,10000000.

teoria: primeiro ele pergunta a vocação que ele é, caso ele diga outra coisa vai dizer: vocação errada!
caso ele diga kina biro vai valer 3 lá em Math.pow(biro, magicd);

depois pergunta o magic que ele tem para dizer o proximo;
se ele dizer 10, magicd vai valer 10 em Math.pow(biro, magicd);

linha 29 : passei de double para long pq os numeros gerados pode ser gigantes
linha 30 : totalx tbm é long e pega o resultado do math.pow e multiplica por 1600 para dar o resultado;
linha 31 : imprime mana necessaria para proximo magic

obs: esqueci de tirar a linha 27, no momento não funciona.

queria que utlize a linha 27 para o camarada por magic desejado, pq pela formula só diz o proximo magic:

queria que fosse: tenho magic 1 para 10 falta 10000 <-- só exemplo não segue a formula
mas ele fala: tenho magic 9 para 10 falta 1300 <-- só exemplo não segue a formula

exemplo seguindo a fórmula sendo vocação knight:

mana necessaria do magic 1 para o 2: 4800 <-- só gera assim
mana necessaria do magic 2 para o 3: 14400 <-- só gera assim
mana necessaria do magic 3 para o 4: 43200 <-- só gera assim
mana necessaria do magic 4 para o 5: 129600 <-- só gera assim

mana necessaria do magic 1 para o 5: 192000 <-- queria que gera-se assim!

RAPAZ, O QUE É MAGIC LEVEL?

NÃO VENHA ME DIZER QUE É NÍVEL DE MÁGICA…

é sim :oops:, estou fazendo uma calculadora de magic level :oops:, tou estudando fazendo essas coisinhas!

Se já funciona para calcular de um para o outro. Você pode tentar usar uma repetição. Por exemplo:

while (magicd < deseja) { elevar = Math.pow(biro, magicd); total = (long) elevar; totalx += 1600 * total; magicd++; }

opa brigadão funcionou, como fui besta, (magicd < deseja) <- que me quebro claro que o que desejo tem que ser maior do que tenho.
como faço para ele só dizer o ultimo valor do while? se o cara por do 2 para o 100 ele vai mostrar do 2 para 3, 3 para 4,…, 40 para 41, e assim vai :S, se poder ajudar nisso :D, vo procurando aqui na net como fazer isso!

No exemplo que passei, o totalx está funcionando como acumulador, pois usei o += para atribuição, o que fará com que o conteúdo já existente na variável seja somado ao valor que for passado. Portanto, quando sair do loop coloque o messageDialog exibindo o totalx.

Não sei se deu pra entender o que eu disse. Mas qualquer dúvida só postar.

flw

Cara,

O Eric Yuzo e o Weslley_PE devem ter um Magic Level absurdamente alto!! Rsrsrsrsrsrs. Só assim para conseguir entender esse caso! Confesso que eu li agora e não entendi nada!! Mas, como já foi resolvido…

Abraços

[quote=pvrsouza]Cara,

O Eric Yuzo e o Weslley_PE devem ter um Magic Level absurdamente alto!! Rsrsrsrsrsrs. Só assim para conseguir entender esse caso! Confesso que eu li agora e não entendi nada!! Mas, como já foi resolvido…

Abraços[/quote]
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

já está assim Eric,
pvrsouza kkk :smiley:

vamos dizer Fibonnaci quando fazemos retorna na tela: 1,1,2,3,5,8,13,21,34
então na tela vai retorna todos os magic level do que o cara tem até que o cara quer saber

usando o ex: de fibonnaci, queria que só mostra-se o ultimo valor que é 34

Plunct Plact Zum!!! Plus Magic Level for pvrsouza!

Acabei de elevar meu Magic Level! Agora entendi! Rsrsrsrsr.

Abração!!

É para aparecer todos ou só o último? Se for só o último tem que colocar o messageDialog fora do laço de repetição.

deseja = Integer.parseInt(JOptionPane.showInputDialog("Qual magic level deseja?: ")); while (magicd < deseja) { elevar = Math.pow(biro, magicd); total = (long) elevar; totalx += 1600 * total; magicd++; } JOptionPane.showMessageDialog(null, "Mana necessaria para proximo magic level: " + totalx);

Sim o jogo para qual faço isso é Tibia, se conhecer alguem que jogue isso só perguntar o que é magic level, kkkkkkkk.

Funcionou mano era isso mesmo :D, tá vendo que vo aprendendo fazer calculadoras de tibia, kkkkkk
brigadão, amanha começo uma de habilidade, vo procurar a fórmula na internet e começo :D.

Novamente, Brigado!

Tudo nos conformes!