Entwickler-Ecke
Basistechnologien - Tannebaum Console C# Anfänger
123thomas - Fr 21.12.12 18:39
Titel: Tannebaum Console C# Anfänger
Hallo
Ich bin C# Anfänger doch ich hoffe mir wird geholfen.
Ich hab schon alles versucht was in meiner Macht steht und schon mehr als 1 Tag dran rumprobiert. Ihr seit meine letzte Hoffnung.
Ich soll für die Schule ein Tannebaum programmieren. Mit der Console. Dies habe ich auch geschafft. Dann soll man die Größe eingeben können. Das habe ich auch geschafft. Nur habe ich ein Problem mit dem Stamm der ist wenn ich die Größe ändere nicht mehr mittig unter den Baum. Obwohl ich dafür eigentlich eine Formel genommen habe die sich der größe anpassen müsste.
Als letztes war noch die Aufgabe den Baum in der X und Y achse versetzen zu können.
Frage: Wie bekomme ich das hin das der Stamm immer schön mittig unter dem Baum kommt?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85:
| using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace Tannebaum { class Program { static void Main(string[] args) { int größe=5; int Dreieckvorne = 0; int Dreieckhinten = 0; int Stamm = 0; int Cursorpositionx = 10; int Cursorpositiony = 2;
Console.SetCursorPosition(Cursorpositionx, Cursorpositiony); Console.ForegroundColor = ConsoleColor.Green; for (int j = 0; j < größe; j++) { Console.Write(" ");
} Console.Write("x"); Console.WriteLine(); for (int k = 1; k < größe; k++) { Console.SetCursorPosition(Cursorpositionx, k + Cursorpositiony); Dreieckvorne = k; for (int j = Dreieckvorne; j < größe; j++) { Console.Write(" "); }
Console.Write("x"); Dreieckhinten = Dreieckhinten + 3; for (int j = k; j < Dreieckhinten; j++) { Console.Write("x");
}
Console.WriteLine("");
} Console.ForegroundColor = ConsoleColor.DarkRed;
if (größe % 2 == 1) { Stamm = größe + 1; } else { Stamm = größe; }
for (int i = 0; i < Stamm /3; i++) { Console.SetCursorPosition(Cursorpositionx + Stamm - Stamm / 4, Dreieckvorne + 1 + i + Cursorpositiony);
for (int j = 1; j < Stamm / 2 +1; j++) { Console.Write("x");
} Console.WriteLine(); } Console.ReadLine(); } } } |
MfG Thomas
Th69 - Fr 21.12.12 21:25
Hallo Thomas :welcome:
ich mußte ersteinmal deinen Code selber ausführen, um zu sehen, was genau passiert.
Welchen Wert soll denn deine Variable
Stamm bezeichnen?
Du benötigst doch 2 Werte (für die X-Achse): Mittelpunkt und Breite (des Stammes).
Am besten du erzeugst dir dafür eigene Variablen und schreibst dann die Schleife entsprechend dafür:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| int stammMittelpunkt = ...; int stammBreite = ...; int stammHoehe = ...; for (int i = 0; i < stammHoehe; i++) { int stammX = stammMittelpunkt - stammBreite / 2; int stammY = größe + i + 1; Console.SetCursorPosition(Cursorpositionx + stammX, Cursorpositiony + stammY);
for (int j = 0; j < stammBreite; j++) { Console.Write("x");
} Console.WriteLine(); } |
Der Vorteil dieser (benannten) Variablen ist, daß du (bzw. jemand anderes) auch später mal den Code verstehst, anstatt einfach irgendwelche Formeln zu sehen.
123thomas - Sa 22.12.12 12:52
Dankeschön.
Es ist so einfach, wieso komm ich da nicht drauf.
Aufjedenfall danke.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!