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
Post a Comment