/*
Datei............: Aufg0419.java
Projekt..........: Einführung in die Java-Programmierung
Erstellt.........: 18.10.97, Guido Krüger
Geändert.........: --
Aufgabe..........: Musterlösung zu Aufgabe 04.19
Kommentare.......:

Die Struktur dieser Lösung entspricht fast vollständig der
Lösung zu Aufgabe 04.18. Die wesentlichen Unterschiede sind:

- Die maximale Breite des gezeichneten Dreiecks ist nicht gleich
  seiner Höhe, sondern entspricht der Höhe * 2 - 1. 
  Der Horizontalzähler läuft entsprechend.
- Die Bedingung für das Zeichnen eines Sternchens ist das
  Eintreten einer der folgenden Konditionen:
  - Der Vertikalzähler ist in der letzten Zeile
  - Die Entfernung des Horizontalzählers von der Mittelachse
    entspricht dem Wert des Vertikalzählers (hört sich
    komisch an, kann aber leicht überprüft werden).
*/
import java.io.*;

public class Aufg0419
{
  public static void main(String args[])
  throws IOException
  {
    int height;
    BufferedReader din = new BufferedReader(
		         new InputStreamReader(System.in));

    System.out.println("Zeichnen eines Dreiecks");
    System.out.println("=======================");
    while (true) {
      System.out.print("Höhe [1-20,0=Ende]: ");
      height = Integer.parseInt(din.readLine());
      if (height < 1) {
	break;
      } else if (height <= 20) {
	for (int i = 0; i < height; ++i) {
	  for (int j = 1; j <= 2 * height - 1; ++j) {
	    if (Math.abs(j - height) == i || i == height -1) {
	      System.out.print("*");
	    } else {
	      System.out.print(" ");
	    }
	  }
	  System.out.println();
	}
      }
    }
  }  
}

