algoritma bilgisi ultra perfect mega super birisi lazım

Yechwon

Marangoz
Mesajlar
52
En iyi cevaplar
0
Beğeniler
26
Puanları
150
mrb, benim yapmaya çalıştığım(daha nasıl yapacağımı bile düşünemedim beynim yandı) öncelikle şu;

x kadar bir random sayısı olucak ve kesinlikle birbirine benzemiycek 1-2-3-4 diye gibi yani 1-1 olmaz, bunları for a koyup location.getblock.setType(material.diamond_block) yapmam gerek yalnız location lar arraylist şöyle olmalı getLocations().get(randomlar buraya geliyor for da olucak)).getLocation.getblock().setType vs. vs. böyle olmalı şuana kadar yaptığım şey şu (biraz saçma):

for(int i = 0; i < a.getQuantity(); i++){
random.add(new Random());
}
for(Random r : random){
int i = r.nextInt(a.getLocs().size() - 1);
a.getLocs().get(i).getLocataion().getBlock().setType(Material.DIAMOND_BLOCK);
}

evet çok kısa zaten sadece for koymayı yapabildim, önemli kısmı x kadar random aynı olmıycak birbirinin

@Karamet özelden yardım etti <3
 

GodofMilker

Nether Yerlisi
Mesajlar
2,196
En iyi cevaplar
0
Beğeniler
2,563
Puanları
6,890
ArrayList<Integer> ints = new ArrayList<Integer>(Arrays.asList(sayılar));
Collections.shuffle(ints);
for(int i : ints) {
//olaylar
}
Sayılar kısmına girmek istediğin sayıları gir, değişken olacaksa for ile eklersin, sayılar random olacak mantığını açıklayabilirim*
 

Yechwon

Marangoz
Mesajlar
52
En iyi cevaplar
0
Beğeniler
26
Puanları
150
birazdan atıcam bi saçmalığı düzeltmeye çalışıyorumda .-.

ArrayList<Integer> lastNumbers = new ArrayList<>();
for(int i = 0; i < a.getQuantity(); i++){
int b = r.nextInt(a.getLocs().size() - 1);
if(lastNumbers.contains(b)){
i--;
}else{
lastNumbers.add(b);
}
}

böyle bir sonuç çıktı artık kim kullanır bilmem bende güzel bir şekilde çalışıyor.
 

Üst