C# Console Uygulamaları – Karakter Koyarak Harf Yazdırma

R10 platformunda bir öğrenci karakter koyarak harf yazdırmayla ilgili yardım istedi. İstekleri şu şekildeydi:

  • Soldan sağa doğru karakter koyularak harf yazdırılacak
  • * karakteri kullanılacak
  • Çıktıdaki A harfinin üst köşeleri yani sol ve sağ üste bulunan * karakterini istemiyordu.

Çıktı ekranını 9×9 luk bir kare düşünecek olursak soldan sağa doğru yazdıracağımız için öncelikle 1×1 den 1×9 a kadar yazdırıp, ardından 2×1, 2×2, 2×3 şeklinde 9×9 a kadar gidecek şekilde iç içe geçmiş 1 den başlayıp 9 olana kadar devam eden for döngülerini oluşturdum. Ardından da setcursorposition (Console.SetCursorPosition(i, j);) komutu ile de karakterin yazdırılacağı konumu her yazım işlemi öncesinde denetledim ve setledim. Burada i, soldan; j de yukarıdan komutu olmaktadır. Konumu belirledikten sonra konuma “*” karakteri mi yoksa ” ” boşluk mu koyacak bunun için if koşullarını yazdım. İlk olarak yazmış olduğum if konuşu 1×1 ve 9×1 noktalarının boş olmasıydı. Şu görüntüyü verebilmek için:

if koşulu ile i == 1 && j == 1 || i == 9 && j == 1 yazarak, i nin ve j nin aynı anda 1 olduğu kareyle i nin 9 j nin 1 olduğu karelere geldiğinde ” ” yani boşluk yazdırdım. Ardından else if kullanarak A harfini oluşturacak diğer eğer koşulunu oluşturdum. ( if (j == 1 || i == 1 || i == boyut – 1 || j == boyut – 5) )

  • j nin 1 olduğu satıra tamamiyle * koymuş olduk. Bu A harfinin üst çizgisi olmaktadır.
  • i nin 1 olduğu satıra da * karakteri koyduk. Bu A harfinin sol çizgisidir.
  • i nin boyut – 1 olduğu kısım da A harfinin en sağ çizgisidir.
  • j nin boyut – 5 olduğu kısım da A nın orta çizgisidir.

Yukarıdaki kısımlara A nın köşe noktalarını da oluşturduğundan dolayı elseif kısmında yer verdim. Yani uygulama öncelikle köşe noktalarını kontrol eder, sonra A nın kalan kısımlarını oluşturur. 2 koşulu da geçtikten sonra her ikisinin olmaması durumunda da yine ” ” koyarak kare boş bırakılır.

A ve G harfi yazılışı için hazır kodlar aşağıda bulunmaktadır.

A harfinin yazılışı:

using System;
using System.Threading;
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int boyut = 10;

            for (int i = 1; i < boyut; i++)
            {
                for (int j = 1; j < boyut; j++)
                {

                    Console.SetCursorPosition(i, j);
                    if (i == 1 && j == 1 || i == 9 && j == 1)
                    {
                        Console.Write(" ");
                    }
                    else if (j == 1 || i == 1 || i == boyut - 1 || j == boyut - 5)
                    {
                        Console.Write("*");
                    }
                    else
                    {
                        Console.Write(" ");
                    }
                    Thread.Sleep(20);
                }

            }

        }
    }
}

G harfi Yazılışı

using System;
using System.Threading;
namespace ConsoleApp1
{
   class Program
   {
       static void Main(string[] args)
       {
           int boyut = 10;
  
           for (int i = 1; i < boyut; i++)
           {
               for (int j = 1; j < boyut; j++)
               {
  
                   Console.SetCursorPosition(i, j);
                   if (j == 1 || i == 1 || j == 9 || j == boyut - 5 || j > 5 && i == 9)
                   {
                       Console.Write("*");
                   }
                   else
                   {
                       Console.Write(" ");
                   }
                   Thread.Sleep(20);
               }
  
           }
  
       }
   }
}

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir