c# Desktop

Tetris Oyununu c# Dilini Kullanarak Form Sayfasında Kodlama8

İkinci şeklimiz mavi renkli olan sağa merdiven basamaklı olan şekildir Bu şeklimizde iki durumda döndürülmektedir. sekilNo değişkenimizin değeri 2 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 2:
                if (durum == 1) {
 
                }
                break;
Adım 2: Öncelikle şeklin başlangıçta dönme konumunda olup olmadığını kontrol edelim.
            case 2:
                if (durum == 1) {
                    if (aktifSekil[2] > 10) {
 
                    }
                }
                break;
Adım 3: Şeklimizin bir önceki ve bir sonraki şekle göre durumunu kontrol edelim.
            case 2:
                if (durum == 1) {
                    if (aktifSekil[2] > 10) {
                                    if (kare[aktifSekil[2] - 10].Visible == false && kare[aktifSekil[3] - 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false){
 
                        }
                    }
                }
                break;
Adım 4: Kontrol işlemi doğru sonucu bulduğunda şeklimizi gizleyelim ve yeni şeklin konumunu belirleyelim.
                        case 2:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10)
                                {
                                    if (kare[aktifSekil[2] - 10].Visible == false && kare[aktifSekil[3] - 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false)
                                    {
                                        for (int i = 0; i < 4; i++)
                                        {
                                            kare[aktifSekil[i]].Visible = false;
                                        }
                                        aktifSekil[0] = aktifSekil[2];
                                        aktifSekil[1] = aktifSekil[0] - 10;
                                        aktifSekil[2] = aktifSekil[3] + 10;
                                        aktifSekil[3] = aktifSekil[2] - 10;
                                        durum = 2;
                                    }
                                }
                            }
                break;
Adım 5: Şimdi durum değerinin 2 olması halini kontrol edelim.
                        case 2:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10)
                                {
                                    if (kare[aktifSekil[2] - 10].Visible == false && kare[aktifSekil[3] - 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false)
                                    {
                                        for (int i = 0; i < 4; i++)
                                        {
                                            kare[aktifSekil[i]].Visible = false;
                                        }
                                        aktifSekil[0] = aktifSekil[2];
                                        aktifSekil[1] = aktifSekil[0] - 10;
                                        aktifSekil[2] = aktifSekil[3] + 10;
                                        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 2:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10)
                                {
                                    if (kare[aktifSekil[2] - 10].Visible == false && kare[aktifSekil[3] - 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false)
                                    {
                                        for (int i = 0; i < 4; i++)
                                        {
                                            kare[aktifSekil[i]].Visible = false;
                                        }
                                        aktifSekil[0] = aktifSekil[2];
                                        aktifSekil[1] = aktifSekil[0] - 10;
                                        aktifSekil[2] = aktifSekil[3] + 10;
                                        aktifSekil[3] = aktifSekil[2] - 10;
                                        durum = 2;
                                    }
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[2] - 1].Visible == false && kare[aktifSekil[2] - 2].Visible == false && kare[aktifSekil[3] - 10].Visible == false && !(aktifSekil[0] % 10 == 1))
                                {
 
                    }
 
                }
                break;
Adım 7: Şart cümlemiz doğru sonucu verdiyse mevcut şekli gizleyelim. Yeni şeklin konumunu belirleyelim.
                        case 2:
                            if (durum == 1)
                            {
                                if (aktifSekil[2] > 10)
                                {
                                    if (kare[aktifSekil[2] - 10].Visible == false && kare[aktifSekil[3] - 10].Visible == false && kare[aktifSekil[3] + 10].Visible == false)
                                    {
                                        for (int i = 0; i < 4; i++)
                                        {
                                            kare[aktifSekil[i]].Visible = false;
                                        }
                                        aktifSekil[0] = aktifSekil[2];
                                        aktifSekil[1] = aktifSekil[0] - 10;
                                        aktifSekil[2] = aktifSekil[3] + 10;
                                        aktifSekil[3] = aktifSekil[2] - 10;
                                        durum = 2;
                                    }
                                }
                            }
                            else if (durum == 2)
                            {
                                if (kare[aktifSekil[2] - 1].Visible == false && kare[aktifSekil[2] - 2].Visible == false && kare[aktifSekil[3] - 10].Visible == false && !(aktifSekil[0] % 10 == 1))
                                {
                                    for (int i = 0; i < 4; i++)
                                    {
                                        kare[aktifSekil[i]].Visible = false;
                                    }
                                    aktifSekil[0] = aktifSekil[0] + 9;
                                    aktifSekil[1] = aktifSekil[0] + 1;
                                    aktifSekil[2] = aktifSekil[1] - 10;
                                    aktifSekil[3] = aktifSekil[2] + 1;
                                    durum = 1;
                                }
                            }
                            break;
Projemizi kaydedip çalıştıralım. Bu şekilde de dönme işleminin gerçekelştiğini görürsünüz. Bir sonraki derste görüşmek üzere.

 


İlgili Makaleler
c# Console Uygulamalarında ReadKey Metoduyla Klavye Tuşlarını Kontrol Etme
Yıkıcı Metotlar (Destructors)
Sayısal Loto Çekilişini Yapan c# Uygulaması
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması
Kaçan Buton Oyununu Yapan c# Uygulaması
Yazdırma İletişim Kutusu (PrintDialog)
C# Uygulamalarında HashMap Dizi Oluşturma
C# Uygulamalarında Dictionary Dizi Oluşturma
c# Form Uygulamalarında Ekranın Genişliğini ve Yüksekliğini Bulma
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Konsol Ekranında Kod Yazma ve Çalıştırma
LINQ - Gruplama (Grouping) Örnekleri
Veri Girişi Maskeleme (MaskedTextBox)
Panel Üzerinde Serbest Çizim Yapan c# Form Uygulaması
Veri Girişi Doğrulama (Input Validation)
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
C# Programlama Dilinde Veri Tipleri
Form Sayfalarında Ayrıntılı ListBox Kullanımı
Form Üzerine Satranç Tahtası Yapan c# Uygulaması
Belirtilen Sayı Kadar Yıldız Oluşturan c# Form Uygulaması

Yorum Ekle
   
Kötü İyi