Armazenar valor de uma posição de um vetor na posição de outro vetor
9 respostas
K
kolling
Galera estou fazendo um jogo e o que quero fazer é o seguinte:
Ao matar um monstro tem chance de cair algo dele ou não. Se cair, o jogador guarda o item na mochila.
Na verdade vou fazer para ele escolher se quer pegar ou não mas isso é o de menos.
Em códigos…
System.out.println("Voce vence o guarda e encontra...");chance=r.nextInt(itens.length*2);if(chance>=itens.length){System.out.println("...nada!");}else{System.out.println(itens[chance]);}
Se a chance for menor que 4, que é a quantia de itens, ele derruba algum item.
O item que ele derrubar será o valor da posição “chance” no vetor “itens”.
Tenho o vetor mochila[10]
Como faço para armazenar o valor que está na posição “chance” do vetor “itens” na primeira posição livre do vetor “mochila” que tem 10 posições ?
Posição livre! Se ele pegar algo, a posição 0 do vetor “mochila” é ocupado e o próximo item que pegar será armazenado na posição 1!
Também como o amigo disse acima, a interface java.util.List permite fazer essa operação com o método “add”. Seu código fica mais simples pois o objeto lista (por exemplo, ArrayList) já guarda qual é a posição do último espaço vazio! Um efeito colateral da ArrayList é que ela “cresce” para acomodar itens. Talvez isso seja ruim para sua mochila… Recomendo que você faça uma classe Mochila para tratar isso (e toda a lógica de guardar/manter/ordenar os itens)!! Sua classe Mochila pode utilizar uma lista ou um array para guardar os itens e ter toda a lógica encapsulada numa classe reutilizável!
inti=0;for(;mochila[i]!=null&&i<mochila.length;i++);if(i<mochila.length){mochila[i]=itens[chance];}else{System.out.println("Sua mochila está cheia!");}
:roll:
O mais limpo é fazer a classe Mochila…
Rodrigo_Sasaki
acho que o que o Mephy deixou passar despercebido, é que se ele usar a variável booleana no if… mesmo que o resultado final seja igual, ele ainda vai processar o for inteiro mesmo sem nunca mais entrar no if.
então não acho que seja melhor hehe…
kritiuns
Pow show de bola acho q o tópico fecho com o ultimo post leo.andven