Proszę o pomoc . Nie potrafię napisać programu budującego choinkę w języku c#.

0

Treść zadania brzmi następująco :
Napisz program rysujący w konsoli rosnącą choinkę (każda kolejna inkrementacja powinna
pojawić sie po upływie 1 sekundy), zbudowaną z * , o maksymalnej wysokości części iglastej
równej hight podanej przez użytkownika, oraz pniu o wysokości trunk = hight / 3 , jeżeli
hight / 3 > 0 lub trunk = 1 , jeżeli high / 3 == 0 , zbudowanym z | . W przypadku gdy nie
da się określić wysokości na podstawie podanego hight lub high == 0 , program ma wypisać
informację Can't grow. i zakończyć działanie.
Za jakąkolwiek pomoc od razu dziękuje .

1

Od czego są nauczyciele, którzy zadają takie zadania uczniom?
Czemu pytasz na forum, skoro możesz napisać maila do nauczyciela, albo do innych uczniów z Twojej grupy, którzy siedzą w tym temacie?


Zadanie wydaje się być trochę bardziej skomplikowane niż zwykłe rysowanie choinki.

Jeśli drzewko ma rosnąć, to musisz się pobawić z ustawianiem pozycji kursora konsoli: https://docs.microsoft.com/pl-pl/dotnet/api/system.console.setcursorposition?view=net-5.0
Bo drzewko rośnie od dołu do góry.

Skoro każdy poziom ma być rysowany w odstępie 1s, to każdy obrót pętli rysującej drzewko musi się kończyć instrukcją Sleep: https://docs.microsoft.com/pl-pl/dotnet/api/system.threading.thread.sleep?view=net-5.0

Choinka ma być prosta (trójkąt równoramienny), czy wielopoziomowa (stos trójkątów - ilustracja poniżej)?

      x
     xxx
      x
     xxx
    xxxxx
      x
     xxx
    xxxxx
   xxxxxxx
      |
      |
      |
1

Nie trzeba zmieniać pozycji kursora. Dla początkującego lepiej jest wyczyścić konsolę i narysować na nowo. (znam po sobie. 12 lat pisania i nigdy nie zmieniłem pozycji kursora w konsoli :D )

0

@Mateusz.Graboś: A w innym języku potrafisz narysować ?
Co w ogóle potrafisz narysować ?

0

pascal ale algorytmika podobna moze Ci sie przyda !

program choinka;
uses crt;


procedure czlon(x,y:integer);
var
a,i:integer;

begin

i:=0;
a:=0;

repeat
inc(i);
gotoxy(x-i,y+i);
for a:=1 to 2*i do begin write('*'); delay(100); end;
until (i=5);

end;

begin

czlon(20,5);
czlon(20,10);
czlon(20,15);

delay(5000);

end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1