Beispiel #1
0
        public void KutucuklariOlustur(int _boyut)
        {
            boyut = _boyut;

            Rectangle r = panel.ClientRectangle;
            Point     p = new Point(r.X, r.Y);

            panel.Location = new Point(34 + (8 - boyut) * 26, 30 + (9 - boyut) * 25);

            kutucuklar = new Kutucuk[boyut, boyut];

            for (int i = 0; i < boyut; i++)
            {
                for (int j = 0; j < boyut; j++)
                {
                    kutucuklar[i, j]           = new Kutucuk(p, i, j);
                    kutucuklar[i, j].BackColor = Color.LightGray;
                    panel.Controls.Add(kutucuklar[i, j]);
                    kutucuklar[i, j].MouseDown += Kutucuk_click;
                    p.X += 50;
                }
                p.Y += 50;
                p.X  = r.X;
            }
        }
Beispiel #2
0
        private void Kutucuk_click(object sender, MouseEventArgs e)
        {
            Kutucuk kutucuk = (Kutucuk)sender;

            if (e.Button == MouseButtons.Left)
            {
                KutucuklarinRenginiDuzenle();
                kutucuk.acildiMi  = true;
                kutucuk.BackColor = Color.Purple;
                kutucuk.Text      = (acilanBolgeSayisi + 1).ToString();
                acilanBolgeSayisi++;
                oyunSifirlandi = false;

                sayac = 0;

                // koordinatları dizi haline getir koordinatlar[1][2]

                int x1 = kutucuk.koordinatX + 2;  // L hareketlerinin koordinatları
                int x2 = kutucuk.koordinatX - 2;
                int x3 = kutucuk.koordinatX + 1;
                int x4 = kutucuk.koordinatX - 1;

                int y1 = kutucuk.koordinatY + 2;
                int y2 = kutucuk.koordinatY - 2;
                int y3 = kutucuk.koordinatY + 1;
                int y4 = kutucuk.koordinatY - 1;

                if (x1 > -1 && y3 > -1 && x1 < boyut && y3 < boyut && !kutucuklar[x1, y3].acildiMi) // koşullar
                {
                    TiklananKutucukIslemleri(x1, y3);
                }

                if (x1 > -1 && y4 > -1 && x1 < boyut && y4 < boyut && !kutucuklar[x1, y4].acildiMi)
                {
                    TiklananKutucukIslemleri(x1, y4);
                }

                if (x3 > -1 && y1 > -1 && x3 < boyut && y1 < boyut && !kutucuklar[x3, y1].acildiMi)
                {
                    TiklananKutucukIslemleri(x3, y1);
                }

                if (x3 > -1 && y2 > -1 && x3 < boyut && y2 < boyut && !kutucuklar[x3, y2].acildiMi)
                {
                    TiklananKutucukIslemleri(x3, y2);
                }

                if (x2 > -1 && y3 > -1 && x2 < boyut && y3 < boyut && !kutucuklar[x2, y3].acildiMi)
                {
                    TiklananKutucukIslemleri(x2, y3);
                }

                if (x2 > -1 && y4 > -1 && x2 < boyut && y4 < boyut && !kutucuklar[x2, y4].acildiMi)
                {
                    TiklananKutucukIslemleri(x2, y4);
                }

                if (x4 > -1 && y1 > -1 && x4 < boyut && y1 < boyut && !kutucuklar[x4, y1].acildiMi)
                {
                    TiklananKutucukIslemleri(x4, y1);
                }

                if (x4 > -1 && y2 > -1 && x4 < boyut && y2 < boyut && !kutucuklar[x4, y2].acildiMi)
                {
                    TiklananKutucukIslemleri(x4, y2);
                }

                kalanKutucuk.Text = ((boyut * boyut) - acilanBolgeSayisi).ToString(); // kalan kutucuk sayısı
                hamle.Text        = sayac.ToString();                                 // oynanabilecek hamle sayısı

                if (acilanBolgeSayisi == boyut * boyut)                               // kazanma durumu
                {
                    kutucuk.BackColor = Color.Orange;
                    kutucuk.Text      = "GAME" + Environment.NewLine +
                                        acilanBolgeSayisi.ToString() +
                                        Environment.NewLine + "FINISH";
                    OyunuBitir(true);
                }

                if (sayac == 0 && !oyunSifirlandi) // kaybetme durumu
                {
                    kutucuk.BackColor = Color.Red;
                    kutucuk.Text      = "GAME" + Environment.NewLine +
                                        acilanBolgeSayisi.ToString() +
                                        Environment.NewLine + "OVER";
                    OyunuBitir(false);
                }
            }
        }