c# Desktop

Tetris Oyununu c# Dilini Kullanarak Form Sayfasında Kodlama12

Yedinci şeklimiz krem renkli olan T harfine benzeyen şekildir. Bu şeklimiz dört farklı durumda döndürülmektedir. sekilNo değişkenimizin değeri 7 olduğunda bu şekil ile ilgili döndürme işlemi yapılacaktır. Bu şeklin dönme işlemini gerçekleştirelim.

Adım 1: Şeklimize ait durum değişkeninin 1 olması durumunu kontrol edelim.

            case 7:
                if (durum == 1) {
 
                }
                break;
Adım 2: Öncelikle şeklin başlangıçta dönme konumunda olup olmadığını kontrol edelim.
            case 7:
                if (durum == 1) {
                }
                break;
Adım 3: Şeklimizin bir önceki ve bir sonraki şekle göre durumunu kontrol edelim.
            case 7:
                if (durum == 1) {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
 
                    }
                }
                break;
Adım 4: Kontrol işlemi doğru sonucu bulduğunda şeklimizi gizleyelim ve yeni şeklin konumunu belirleyelim.
            case 7:
                if (durum == 1) {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                }
                break;
Adım 5: Şimdi durum değerinin 2 olması halini kontrol edelim.
            case 7:
                if (durum == 1) {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                }
                else if (durum == 2) {
 
                }
                break;
Adım 6: Şeklimizin önceki ve sonraki konumunu kontrol edelim. Ayrıca şeklin duvarlara yanaşık olup olmadığını da kontrol etmeliyiz.
                        case 7:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[3] + 1].Visible == false && kare[aktifSekil[2] + 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[3] % 10 == 0)))
                                {
 
                    }
 
                }
                break;
Adım 7: Şart cümlemiz doğru sonucu verdiyse mevcut şekli gizleyelim. Yeni şeklin konumunu belirleyelim.
                        case 7:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[3] + 1].Visible == false && kare[aktifSekil[2] + 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[3] % 10 == 0)))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[1] = aktifSekil[2];
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    aktifSekil[3] = aktifSekil[1] + 1;
                                    durum = 3;
                                }
                            }
 
                           break;
Adım 8: Şimdi durum değerinin 3 olması halini kontrol edelim.
                        case 7:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[3] + 1].Visible == false && kare[aktifSekil[2] + 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[3] % 10 == 0)))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[1] = aktifSekil[2];
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    aktifSekil[3] = aktifSekil[1] + 1;
                                    durum = 3;
                                }
                            }
                            else if (durum == 3)
                            {
 
                }
                break;
Adım 9: Şeklimizin önceki ve sonraki konumunu kontrol edelim. Ayrıca şeklin duvarlara yanaşık olup olmadığını da kontrol etmeliyiz.
                        case 7:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[3] + 1].Visible == false && kare[aktifSekil[2] + 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[3] % 10 == 0)))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[1] = aktifSekil[2];
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    aktifSekil[3] = aktifSekil[1] + 1;
                                    durum = 3;
                                }
                            }
                            else if (durum == 3)
                            {
                                if (kare[aktifSekil[2] - 1].Visible == false && kare[aktifSekil[1] + 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false && aktifSekil[0] < 191)
                                {
 
                    }
                }
                break;
Adım 10: Önceki şekli gizleyelim ve yeni şeklin konumunu belirleyelim.
                        case 7:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[3] + 1].Visible == false && kare[aktifSekil[2] + 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[3] % 10 == 0)))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[1] = aktifSekil[2];
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    aktifSekil[3] = aktifSekil[1] + 1;
                                    durum = 3;
                                }
                            }
                            else if (durum == 3)
                            {
                                if (kare[aktifSekil[2] - 1].Visible == false && kare[aktifSekil[1] + 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false && aktifSekil[0] < 191)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[0] = aktifSekil[1] + 10;
                                    durum = 4;
                                }
                            }
 
                            break;
Adım 11: durum değişkeninin 4 olması durumunu kontrol edelim.
                        case 7:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[3] + 1].Visible == false && kare[aktifSekil[2] + 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[3] % 10 == 0)))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[1] = aktifSekil[2];
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    aktifSekil[3] = aktifSekil[1] + 1;
                                    durum = 3;
                                }
                            }
                            else if (durum == 3)
                            {
                                if (kare[aktifSekil[2] - 1].Visible == false && kare[aktifSekil[1] + 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false && aktifSekil[0] < 191)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[0] = aktifSekil[1] + 10;
                                    durum = 4;
                                }
                            }
                            else if (durum == 4)
                            {
 
                }
                break;
Adım 12: Şeklin önceki ve sonraki konumunu kontrol edelim. Ayrıca şeklin duvarlara denk gelip gelmediğine de bakalım.
                        case 7:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[3] + 1].Visible == false && kare[aktifSekil[2] + 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[3] % 10 == 0)))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[1] = aktifSekil[2];
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    aktifSekil[3] = aktifSekil[1] + 1;
                                    durum = 3;
                                }
                            }
                            else if (durum == 3)
                            {
                                if (kare[aktifSekil[2] - 1].Visible == false && kare[aktifSekil[1] + 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false && aktifSekil[0] < 191)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[0] = aktifSekil[1] + 10;
                                    durum = 4;
                                }
                            }
                            else if (durum == 4)
                            {
                                if (kare[aktifSekil[0] + 1].Visible == false && kare[aktifSekil[0] - 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[1] % 10 == 1)))
                                {
 
                    }
 
                }
                break;
Adım 13: Şart doğruysa mevcut şekli gizleyelim. Yeni şeklin konumunu belirleyelim.
                        case 7:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10 && kare[aktifSekil[1] - 1].Visible == false && kare[aktifSekil[1] + 1].Visible == false)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[3] = aktifSekil[2] - 10;
                                    durum = 2;
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[3] + 1].Visible == false && kare[aktifSekil[2] + 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[3] % 10 == 0)))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[1] = aktifSekil[2];
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    aktifSekil[3] = aktifSekil[1] + 1;
                                    durum = 3;
                                }
                            }
                            else if (durum == 3)
                            {
                                if (kare[aktifSekil[2] - 1].Visible == false && kare[aktifSekil[1] + 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false && aktifSekil[0] < 191)
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[0] = aktifSekil[1] + 10;
                                    durum = 4;
                                }
                            }
                            else if (durum == 4)
                            {
                                if (kare[aktifSekil[0] + 1].Visible == false && kare[aktifSekil[0] - 1].Visible == false && kare[aktifSekil[1] - 1].Visible == false && (!(aktifSekil[1] % 10 == 1)))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[0] = aktifSekil[1] - 1;
                                    aktifSekil[1] = aktifSekil[1] + 10;
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    durum = 1;
                                }
                            }
 
                break;
Projemizi kaydedip çalıştıralım. Bu şekilde de dönme işleminin gerçekleştiğini görürsünüz. Bir sonraki derste görüşmek üzere.

 


İlgili Makaleler
Basit Veri Bağlama (Simple Data Binding)
Veri Girişi Doğrulama (Input Validation)
TabControl Panelini Kullanarak Lokantalar İçin Müşteri Siparişi Alan c# Form Uygulaması
Kompleks Veri Bağlama (Complex Data Binding)
c# Programında Bigpara Sayfasından Borsa Verilerini Selenium Kütüphanesini Kullanarak Çekme
Veri Girişi Maskeleme (MaskedTextBox)
Yıkıcı Metotlar (Destructors)
Konsol Ekranında Kod Yazma ve Çalıştırma
Kaçan Buton Oyununu Yapan c# Uygulaması
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Kodlama
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Form Sınıfı
Form Sınıfına Ait Bazı Olayların ve Özelliklerin Kullanılmasına Ait Örnek Uygulama
Verilen İki Matrisi Çarpan Programı c# Dilinde Form Ortamında Yapınız
Tombala Oyununu Yapan Uygulamayı c# Dilinde Kodlama1
Yazdırma İletişim Kutusu (PrintDialog)
Metodu Sonlandırma
GroupBox Paneliyle Gruplandırılan Bilgisayar Parçalarının Satışını Yapan c# Form Uygulaması
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
c# Console Uygulamalarında Timer Kullanımı

Yorum Ekle
   
Kötü
İyi