C#[Random Seçilen Bir Değerin Tekrarlanmaması]
-
C# da console applicationda yapılan üç iskambil kağıdını bilgisayrın rasgele seçmesini yaptıktan sonra çekilen kağıtların birbirinden farklı olması için ne yapmalıyım?
örnek
kupa-9
karo-10
kupa-9
seçilen kağıdın bir daha çıkmaması lazım
MOD: Başlıkları daha açıklayıcı yazalım lütfen. Birdahakine konu silinir.
-
Başlığı düzelt hoca konunu silinebilir
-
resgele seçim yaptığın diziden çıkartabilirsin yada seçilen kartları bi yerde tutup farklı kart gelene kadar seçtirebilirsin.
-
random gelen kartları bir diziye atarsın yeni gelicek kartı o dizi ile karşılaştırıp öyle kullanırsın veya random olarak çektigin diziden gelen kartı silersin
-
Bir arrayList oluştur, Add metodu ile seçilen kağıdı bu diziye aktar.
Ve sonra indexOf özelliği ile eklenen elemanları denetle.
Önceden eklenen bir kağıt değilse -1 değerini dönderecektir bu metot.
Bunu da bir if bloğu ile yakalarsın.
uzaylioglan tarafından 18/Eki/12 01:31 tarihinde düzenlenmiştir -
aynı sorunu javada defalarca yaşadım (:
bir koleksiyon oluştur ve kartları koleksiyona at daha sonra shuffle yap (:
-
sLeymN bunu yazdı
aynı sorunu javada defalarca yaşadım (:
bir koleksiyon oluştur ve kartları koleksiyona at daha sonra shuffle yap (:
Bu mantık her zaman iş görür.. Desteyi bi array'e at
0 ile 51 arası random sayı üret her bulduğun 2 eleman arasında değiştirme yap. Bi yerden sonra karman çorman bi deste olacak, baştan tek tek çekebilirsin :)
-
uzaylioglan bunu yazdı
Bir arrayList oluştur, Add metodu ile seçilen kağıdı bu diziye aktar.
Ve sonra indexOf özelliği ile eklenen elemanları denetle.
Önceden eklenen bir kağıt değilse -1 değerini dönderecektir bu metot.
Bunu da bir if bloğu ile yakalarsın.
ArrayList Kart = new ArrayList();
if (Kart.IndexOf(randomkart) == -1) //Eğer kart daha önce gelmediyse..
{
Kart.Add(randomkart);//kartı diziye aktar.
}
-
uzaylioglan bunu yazdıuzaylioglan bunu yazdı
Bir arrayList oluştur, Add metodu ile seçilen kağıdı bu diziye aktar.
Ve sonra indexOf özelliği ile eklenen elemanları denetle.
Önceden eklenen bir kağıt değilse -1 değerini dönderecektir bu metot.
Bunu da bir if bloğu ile yakalarsın.
ArrayList Kart = new ArrayList();
if (Kart.IndexOf(randomkart) == -1) //Eğer kart daha önce gelmediyse..
{
Kart.Add(randomkart);//kartı diziye aktar.
}
Hocam peki adam döngü ile 45 kart cekerse ne olacak? sonlara doğru bu if 100lerce kez çağırılacaktır muhtemelen :)
-
İster 100 tane çeksin bir şey olmaz :)
Gerçi benim c# ile ilişkim hobi seviyesinde.
Bu konuda prof arkadaşlar daha iyi çözüm önerilerinde bulunacaktır eminim.