Olası Çoğalt:
Random number generator only generating one random numberKod, yalnızca hata ayıklayıcı ile adım atıldığında doğru şekilde çalışıyor mu?
ben biraz bu birkaç dakika önce ile şaşırmıştı. (Sistem zaman göre)
public blockType generateRandomBlock()
{
Random random = new Random();
int makeBlockOfType = random.Next(0, 100);
blockType t = blockType.normal;
if (makeBlockOfType <= 80 && makeBlockOfType >= 60)
{
t = blockType.blue;
}
else if (makeBlockOfType > 80 && makeBlockOfType <= 95)
{
t = blockType.orange;
}
else if (makeBlockOfType > 95 && makeBlockOfType <= 100)
{
t = blockType.green;
}
return t;
}
oldukça basit, bir rasgele oluşturulmuş sayısına dayalı bir enum
değer iade: Aşağıdaki kodu vardır. Ne yazık ki, bazı garip nedenlerden dolayı, her bir blokun oyuna sokulmasına rağmen, bir blok ya da diğeri bloklarım var. Bununla birlikte, hata ayıklayıcısını kullanarak bu adımı attığımda ve sonra da bazı çalışmalardan sonra sonuçları gördüğümde, blokların şu anda sağlanan şansa bağlı olarak çok renkli olduğunu görüyorum. Bunun neden olduğu konusunda biraz kafam karıştı.
Bunun için Microsoft yerine Mono derleyicisini kullanan MonoGame kullanıyorum. Sorun bu olabilir mi? Bu kodu, çağrılmakta olduğu yerden yapıcıya sıraya koymaya çalıştım ama aynı sonucu alıyorum (derleyicinin kodu yine de satır içi olduğunu tahmin ediyorum).
Visual Studio'yu yeniden çalıştırmayı denedim; değişiklik yok.
Her türlü öneri ve yardım büyük beğeni topluyor!
deneyin yönteminin dışına Rastgele oluşturulmasını taşımak için, yani yardımcı olmalıdır. –
'Yeni rasgele() tohumları kullanarak, birkaç milisaniye sabit kalan süreyi kullanın. – CodesInChaos
Hata ayıklamada çalışmasının nedeni, çağrılar ile Rastgele arasında zamanın olması, aslında farklı tohumlar almasıdır. – Archy