24 Ekim 2015 Cumartesi

Java Yıldızlarla Şekil Çizme 3

Bugün yıldızlarla özel bir şekil çizeceğiz.


*-----------------*
 \ ************* / 
  \ *         * /
   \ *       * /
    \ *     * /
     \ *   * /
      \ * * /
       \ * /
        \ /
         *

Bu şekli çizen kodları yazmaya çalışacağız. Şeklimizi anlatacak olursak şeklimizin bazı yerleri sabittir.        Örneğin ilk satır ve son satır sabittir. Şeklimizi çizmek için 1'den 6'ya kadar bir sayı verildiğinde oluşan şekiller farklıdır. 6 dan sonra asıl şeklimiz oluşmaya başlamaktadır.

Şeklimizi çizebilmek için bazı satırların oranlarını bulmamız gerekir.

// ilk satırın tire sayısını bulma
for (int s = 0; s < sayi - 2; s++) {
  tireSayisi = tireSayisi + 2;
}
//ikinci satırın yıldız sayısını bulma
for (int k = 0; k < sayi - 4; k++) {
  yildizSayisi = yildizSayisi + 2;
}
//orta alandaki bosluk sayısını bulma
for (int n = 0; n < sayi - 6; n++) {
  boslukSayisi = boslukSayisi + 2;
}


Bu oranları bulduktan sonra şimdi ilk satırımızı oluşturalım.


// ilk satırı oluşturuyoruz
System.out.print("*");
for (int j = 0; j < tireSayisi; j++) {
System.out.print("-"); //bulduğumuz tire sayısı kadar tire yazdırıyoruz
}
System.out.print("*");

System.out.println();// ikinci satıra geçmek için kullandık

Daha sonra son satırımızı ve sondan önceki satırı oluşturalım çünkü buralar sabit kısımlar.


 if (sayi > 2) {
 // sayi 3 veya 3'den büyük ise burası çalışacak ve en altın bir üsütünü oluşturacak
   for (int i = 0; i < 1; i++) {
       for (int j = 0; j < sayi - 2; j++) {
        System.out.print(" ");
       }
      System.out.print("\\");
      System.out.print(" ");
      System.out.print("/");

   }
    System.out.println();
 }
                
  //son satırı çiziyoruz
  for (int r = 0; r < sayi-1; r++) {
   System.out.print(" ");
  }
System.out.print("*");

Geri kalan satırlarımız değişkenliği oluşturan satırlar.


if (sayi > 3) {// sayi 4 veya 4'den büyük ise burası çalışacak
    
     System.out.print(" \\ ");
     for (int j = 0; j < yildizSayisi; j++) {
      System.out.print("*");//ikinci satırı oluşturuyoruz
     }
     System.out.print(" / ");
                                        
    System.out.println();// alt satıra geçmek için kullandık

    //en önemli yer burası çünkü 6 ve 6'dan sonra orta kısımı burası oluşturacak                                
    for (int m = 0; m < sayi - 5; m++) { //6 dan sonraki her satır için ortayı genişletiyoruz

     for (int j = 0; j < m + 2; j++) {
      System.out.print(" "); 
     }
     System.out.print("\\");
     System.out.print(" ");
     System.out.print("*");
     for (int j = boslukSayisi; j > 0; j--) {
      System.out.print(" ");  //ortadaki boslukları oluşturuyoruz
     }
     System.out.print("*");
     System.out.print(" ");
     System.out.print("/");
     System.out.println();
     boslukSayisi = boslukSayisi - 2;
    }

   }
   if (sayi > 4) {// sayi 5 veya 5'den büyük ise burası çalışacak
    
    for (int i = 0; i < 1; i++) {
     for (int j = 0; j < sayi - 3; j++) {
      System.out.print(" ");
     }
     System.out.print("\\ ");
     System.out.print("*");
     System.out.print(" /");

    }
    System.out.println();

   }
Kodlara ulaşmak için github adresine gidin