• 28-11-2012, 23:59:33
    #1
    Merhaba arkadaşlar 8 harfli bir kelime veriyorum ve harflerini rasgele 8 labele yazdırmak istiyorum.Denedim ama random şeklini yapamadım.Yardımcı olursanız sevinirim.
    Saygılarımla.

                 private void button1_Click(object sender, EventArgs e)
            {
                string kelime = "KROKODİL";
                char[] alar = new char[kelime.Length];
                a1.Text = kelime[0].ToString();
                a2.Text = kelime[1].ToString();
                a3.Text = kelime[2].ToString();
                a4.Text = kelime[3].ToString();
                a5.Text = kelime[4].ToString();
                a6.Text = kelime[5].ToString();
                a7.Text = kelime[6].ToString();
                a8.Text = kelime[7].ToString();
            }
  • 29-11-2012, 00:28:32
    #2
    string kelime = "KROKODİL";
                char[] k = kelime.ToCharArray();
                k = k.OrderBy(x=>Guid.NewGuid()).ToArray();
                a1.Text = k[0].ToString(); 
                a2.Text = k[1].ToString(); 
                a3.Text = k[2].ToString(); 
                a4.Text = k[3].ToString(); 
                a5.Text = k[4].ToString(); 
                a6.Text = k[5].ToString(); 
                a7.Text = k[6].ToString(); 
                a8.Text = k[7].ToString();
  • 29-11-2012, 00:45:37
    #3
    kabuscobar adlı üyeden alıntı: mesajı görüntüle
    string kelime = "KROKODİL";
                char[] k = kelime.ToCharArray();
                k = k.OrderBy(x=>Guid.NewGuid()).ToArray();
                a1.Text = k[0].ToString(); 
                a2.Text = k[1].ToString(); 
                a3.Text = k[2].ToString(); 
                a4.Text = k[3].ToString(); 
                a5.Text = k[4].ToString(); 
                a6.Text = k[5].ToString(); 
                a7.Text = k[6].ToString(); 
                a8.Text = k[7].ToString();
    Hocam çok teşekkür ederim inanın çok makbule geçti.Ama ben ezberciliği sevmem birde ufak bir açıklama yaparsanız çok memnun kalırım.
    Saygılarımla.
  • 29-11-2012, 11:51:04
    #4
      char[] k = kelime.ToCharArray(); //string ifadeyi char dizisine atıyo
                k = k.OrderBy(x=>Guid.NewGuid()).ToArray();//bu satırda da char dizisini rastgele sıralama yapıyo
  • 03-12-2012, 17:23:59
    #5
    toCharArray metodunu kullanmayadabilirsiniz aslında. Kullandığınızda ekstradan bir char dizisi tanımlamış oluyorsunuz. c# da her string bir char dizisidir zaten otomatik olarak arka planda tanımlanır.

    string kelime = "TURKSMF";

    private void Form1_Load(object sender, EventArgs e)
    {
    MessageBox.Show(kelime[0].ToString());
    }

    Buradaki kodda ekran çıktısı "T" dir.

    Sizin kodlarınıza gelecek olursak

    private void button1_Click(object sender, EventArgs e)
    {
    string kelime = "KROKODİL";

    a1.Text = kelime[0].ToString();
    a2.Text = kelime[1].ToString();
    a3.Text = kelime[2].ToString();
    a4.Text = kelime[3].ToString();
    a5.Text = kelime[4].ToString();
    a6.Text = kelime[5].ToString();
    a7.Text = kelime[6].ToString();
    a8.Text = kelime[7].ToString();
    }

    bu şekilde yazmanız kafidir. Araya fazla kod yazmışsınız
    bu satırı silince çalışır char[] alar = new char[kelime.Length];

    İyi çalışmalar

    ----Edit-----
    Dostum kusura bakma random olarak istediğini sonra farkettim

    private void button1_Click(object sender, EventArgs e)
    {
    string kelime = "KROKODİL";
    Random rnd = new Random();

    a1.Text = kelime[rnd.Next(0, kelime.Length)].ToString();

    }

    bu şekilde yaparsan random olarakda yazdırırsın