int r = i + (rand() % (99-i)); // Random remaining position. int temp = kartSayilar; kartSayilar = kartSayilar[r]; kartSayilar[r] = temp; }
bundaki amac sayilarin yerlerini random olarak karistirmak. Ben baska bir .cpp'den bu object'den 2 tane olusturuyorum ancak ikisinin de karistirilmis hali ayni oluyor. Ikisini farkli karistirilmis bir sekilde nasil yaparim?
< Bu mesaj bu kişi tarafından değiştirildi Yulie -- 1 Ocak 2012; 20:22:32 >
srand ı sadece 1 kere çalıştırman gerek. Çeşitli çözümleri olabilir.
srand ı yapılandırıcının içinden çıkarıp main de çağırabilirsin. Sınıfa static bir bool değişken ekleyerek ve bunu kontrol ederek sadece 1 kere çalıştırılmasını sağlayabilirsin. İçinde sadece srand çağrısı olan başka bir yapılandırıcı ekleyebilirsin. gibi...
constructor'in icinde soyle bir kisim var:
srand(int(time(NULL)));
for(int i=0; i<(99-1); i++){ //shuffling card;
int r = i + (rand() % (99-i)); // Random remaining position.
int temp = kartSayilar;
kartSayilar = kartSayilar[r];
kartSayilar[r] = temp;
}
bundaki amac sayilarin yerlerini random olarak karistirmak. Ben baska bir .cpp'den bu object'den 2 tane olusturuyorum ancak ikisinin de karistirilmis hali ayni oluyor. Ikisini farkli karistirilmis bir sekilde nasil yaparim?
< Bu mesaj bu kişi tarafından değiştirildi Yulie -- 1 Ocak 2012; 20:22:32 >