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
Nesne Tabanlı Programlama Çalışma Soruları
Kompleks Veri Bağlama (Complex Data Binding)
Basit Veri Bağlama (Simple Data Binding)
Veri Girişi Doğrulama (Input Validation)
Konsol Ekranında Kod Yazma ve Çalıştırma
Veri Girişi Maskeleme (MaskedTextBox)
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Konteyner Kontrolleri
TabControl Panelini Kullanarak Lokantalar İçin Müşteri Siparişi Alan c# Form Uygulaması
Sayısal Loto Çekilişini Yapan c# Uygulaması
Form Sınıfı
c# Console Uygulamalarında ReadKey Metoduyla Klavye Tuşlarını Kontrol Etme
GroupBox Paneliyle Gruplandırılan Bilgisayar Parçalarının Satışını Yapan c# Form Uygulaması
Değişken Tanımlama Kuralları
Form Sayfalarında Ayrıntılı ListBox Kullanımı
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma
WebBrowser ve Panel Kontrollerini Kullanarak Web Tarayıcı Oluşturan c# Form Uygulaması
Yıkıcı Metotlar (Destructors)
Yazdırma İletişim Kutusu (PrintDialog)
Kredi Kartı Taksitlendirme İşlemini Yapan c# Uygulaması

Yorum Ekle
   
Kötü
İyi