Ejemplo n.º 1
0
        public void kordinatEkle(int plaka, int x, int y)
        {
            DSehir sehirBilgileri = ilk;

            while (sehirBilgileri != null)
            {
                if (sehirBilgileri.plaka == plaka)
                {
                    break;
                }
                sehirBilgileri = sehirBilgileri.ileri;
            }
            sehirBilgileri.kordinatX = x;
            sehirBilgileri.kordinatY = y;
        }
Ejemplo n.º 2
0
        public DSehir GetSehir(int plaka)
        {
            DSehir sehirBilgileri = ilk;

            while (sehirBilgileri != null)
            {
                if (sehirBilgileri.plaka == plaka)
                {
                    break;
                }
                sehirBilgileri = sehirBilgileri.ileri;
            }



            return(sehirBilgileri);
        }
Ejemplo n.º 3
0
        public DSehir GetSehir(string sehirAdi)
        {
            DSehir sehirBilgileri = ilk;

            while (sehirBilgileri != null)
            {
                if (sehirBilgileri.sehirAdi == sehirAdi)
                {
                    break;
                }
                sehirBilgileri = sehirBilgileri.ileri;
            }



            return(sehirBilgileri);
        }
        public int[,] KomsulukMatrisi(SehirManager sehirManager)
        {
            DSehir iter = sehirManager.ilk;
            int    main = 0;

            while (iter != null)
            {
                for (int i = 0; i < iter.komsuSayisi; i++)
                {
                    matris[main, iter.komsular[i].plaka - 1] = iter.komsuMesafe[i];
                }

                main++;
                iter = iter.ileri;
            }

            return(matris);
        }
Ejemplo n.º 5
0
 public bool sehirEkle(int plaka, string sehirAdi)
 {
     try{
         DSehir node = new DSehir(plaka, sehirAdi);
         if (ilk == null)
         {
             ilk       = node;
             ilk.ileri = null;
             son       = ilk;
         }
         else
         {
             son.ileri  = node;
             node.ileri = null;
             son        = node;
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Ejemplo n.º 6
0
 public SehirManager()
 {
     ilk = null;
     son = ilk;
 }
Ejemplo n.º 7
0
        private void TumYollarCiz()
        {
            for (int i = 0; i < yol0.Count; i++)
            {
                DSehir OncekiSehirBilgisi;
                if (i == 0)
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(41);
                }
                else
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(yol0[i - 1] + 1);
                }

                DSehir sehirBilgisi = sehirManager.GetSehir(yol0[i] + 1);
                if (tumToplamMesafe[0] == minMesafe)
                {
                    mesafeListesiForm.listBox1.Items.Add(sehirBilgisi.sehirAdi);
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 1, 0, 0, 0);
                    lDizi[i].Location = new Point(sehirBilgisi.kordinatX - 7, sehirBilgisi.kordinatY - 25);
                }
                else
                {
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 0, 255, 123, 0);       //Siyah
                }
            }
            for (int i = 0; i < yol1.Count; i++)
            {
                DSehir OncekiSehirBilgisi;
                if (i == 0)
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(41);
                }
                else
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(yol1[i - 1] + 1);
                }


                DSehir sehirBilgisi = sehirManager.GetSehir(yol1[i] + 1);
                if (tumToplamMesafe[1] == minMesafe)
                {
                    mesafeListesiForm.listBox1.Items.Add(sehirBilgisi.sehirAdi);
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 1, 0, 0, 0);
                    lDizi[i].Location = new Point(sehirBilgisi.kordinatX - 7, sehirBilgisi.kordinatY - 25);
                }
                else
                {
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 0, 0, 75, 255);     //Mavi
                }
            }
            for (int i = 0; i < yol2.Count; i++)
            {
                DSehir OncekiSehirBilgisi;
                if (i == 0)
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(41);
                }
                else
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(yol2[i - 1] + 1);
                }


                DSehir sehirBilgisi = sehirManager.GetSehir(yol2[i] + 1);
                if (tumToplamMesafe[2] == minMesafe)
                {
                    mesafeListesiForm.listBox1.Items.Add(sehirBilgisi.sehirAdi);
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 1, 0, 0, 0);
                    lDizi[i].Location = new Point(sehirBilgisi.kordinatX - 7, sehirBilgisi.kordinatY - 25);
                }
                else
                {
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 0, 255, 0, 0);     //Kırmızı
                }
            }
            for (int i = 0; i < yol3.Count; i++)
            {
                DSehir OncekiSehirBilgisi;
                if (i == 0)
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(41);
                }
                else
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(yol3[i - 1] + 1);
                }


                DSehir sehirBilgisi = sehirManager.GetSehir(yol3[i] + 1);
                if (tumToplamMesafe[3] == minMesafe)
                {
                    mesafeListesiForm.listBox1.Items.Add(sehirBilgisi.sehirAdi);
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 1, 0, 0, 0);
                    lDizi[i].Location = new Point(sehirBilgisi.kordinatX - 7, sehirBilgisi.kordinatY - 25);
                }
                else
                {
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 0, 255, 0, 238);     //Kahverengi
                }
            }
            for (int i = 0; i < yol4.Count; i++)
            {
                DSehir OncekiSehirBilgisi;
                if (i == 0)
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(41);
                }
                else
                {
                    OncekiSehirBilgisi = sehirManager.GetSehir(yol4[i - 1] + 1);
                }


                DSehir sehirBilgisi = sehirManager.GetSehir(yol4[i] + 1);
                if (tumToplamMesafe[4] == minMesafe)
                {
                    mesafeListesiForm.listBox1.Items.Add(sehirBilgisi.sehirAdi);
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 1, 0, 0, 0);
                    lDizi[i].Location = new Point(sehirBilgisi.kordinatX - 7, sehirBilgisi.kordinatY - 25);
                }
                else
                {
                    HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 0, 0, 0, 0);  //siyah
                }
            }


            mesafeListesiForm.label2.Text     = minMesafe.ToString() + " KM";
            mesafeListesiForm.label5.Location = new Point(90, 10);
            mesafeListesiForm.label5.Text     = "Tüm Yollar\nEn Kisa Bilgisi";
            mesafeListesiForm.ShowDialog();
        }
Ejemplo n.º 8
0
        private void YolCizClick()
        {
            mesafeListesiForm.listBox1.Items.Clear();
            mesafeListesiForm.label5.Location = new Point(120, 25);


            mesafeListesiForm.listBox1.Items.Add("Kocaeli");
            this.tabControl1.SelectedTab = tabPage5;
            g.Clear(Color.White);
            Image harita = Image.FromFile(dosyaManager.Dosya.haritaDosyaYolu);

            g.DrawImage(harita, 0, 0, 1300, 650);
            LabelKonumlandir();

            if (listBox1.SelectedItem == null)
            {
                MessageBox.Show("Yol Seçimi Yapılmadi");
            }
            else
            {
                int          tempIndex = 0;
                List <Int32> temp      = new List <int>();

                if (listBox1.SelectedItem.ToString() == "1.Yol")
                {
                    temp = yol0;
                    mesafeListesiForm.label5.Text = "1.Yol";
                    tempIndex = 0;
                }
                else if (listBox1.SelectedItem.ToString() == "2.Yol")
                {
                    mesafeListesiForm.label5.Text = "2.Yol";
                    temp      = yol1;
                    tempIndex = 1;
                }
                else if (listBox1.SelectedItem.ToString() == "3.Yol")
                {
                    mesafeListesiForm.label5.Text = "3.Yol";
                    temp      = yol2;
                    tempIndex = 2;
                }
                else if (listBox1.SelectedItem.ToString() == "4.Yol")
                {
                    mesafeListesiForm.label5.Text = "4.Yol";
                    temp      = yol3;
                    tempIndex = 3;
                }
                else if (listBox1.SelectedItem.ToString() == "5.Yol")
                {
                    mesafeListesiForm.label5.Text = "5.Yol";
                    temp      = yol4;
                    tempIndex = 4;
                }
                else if (listBox1.SelectedItem.ToString() == "Tüm Yollar")
                {
                    TumYollarCiz();
                }
                else
                {
                    MessageBox.Show("Hatalı Seçim");
                }


                if (listBox1.SelectedItem.ToString() != "Tüm Yollar")
                {
                    for (int i = 0; i < temp.Count; i++)
                    {
                        DSehir OncekiSehirBilgisi;
                        if (i == 0)
                        {
                            OncekiSehirBilgisi = sehirManager.GetSehir(41);
                        }
                        else
                        {
                            OncekiSehirBilgisi = sehirManager.GetSehir(temp[i - 1] + 1);
                        }


                        DSehir sehirBilgisi = sehirManager.GetSehir(temp[i] + 1);
                        mesafeListesiForm.listBox1.Items.Add(sehirBilgisi.sehirAdi);


                        HaritadaCiz(OncekiSehirBilgisi.kordinatX, OncekiSehirBilgisi.kordinatY, sehirBilgisi.kordinatX, sehirBilgisi.kordinatY, 0, 29, 53, 87);
                        lDizi[i].Location = new Point(sehirBilgisi.kordinatX - 7, sehirBilgisi.kordinatY - 25);
                    }
                    mesafeListesiForm.label2.Text = tumToplamMesafe[tempIndex].ToString() + " KM";

                    mesafeListesiForm.ShowDialog();
                }
            }
        }
Ejemplo n.º 9
0
        private void YolBul(List <Int32> arananIndisListesi, int[,] matris, int tur)
        {
            int[,] newMatris = new int[81, 81];
            for (int i = 0; i < 81; i++)
            {
                for (int k = 0; k < 81; k++)
                {
                    newMatris[i, k] = matris[i, k];
                }
            }
            List <Int32> arananIndisListesiCopy = new List <int>();

            for (int i = 0; i < arananIndisListesi.Count; i++)
            {
                arananIndisListesiCopy.Add(arananIndisListesi[i]);
            }
            if (tur < 5)
            {
                YolBulucu t = new YolBulucu();
                t.topluDijikstra(newMatris, 40, arananIndisListesiCopy, 0);
                richTextBox2.Text += sehirManager.GetSehir(41).sehirAdi + "(" + sehirManager.GetSehir(41).plaka.ToString() + ") ";
                for (int i = 0; i < t.tamYol.Count; i++)
                {
                    switch (tur)
                    {
                    case 0:
                        yol0.Add(t.tamYol[i]);
                        break;

                    case 1:
                        yol1.Add(t.tamYol[i]);
                        break;

                    case 2:
                        yol2.Add(t.tamYol[i]);
                        break;

                    case 3:
                        yol3.Add(t.tamYol[i]);
                        break;

                    case 4:
                        yol4.Add(t.tamYol[i]);
                        break;
                    }
                    DSehir OncekiSehirBilgisi;
                    if (i == 0)
                    {
                        OncekiSehirBilgisi = sehirManager.GetSehir(41);
                    }
                    else
                    {
                        OncekiSehirBilgisi = sehirManager.GetSehir(t.tamYol[i - 1] + 1);
                    }


                    DSehir sehirBilgisi = sehirManager.GetSehir(t.tamYol[i] + 1);

                    richTextBox2.Text += "  -  " + sehirBilgisi.sehirAdi + "(" + sehirBilgisi.plaka.ToString() + ")";
                }
                richTextBox2.Text += "\n----[TOPLAM MESAFE: " + t.toplamMinMesafe.ToString() + "]----\n\n";
                tumToplamMesafe.Add(t.toplamMinMesafe);


                if (t.tamYol.Count >= 5)
                {
BurayaDon:
                    Random random = new Random();
                    int sayi = random.Next(t.tamYol.Count);
                    for (int i = 0; i < arananListesiIndis.Count; i++)
                    {
                        if (t.tamYol[sayi] == arananListesiIndis[i] || sayi == 0)
                        {
                            goto BurayaDon;
                        }
                    }
                    newMatris[t.tamYol[sayi - 1], t.tamYol[sayi]] = 0;
                    YolBul(arananListesiIndis, newMatris, tur + 1);
                }
            }
        }