Herkese merhabalar,
Aşağıda eklediğim c sharpe kodlarıyla bir oyunda rasgele sayı üreticisi ile sayılar üretip bu sayılara eşit olan karakterler görüntüleniyor. Burayakadar sorun yok lakin aynı sayılar aynı sütünda tekrar ediyor ve dolayısı ile oyunun mantığına ters düşen durum ortaya çıkıyor yani aynı karakter aynı sütünda tekrar ediyor. aynı sayıların tekrar aynı sütünda oluşturulmaması için önceki sonuçların bir listesini tutup yeni bir tane oluşturduğumuzda
yalnızca listede yoksa oluşturulması gerekiyor. Ayrıca listeyi tüm olası sonuçlarla doldurmadığımızı da doğrulamak gerekir ki sonsuz döngüye girmemesi için bu şekilde düzenlememe c sharpe bilen biri yardımcı olabilirmi delirtti beni ne yaptıysam olmadı gitti az kaldı oynatacağım : ) . Şimdiden yardım edecek olan kişiye teşekkürü bir borç bilirim.
public List<int> GetDeck()
{
List<int> result = new List<int>();
for (int x=0 ; x < Reels.Count ; ++x)
{
for (int y=0 ; y < RowCount ; ++y)
{
int RandomValue = 9 ;
if ( rngType == RNGType.UnityRandom ) RandomValue = UnityEngine.Random.Range ( 0, choice[x].ValueTotal );
else if ( rngType == RNGType.DotNetRandom ) RandomValue = randomDotNet.Next ( 0, choice[x].ValueTotal );
else if ( rngType == RNGType.MersenneTwister ) RandomValue = randomMersenneTwister.RandomRange ( 0, choice[x].ValueTotal );
else { }
int SymbolIdx = choice[x].Choice(RandomValue);
result.Add (SymbolIdx);
}
}
return result;
}
Not : Konuyu yanlış yere açtıysam affola ve doğru yere taşınırsa mutlu olurum.
Delireceğim bakabilirmisiniz.
5
●164
- 17-11-2020, 18:23:10Ben de aynı sayılar gelmemesi için sepet mantığı yapmıştım, random sayı eğer çok yoksa tümünü list içine at, içinden rasgele seçtir, sonra seçileni listeden çıkar, sayılar biterse tekrar başa al yada oyun bitiyorsa biter, kurgunuzu tam anlamadığım için aklıma ilk gelen bu oldu, umarım çözersiniz, kolay gelsinNevo adlı üyeden alıntı: mesajı görüntüle
- 17-11-2020, 18:25:43suleymankocabas adlı üyeden alıntı: mesajı görüntüle
Teşekkür ederim cevabınız için dediğiniz yapılması gerekitor ama ne yaptıysam kodlamada hata almaktan kurtulamadım. Vaktiniz varsa rica etsem yaparmısınız ? - 17-11-2020, 19:23:25Nevo adlı üyeden alıntı: mesajı görüntüle
List<int> rasgelesayiliste; int diziid; int secilensayiid; int rasgelesecilensayi; rasgelesayiliste = new List<int>{1,2,3,4,5,6,7,8,9}; // örnek sayı listesi secilensayiid = Random.Range(0, rasgelesayiliste.Count); // diziden seçilen rasgele sayının key lerini alıyoruz rasgelesecilensayi= rasgelesayiliste[secilensayiid]; // seçilen sayıyı alıyoruz. rasgelesayiliste.RemoveAt(secilensayiid); // seçilen sayıyı listeden çıkarıyoruz. liste sıfır olana kadar devm eder // liste sıfırlanınca yeniden liste yaptırıp tekrar işleme devambasit bir şekilde yazdım hemen kendinize göre düzenleyebilirsiniz. kolay gelsin - 17-11-2020, 19:35:55Rica ederim kolay gelsinNevo adlı üyeden alıntı: mesajı görüntüle