示例#1
0
        private void loop_function(int nh, int kc)
        {
            int normal_toplam = 0, kartezyen_toplam = 0, eleman = 0;

            string[] temp = new string[d_boyut];
            foreach (string value in alfabe)
            {
                if (string.IsNullOrEmpty(value))
                {
                    break;
                }
                for (int i = 0; i < rastgele_kelime.Length; i++)
                {
                    char  aranan  = rastgele_kelime.ToCharArray()[i];
                    int[] adetler = Enumerable.Range(0, value.Length).Select(x => value.Substring(x, 1).Count(p => p == aranan)).ToArray();
                    for (int j = 0; j < adetler.Length; j++)
                    {
                        if (rastgele_kelime.IndexOf(aranan, 0, i) == -1)//harf  daha önce geldi mi?
                        {
                            normal_toplam += adetler[j];
                        }
                        kartezyen_toplam += adetler[j];
                    }
                    Array.Clear(adetler, 0, adetler.Length);
                }

                if (nh == normal_toplam && kc == kartezyen_toplam)
                {
                    temp[eleman] = value;
                    eleman++;
                }

                normal_toplam    = 0;
                kartezyen_toplam = 0;
            }
            function(temp, eleman);//kalan elemanları sözlük dizine atıyor..
            Array.Clear(temp, 0, d_boyut);
            if (alfabe[1] != null && alfabe[2] != null)
            {
                listBox3.Items.Add(rastgele_kelime);
                rastgele_kelime = "";
                Random rastgele = new Random();
                Console.WriteLine(eleman.ToString());
                int rastgele_sayi = rastgele.Next(eleman);//0 ile sözlük boyutu arasındaki sayıları üretir
                label4.Text     = "Sözlükte kalan kelime sayısı: " + eleman.ToString();
                rastgele_kelime = alfabe[rastgele_sayi];
                label3.Text     = "Rastgele kelime:" + rastgele_kelime;
                MessageBox.Show("Yeni Kartezyen Çarpım ve Normal Hesaplama Değerlerini Giriniz", "Bilgi Ekranı", MessageBoxButtons.OK, MessageBoxIcon.Information);
                textBox1.Text = "";
                textBox2.Text = "";
            }
            else
            {
                if (alfabe[0] == null)
                {
                    if (MessageBox.Show("Girdiğiniz kelime sözlükte bulunamadı..\nKelimeyi sözlüğe eklememi ister misiniz?", "Bilgi Ekranı", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    {
                        string       yazilacak_kelime = Interaction.InputBox("Tuttuğunuz kelimeyi giriniz..", "Kelime girişi", "", 400, 300);
                        string       dosya_yolu       = @"C:\Users\erdasonur\source\repos\odev\sozluk.txt";
                        FileStream   fs = new FileStream(dosya_yolu, FileMode.OpenOrCreate, FileAccess.Write);
                        StreamWriter sw = new StreamWriter(fs);
                        sw.WriteLine(yazilacak_kelime);
                        sw.Flush();
                        sw.Close();
                        fs.Close();
                        MessageBox.Show("Seçiminiz üzerine kelime sözlüğe eklendi..", "Bilgi Ekranı", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        if (MessageBox.Show("Ana menüye dönmek için Tamamı çıkmak içinse İptali seçiniz", "Oyun sonu", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                        {
                            Form3 f3 = new Form3();
                            f3.Show();
                            this.Hide();
                        }
                        else
                        {
                            Application.Exit();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Seçiminiz üzere kelime sözlüğe eklenmedi", "Bilgi Ekranı", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        if (MessageBox.Show("Ana menüye dönmek için Tamamı çıkmak içinse İptali seçiniz", "Oyun sonu", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                        {
                            Form3 f3 = new Form3();
                            f3.Show();
                            this.Hide();
                        }
                        else
                        {
                            Application.Exit();
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Tuttuğunuz Kelime : " + alfabe[0], "Kelime Bulundu!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    if (MessageBox.Show("Ana menüye dönmek için Tamamı çıkmak içinse İptali seçiniz", "Oyun sonu", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                    {
                        Form3 f3 = new Form3();
                        f3.Show();
                        this.Hide();
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
            }
            eleman = 0;
        }
示例#2
0
        private void Loop_function(int nh, int kc)
        {
            int normal_toplam = 0, kartezyen_toplam = 0, eleman = 0;

            string[] temp = new string[D_boyut];
            foreach (string value in Alfabe)
            {
                if (string.IsNullOrEmpty(value))
                {
                    break;
                }

                /*for (int i = 0; i < rastgele_kelime.Length; i++)//string karşılaştırma 1.yol
                 * {
                 *  char aranan = rastgele_kelime.ToCharArray()[i];
                 *  int[] adetler = Enumerable.Range(0, value.Length).Select(x => value.Substring(x, 1).Count(p => p == aranan)).ToArray();
                 *  for (int j = 0; j < adetler.Length; j++)
                 *  {
                 *      if (rastgele_kelime.IndexOf(aranan, 0, i) == -1)//harf  daha önce geldi mi?
                 *      {
                 *          normal_toplam += adetler[j];
                 *      }
                 *      kartezyen_toplam += adetler[j];
                 *  }
                 *  Array.Clear(adetler, 0, adetler.Length);
                 * }*/
                for (int i = 0; i < Rastgele_kelime.Length; i++)//string karşılaştırma 2.yol
                {
                    for (int j = 0; j < value.Length; j++)
                    {
                        if (Rastgele_kelime.ToCharArray()[i] == value.ToCharArray()[j])
                        {
                            if (Rastgele_kelime.IndexOf(Rastgele_kelime.ToCharArray()[i], 0, i) == -1)
                            {
                                normal_toplam++;
                            }
                            kartezyen_toplam++;
                        }
                    }
                }

                if (nh == normal_toplam && kc == kartezyen_toplam)//anagram kelime kontrolü
                {
                    if (Rastgele_kelime.Length == value.Length && Rastgele_kelime != value)
                    {
                        int i;
                        for (i = 0; i < value.Length; i++)
                        {
                            char aranan = Rastgele_kelime.ToCharArray()[i];
                            if (value.IndexOf(aranan, 0) == -1)
                            {
                                break;
                            }
                        }
                        if (value.Length != i)
                        {
                            temp[eleman] = value;
                            eleman++;
                        }
                        else
                        {
                            anagrams[anagram_counter] = value;
                            anagram_counter++;
                        }
                    }
                    else
                    {
                        temp[eleman] = value;
                        eleman++;
                    }
                }

                normal_toplam    = 0;
                kartezyen_toplam = 0;
            }
            Function(temp, eleman);//kalan elemanları sözlük dizine atıyor..
            Array.Clear(temp, 0, D_boyut);
            if (Alfabe[1] != null)
            {
                listBox3.Items.Add(Rastgele_kelime);
                listBox4.Items.Add(nh.ToString() + "  --  " + kc.ToString());
                int bayrak = 0;
                do
                {
                    bayrak = 0;
                    Random_word(eleman);
                    for (int i = 0; i < listBox3.Items.Count; i++)
                    {
                        if (Rastgele_kelime == listBox3.Items[i].ToString())
                        {
                            bayrak = 1;
                        }
                    }
                } while (bayrak == 1);//Burada üst üste aynı kelime gelmesi engelleniyor.
                label3.Text = "Rastgele kelime:" + Rastgele_kelime;
                MessageBox.Show("Yeni Kartezyen Çarpım ve Normal Hesaplama Değerlerini Giriniz", "Bilgi Ekranı", MessageBoxButtons.OK, MessageBoxIcon.Information);
                textBox1.Text = "";
                textBox2.Text = "";
                Array.Clear(anagrams, 0, anagrams.Length);
                anagram_counter = 0;
            }
            else
            {
                if (Alfabe[0] == null)
                {
                    if (MessageBox.Show("Girdiğiniz kelime sözlükte bulunamadı..\nKelimeyi sözlüğe eklememi ister misiniz?", "Bilgi Ekranı", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    {
                        string       yazilacak_kelime = Interaction.InputBox("Tuttuğunuz kelimeyi giriniz..", "Kelime girişi", "", 400, 300);
                        string       dosya_yolu       = @"C:\Users\erdasonur\source\repos\odev\sozluk.txt";
                        FileStream   fs = new FileStream(dosya_yolu, FileMode.OpenOrCreate, FileAccess.Write);
                        StreamWriter sw = new StreamWriter(fs);
                        sw.WriteLine(yazilacak_kelime);
                        sw.Flush();
                        sw.Close();
                        fs.Close();
                        MessageBox.Show("Seçiminiz üzerine kelime sözlüğe eklendi..", "Bilgi Ekranı", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        if (MessageBox.Show("Ana menüye dönmek için Tamamı ,kalip incelemek için İptali , çıkmak içinse çarpı tuşun seçiniz", "Oyun sonu", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                        {
                            Form3 f3 = new Form3();
                            f3.Show();
                            this.Hide();
                        }
                        else
                        {
                            textBox1.Visible = false;
                            textBox2.Visible = false;
                            label1.Visible   = false;
                            label2.Visible   = false;
                            button1.Visible  = false;
                            listBox3.Items.Add(Rastgele_kelime);
                            listBox4.Items.Add(nh.ToString() + "-" + kc.ToString());
                        }
                    }
                    else
                    {
                        MessageBox.Show("Seçiminiz üzere kelime sözlüğe eklenmedi", "Bilgi Ekranı", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        if (MessageBox.Show("Ana menüye dönmek için Tamamı ,kalıp incelemek için İptali , çıkmak içinse çarpı tuşun seçiniz", "Oyun sonu", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                        {
                            Form3 f3 = new Form3();
                            f3.Show();
                            this.Hide();
                        }
                        else
                        {
                            textBox1.Visible = false;
                            textBox2.Visible = false;
                            label1.Visible   = false;
                            label2.Visible   = false;
                            button1.Visible  = false;
                            listBox3.Items.Add(Rastgele_kelime);
                            listBox4.Items.Add(nh.ToString() + "-" + kc.ToString());
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Tuttuğunuz Kelime : " + Alfabe[0], "Kelime Bulundu!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    for (int i = 0; i < anagrams.Length; i++)
                    {
                        if (string.IsNullOrEmpty(anagrams[i]))
                        {
                            break;
                        }
                        else
                        {
                            MessageBox.Show("Bulunan kelimenin olası " + (i + 1) + ". anagramı= " + anagrams[i], "Bilgi Ekranı", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        }
                    }
                    if (MessageBox.Show("Ana menüye dönmek için Tamamı ,kalıp incelemek için İptali , çıkmak içinse çarpı tuşun seçiniz", "Oyun sonu", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
                    {
                        Form3 f3 = new Form3();
                        f3.Show();
                        this.Hide();
                    }
                    else
                    {
                        textBox1.Visible = false;
                        textBox2.Visible = false;
                        label1.Visible   = false;
                        label2.Visible   = false;
                        button1.Visible  = false;
                        listBox3.Items.Add(Rastgele_kelime);
                        listBox4.Items.Add(nh.ToString() + " - " + kc.ToString());
                        label4.Text = "Kalan kelime sayısı:  " + eleman;
                    }
                }
            }
            eleman = 0;
        }