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; }
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; }