• 17-11-2020, 18:06:06
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    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.
  • 17-11-2020, 18:23:10
    #2
    Nevo adlı üyeden alıntı: mesajı görüntüle
    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.
    Ben 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 gelsin
  • 17-11-2020, 18:25:43
    #3
    suleymankocabas adlı üyeden alıntı: mesajı görüntüle
    Ben 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 gelsin

    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:25
    #4
    Nevo 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 ?
    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 devam
    basit bir şekilde yazdım hemen kendinize göre düzenleyebilirsiniz. kolay gelsin
  • 17-11-2020, 19:24:26
    #5
    suleymankocabas 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 devam
    basit bir şekilde yazdım hemen kendinize göre düzenleyebilirsiniz. kolay gelsin
    teşekkürler.
  • 17-11-2020, 19:35:55
    #6
    Nevo adlı üyeden alıntı: mesajı görüntüle
    teşekkürler.
    Rica ederim kolay gelsin