Hallo und noch
Mit mehreren Schleifen? Nach meiner Einschätzung brauchst Du eine für das Dach, eine für die Decke, eine für die Wände, eine für den Boden. Boden = Decke, passt also in eine eigene Methode.
Die Schleife für Boden/Decke zeichnet immer ein einzelnes Sternchen; denn diese Anzahl soll ja variabel sein.
Für die Wände ist eine geschachtelte Doppelschleife sinnvoll: äußere Schleife nach den Bausteinen, darin ein Sternchen, dann die innere Schleife für die Breite, dann ein zweites Sternchen für die andere Mauer.
Für das Dach ähnlich: eine Anzahl von Leerzeichen, dann das erste Dach, dann eine Anzahl von Leerzeichen, dann das zweite Dach. (Die restlichen Leerzeichen brauchen nicht mehr gezeichnet zu werden.)
Dann noch eine Reihe weiterer Hinweise:
Ob eine Zahl gerade ist oder nicht, kann mit
% (modulo) geprüft werden.
Anstelle von Convert.ToXxx ist besser
Parse, ParseExact, TryParse, TryParseExact zu verwenden.
int ist
Int32, nicht
Int16.
Ich würde getrennt in je einer
do-while-Schleife die Eingabe solange abfragen und ggf. wiederholen, bis es sich um ungerade Zahl handelt. (Wozu eigentlich? Davon hängt doch lediglich ab, ob der Dachfirst ein Zeichen breit ist oder zwei. Schöner dürfte also sein, die Anzahl der Leerzeichen einfach auszurechnen und die Schleifen anzupassen.) Erst danach kommt das Zeichnen, natürlich in der Reihenfolge Dach - Decke - Wände - Boden.
Ich hoffe, Du kannst mit diesen Hinweisen etwas anfangen. Jürgen
PS. Außerdem heißt es w
aagerecht.
Einmal falsch kommt ja vor, aber ständig stört mich doch sehr.