java - Function in a for loop not randomizing -


i have function run 10 times in loop, supposed randomize , give random ores, right script gives 10 copper ore

    public void mineore() {          int ore = (int) math.random() * 10 + 1;          if(ore ==1) {                                    inventory.addinventory("copper ore");         } else if(ore ==2) {                                     inventory.addinventory("iron ore");         } else if(ore ==3) {                                     inventory.addinventory("steel ore");         }else if(ore ==4) {                                  inventory.addinventory("gold ore");         }else if(ore ==5) {                                  inventory.addinventory("iron ore");         } else if(ore > 6) {                                  }     } 

i have function running on this

            (int = 0; < 10; i++) {                 mineore();             } 

how can fix mineore randomizes? right feels math.random() runs once , uses number 10 times

i tried

            (int = 0; < 10; i++) {                 int ore = (int) math.random() * 10 + 1;                 if(ore ==1) {                                            inventory.addinventory("copper ore");                 } else if(ore ==2) {                                             inventory.addinventory("iron ore");                 } else if(ore ==3) {                                             inventory.addinventory("steel ore");                 }else if(ore ==4) {                                          inventory.addinventory("gold ore");                 }else if(ore ==5) {                                          inventory.addinventory("iron ore");                 } else if(ore > 6) {                                          }             } 

it still gives 10 copper ore

use:

    int ore = (int) (math.random() * 10 + 1); 

the cast int binds more tightly multiplication.

it better use nextint method java.util.random class: more efficient , guarantees uniform distribution. multiply-and-cast method may have slight bias.

private random myrandom = new random(); public void mineore() {      int ore = myrandom.nextint(10)+1      if(ore ==1) {                            .... } 

Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

c++ - Clear the memory after returning a vector in a function -

erlang - Saving a digraph to mnesia is hindered because of its side-effects -