Пример #1
0
        public GizliAltin(Altin altin)
        {
            this.altin       = altin;
            gizliAltinSayisi = altin.altinSayisi * AnaForm.parametre.gizliAltinOrani / 100;

            gizliAltinOlustur(gizliAltinSayisi);
        }
Пример #2
0
 public Oyuncu(char oyuncuTipi, int altinMiktari, int hamleMaliyeti, int hedefMaliyeti, int hamleHakki, Konum konum, PictureBox gorsel, Altin[] Altinlar)
 {
     this.hedefAltin    = null;
     this.Altinlar      = Altinlar;
     this.hamleHakki    = hamleHakki;
     this.hamleMaliyeti = hamleMaliyeti;
     this.hedefMaliyeti = hedefMaliyeti;
     this.oyuncuTipi    = oyuncuTipi;
     this.altinMiktari  = altinMiktari;
     this.konum         = konum;
     this.gorsel        = gorsel;
 }
Пример #3
0
 public B_Oyuncusu(Altin altin, GizliAltin gizliAltin, List <List <Block> > grid, int konumY, int konumX)
 {
     this.oyuncuRengi    = Color.Green;
     this.hamleMaliyet   = AnaForm.parametre.b_OyuncuHamleMaliyet;
     this.hedefMaliyet   = AnaForm.parametre.b_OyuncuHedefMaliyet;
     this.altin          = altin;
     this.gizliAltin     = gizliAltin;
     this.grid           = grid;
     this.konum          = (konumX, konumY);
     this.hedef          = (konumX, konumY);
     this.oyuncuNumarasi = -2;
     this.oyuncuIsmi     = "B";
 }
 // ooyundaki her bir gizli altının çizdirilme işlemi yapılmaktadır
 public void gizliAltinCiz(PaintEventArgs args, List <List <Block> > grid, Altin altin)
 {
     for (int i = 0; i < AnaForm.parametre.boyutY; i++)
     {
         for (int j = 0; j < AnaForm.parametre.boyutX; j++)
         {
             if (altin.altinMatris[i, j] == 2)
             {
                 blockBoya(args, Color.Orange, grid[i][j], altin.degerMatris[i, j].ToString());
             }
         }
     }
 }
Пример #5
0
        public OyunAnaLabel(int tabanYuksekligi, int tabanGenisligi)
        {
            this.turlar          = new int[] { 1, 1, 1, 1 };
            this.tabanGenisligi  = tabanGenisligi;
            this.tabanYuksekligi = tabanYuksekligi;

            // oyunun taban kısmı teorik olarak oluşturulur
            this.taban = new Taban(tabanYuksekligi, tabanGenisligi);

            // oyunun altin kısmı teorik olarak oluşturulur
            this.altin = new Altin();

            // oyunun gizliAltin kısmı teorik olarak oluşturulur
            this.gizliAltin    = new GizliAltin(altin);
            altin.altinSayisi -= gizliAltin.gizliAltinSayisi;

            // oyunda yer alan 4 farklı oyuncu bir listenin içinde polymorghism kullanılarak oluşturulur
            this.oyuncular = oyuncular = new List <Oyuncu>()
            {
                { new A_Oyuncusu(altin, gizliAltin, taban.grid, 0, 0) },
                { new B_Oyuncusu(altin, gizliAltin, taban.grid, 0, AnaForm.parametre.boyutX - 1) },
                { new C_Oyuncusu(altin, gizliAltin, taban.grid, AnaForm.parametre.boyutY - 1, 0) },
                { new D_Oyuncusu(altin, gizliAltin, taban.grid, AnaForm.parametre.boyutY - 1, AnaForm.parametre.boyutX - 1) },
            };

            // oyunda ki her oyuncu için kayıtlar tutulması için dosyalar oluşturulur
            this.dosyalar = dosyalar = new List <Dosya>()
            {
                { new Dosya("A_Oyuncu_Kayitlari") },
                { new Dosya("B_Oyuncu_Kayitlari") },
                { new Dosya("C_Oyuncu_Kayitlari") },
                { new Dosya("D_Oyuncu_Kayitlari") }
            };

            // oluşturulan dosyalara başlıklar eklenir
            foreach (var dosya in dosyalar)
            {
                dosya.DosyaYazdır("Oyun Başladı...");
            }

            this.cizimYonetimi = new CizimYonetimi();
            this.Paint        += new PaintEventHandler(this.oyunAnaLabelCizdir);
            this.Dock          = DockStyle.Fill;

            anaTimer          = new DispatcherTimer();
            anaTimer.Interval = new TimeSpan(0, 0, 0, 0, 400); // 400 Milliseconds
            anaTimer.Tick    += new EventHandler(this.anaTimer_Tick);

            anaTimer.Start();
        }
Пример #6
0
        public Altin HedefBelirle()
        {
            int[] altinUzakliklari = new int[Altinlar.Length];
            int   enYakin = int.MaxValue, enYakinYer = 0, gizliAltinSayisi = 0;

            for (int j = 0; j < Altinlar.Length; j++)
            {
                if (!Altinlar[j].GetGorunurluk() && Altinlar[j].GetDeger() != int.MaxValue)
                {
                    gizliAltinSayisi++;
                }
                altinUzakliklari[j] = (Math.Abs(Altinlar[j].GetX() - konum.x) + (Math.Abs(Altinlar[j].GetY() - konum.y)));
                if (altinUzakliklari[j] < enYakin && Altinlar[j].GetGorunurluk())
                {
                    enYakin    = altinUzakliklari[j];
                    enYakinYer = j;
                }
            }

            if (oyuncuTipi == 'A')
            {
                Altinlar[enYakinYer].gorsel.Image           = Image.FromFile("resimler//hedefMavi.png");
                Altinlar[enYakinYer].gorsel.BackgroundImage = Image.FromFile("resimler//altin.png");
                //Console.WriteLine("{0}'nın hedefi : - {1} , {2}", oyuncuTipi, Altinlar[enYakinYer].GetX(), Altinlar[enYakinYer].GetY());
                return(Altinlar[enYakinYer]);
            }
            else if (oyuncuTipi == 'B')
            {
                int enKarli    = int.MinValue;
                int enKarliYer = 0;
                for (int i = 0; i < Altinlar.Length; i++)
                {
                    if (Altinlar[i].GetDeger() - (altinUzakliklari[i] * hamleMaliyeti + hedefMaliyeti) > enKarli && Altinlar[i].GetGorunurluk())
                    {
                        enKarli    = Altinlar[i].GetDeger() - (altinUzakliklari[i] * hamleMaliyeti + hedefMaliyeti);
                        enKarliYer = i;
                    }
                }
                //Console.WriteLine("{0}'nin hedefi : - {1},{2} - {3}", oyuncuTipi, Altinlar[enKarliYer].GetX(), Altinlar[enKarliYer].GetY(), enKarli);
                Altinlar[enKarliYer].gorsel.Image           = Image.FromFile("resimler//hedefYesil.png");
                Altinlar[enKarliYer].gorsel.BackgroundImage = Image.FromFile("resimler//altin.png");
                return(Altinlar[enKarliYer]);
            }
            else if (oyuncuTipi == 'C')
            {
                Altin[] gizliler   = new Altin[gizliAltinSayisi];
                int[]   uzakliklar = new int[gizliAltinSayisi];
                int     k          = 0;

                for (int i = 0; i < Altinlar.Length; i++)
                {
                    if (!Altinlar[i].GetGorunurluk() && Altinlar[i].GetDeger() != int.MaxValue)
                    {
                        gizliler[k]   = Altinlar[i];
                        uzakliklar[k] = (Math.Abs(gizliler[k].GetX() - konum.x) + (Math.Abs(gizliler[k].GetY() - konum.y)));
                        k++;
                    }
                }

                for (int i = 0; i < gizliler.Length - 1; i++)
                {
                    for (int j = 0; j < gizliler.Length - i - 1; j++)
                    {
                        if (uzakliklar[i] > uzakliklar[j + 1])
                        {
                            int tempUzaklik = uzakliklar[i];
                            uzakliklar[i] = uzakliklar[j];
                            uzakliklar[j] = tempUzaklik;

                            Altin tempAltin = gizliler[i];
                            gizliler[i] = gizliler[j];
                            gizliler[j] = tempAltin;
                        }
                    }
                }
                int gizlenecekSayisi = 0;
                if (gizliler.Length >= 2)
                {
                    gizlenecekSayisi = 2;
                }
                else
                {
                    gizlenecekSayisi = gizliler.Length;
                }
                for (int i = 0; i < gizlenecekSayisi; i++)
                {
                    gizliler[i].SetGorunurluk(true);
                    altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncuTipi + " (" + gizliler[i].GetX() + " , " + gizliler[i].GetY() + ") konumundaki altını görünür yaptı.");
                    altinToplamaOyunu.logEkrani.Refresh();
                }
                int enKarli    = int.MinValue;
                int enKarliYer = 0;
                for (int i = 0; i < Altinlar.Length; i++)
                {
                    if (Altinlar[i].GetDeger() - (altinUzakliklari[i] * hamleMaliyeti + hedefMaliyeti) > enKarli && Altinlar[i].GetGorunurluk())
                    {
                        enKarli    = Altinlar[i].GetDeger() - (altinUzakliklari[i] * hamleMaliyeti + hedefMaliyeti);
                        enKarliYer = i;
                    }
                }
                //Console.WriteLine("{0}'nin hedefi :  - {1},{2} - {3}", oyuncuTipi, Altinlar[enKarliYer].GetX(), Altinlar[enKarliYer].GetY(), enKarli);
                Altinlar[enKarliYer].gorsel.Image           = Image.FromFile("resimler//hedefKirmizi.png");
                Altinlar[enKarliYer].gorsel.BackgroundImage = Image.FromFile("resimler//altin.png");
                return(Altinlar[enKarliYer]);
            }
            else if (oyuncuTipi == 'D')
            {
                int enKarli    = int.MinValue;
                int enKarliYer = -1;

                for (int i = 0; i < Altinlar.Length; i++)
                {
                    if (Altinlar[i] == Oyuncular[0].hedefAltin)
                    {
                        int secenOyuncununUzakligi = (Math.Abs(Altinlar[i].GetX() - Oyuncular[0].konum.x) + (Math.Abs(Altinlar[i].GetY() - Oyuncular[0].konum.y)));
                        int uzaklik = (Math.Abs(Altinlar[i].GetX() - konum.x) + (Math.Abs(Altinlar[i].GetY() - konum.y)));
                        if (uzaklik > hamleHakki)
                        {
                            if (uzaklik > secenOyuncununUzakligi)
                            {
                                continue;
                            }
                        }
                    }
                    else if (Altinlar[i] == Oyuncular[1].hedefAltin)
                    {
                        int secenOyuncununUzakligi = (Math.Abs(Altinlar[i].GetX() - Oyuncular[1].konum.x) + (Math.Abs(Altinlar[i].GetY() - Oyuncular[1].konum.y)));
                        int uzaklik = (Math.Abs(Altinlar[i].GetX() - konum.x) + (Math.Abs(Altinlar[i].GetY() - konum.y)));
                        if (uzaklik > hamleHakki)
                        {
                            if (uzaklik > secenOyuncununUzakligi)
                            {
                                continue;
                            }
                        }
                    }
                    else if (Altinlar[i] == Oyuncular[2].hedefAltin)
                    {
                        int secenOyuncununUzakligi = (Math.Abs(Altinlar[i].GetX() - Oyuncular[2].konum.x) + (Math.Abs(Altinlar[i].GetY() - Oyuncular[2].konum.y)));
                        int uzaklik = (Math.Abs(Altinlar[i].GetX() - konum.x) + (Math.Abs(Altinlar[i].GetY() - konum.y)));
                        if (uzaklik > hamleHakki)
                        {
                            if (uzaklik > secenOyuncununUzakligi)
                            {
                                continue;
                            }
                        }
                    }
                    if (Altinlar[i].GetDeger() - (altinUzakliklari[i] * hamleMaliyeti + hedefMaliyeti) > enKarli && Altinlar[i].GetGorunurluk())
                    {
                        enKarli    = Altinlar[i].GetDeger() - (altinUzakliklari[i] * hamleMaliyeti + hedefMaliyeti);
                        enKarliYer = i;
                    }
                }
                //Console.WriteLine("{0}'nin hedefi : - {1},{2}", oyuncuTipi, Altinlar[enKarliYer].GetX(), Altinlar[enKarliYer].GetY());
                if (enKarliYer == -1)
                {
                    return(null);
                }
                Altinlar[enKarliYer].gorsel.Image           = Image.FromFile("resimler//hedefSari.png");
                Altinlar[enKarliYer].gorsel.BackgroundImage = Image.FromFile("resimler//altin.png");
                return(Altinlar[enKarliYer]);
            }

            return(Altinlar[0]);
        }
Пример #7
0
 bool UzerindeMi(Oyuncu oyuncuKonumu, Altin hedefAltin)
 {
     return((oyuncuKonumu.konum.x == hedefAltin.GetX() && oyuncuKonumu.konum.y == hedefAltin.GetY()) ? true : false);
 }
Пример #8
0
        void Yuru(Oyuncu oyuncu, Altin hedefAltin, Panel panelOyun)
        {
            for (int i = 0; i < oyuncu.hamleHakki; i++)
            {
                if (oyuncu.altinMiktari < oyuncu.hamleMaliyeti)
                {
                    break;
                }
                panelOyun.Refresh();
                if (hedefAltin.GetX() - oyuncu.konum.x < 0)
                {
                    HarcananAltinArttir(oyuncu, oyuncu.hamleMaliyeti);
                    AdimArttir(oyuncu);
                    oyuncu.konum.x -= 1;
                    ArkaPlanToggle(oyuncu);
                    oyuncu.altinMiktari -= oyuncu.hamleMaliyeti;
                    altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti");
                    altinToplamaOyunu.logEkrani.Refresh();
                    IstatistikOlustur(oyuncu, "Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti. [-" + oyuncu.hamleMaliyeti + "]");
                    altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Text = "Oyuncu : " + oyuncu.oyuncuTipi + " " + oyuncu.altinMiktari;
                    altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Refresh();
                    GizliAltinVarmi(oyuncu);
                    oyuncu.gorsel.Left -= oyuncu.gorsel.Width * 2;
                    continue;
                }
                else if (hedefAltin.GetX() - oyuncu.konum.x > 0)
                {
                    HarcananAltinArttir(oyuncu, oyuncu.hamleMaliyeti);
                    AdimArttir(oyuncu);
                    oyuncu.konum.x += 1;
                    ArkaPlanToggle(oyuncu);
                    oyuncu.altinMiktari -= oyuncu.hamleMaliyeti;
                    altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti");
                    altinToplamaOyunu.logEkrani.Refresh();
                    IstatistikOlustur(oyuncu, "Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti. [-" + oyuncu.hamleMaliyeti + "]");
                    altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Text = "Oyuncu : " + oyuncu.oyuncuTipi + " " + oyuncu.altinMiktari;
                    altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Refresh();
                    GizliAltinVarmi(oyuncu);
                    oyuncu.gorsel.Left += oyuncu.gorsel.Width * 2;
                    continue;
                }

                if (hedefAltin.GetY() - oyuncu.konum.y < 0)
                {
                    HarcananAltinArttir(oyuncu, oyuncu.hamleMaliyeti);
                    AdimArttir(oyuncu);
                    oyuncu.konum.y -= 1;
                    ArkaPlanToggle(oyuncu);
                    oyuncu.altinMiktari -= oyuncu.hamleMaliyeti;
                    altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti");
                    altinToplamaOyunu.logEkrani.Refresh();
                    IstatistikOlustur(oyuncu, "Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti. [-" + oyuncu.hamleMaliyeti + "]");
                    altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Text = "Oyuncu : " + oyuncu.oyuncuTipi + " " + oyuncu.altinMiktari;
                    altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Refresh();
                    GizliAltinVarmi(oyuncu);
                    oyuncu.gorsel.Top -= oyuncu.gorsel.Height * 2;
                    continue;
                }
                else if (hedefAltin.GetY() - oyuncu.konum.y > 0)
                {
                    HarcananAltinArttir(oyuncu, oyuncu.hamleMaliyeti);
                    AdimArttir(oyuncu);
                    oyuncu.konum.y += 1;
                    ArkaPlanToggle(oyuncu);
                    oyuncu.altinMiktari -= oyuncu.hamleMaliyeti;
                    altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti");
                    altinToplamaOyunu.logEkrani.Refresh();
                    IstatistikOlustur(oyuncu, "Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti. [-" + oyuncu.hamleMaliyeti + "]");
                    altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Text = "Oyuncu : " + oyuncu.oyuncuTipi + " " + oyuncu.altinMiktari;
                    altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Refresh();
                    GizliAltinVarmi(oyuncu);
                    oyuncu.gorsel.Top += oyuncu.gorsel.Height * 2;
                    continue;
                }
            }
        }