Witam.
Uczę się C# z http://rbwhitaker.wikidot.com/c-sharp-tutorials. Dotarłem do tematu pętli (rozdział 11). Zasady działania znam.
Jako, że nie wykonałem samodzielnie zadania a spojrzałem do ściągi, to mi teraz głupio. Dlatego postanowiłem utworzyć generator piramidy z danych wprowadzonych przez użytkownika (ilość stopni, oraz z jakiego znaku ma się składać)
Wszystko fajnie śmiga, ale chcę też wprowadzić opcję stawiania piramidy na głowie (żeby zamiast :
*
***
*****
*******
*********
***********
wyszło:
***********
*********
*******
*****
***
*
I tak kombinując nasmarowałem coś takiego:
namespace generator_piramid
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Generator Piramid 1.0");
Console.WriteLine("Ile ma mieć stopni?");
int ilosc = int.Parse(Console.ReadLine());
Console.WriteLine("A z czego ma być zrobiona?");
char znak = char.Parse(Console.ReadLine());
Console.WriteLine("Ostatnie pytanie: normalna czy odwrócona?");
string input =Console.ReadLine();
switch (input.ToLower())
case "normalna":
Console.WriteLine("Wybrałeś normalną:");
{
for (int rzad = 0; rzad < ilosc; rzad++)
{
for (int przestrzen = ilosc - rzad; przestrzen > ilosc; przestrzen--)
{
Console.Write(" ");
}
for (int kolumna = 0; kolumna < (2 * rzad + 1); kolumna++)
{
Console.Write(znak);
}
Console.WriteLine();
}
Console.WriteLine("Zakończono obliczanie.");
Console.ReadKey();
break;
case "odwrócona":
Console.WriteLine("Płyniesz pod prąd? Oto Twoja 'KONSTRUKCJA':");
for (int rzad = 0; rzad < ilosc; rzad++)
{
for (int przestrzen = ilosc + rzad; przestrzen > ilosc; przestrzen--) // jeśli rzad > to odejmujemy jeśli < dodajemy
{
Console.Write(" ");
}
for (int rzad= 11; kolumna > (2 * rzad - 2); kolumna--) // w przypadku budowania normalnej wartość kolumny dałem na 0 i kolumna++
{ // w przypadku odwrotności, wartość kolumny( kolumna--)
Console.Write(sign);
}
Console.WriteLine();
}
Console.WriteLine("Zakończono obliczanie!");
Console.ReadKey();
break;
default:
Console.WriteLine("Jesteś pewien co robisz?");
Console.WriteLine("Policz jeszcze raz i wróć");
break;
}
Console.ReadKey();
}
}
}
I tak jak podaje ilość rzędów dla normalnej piramidy to wszystko cacy. Za to z tą na odwrót są cyrki. Wyświetla mi do połowy a później same puste linijki (tak by zadeklarowana ilość się zgadzała).
Siedze nad tym juz 5 dzien i męczy mnie to strasznie. Jestem wdzięczny za wszelkie porady.
Pozdrawiam :)