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 .
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
|
|
|
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 )
@Mateusz.Graboś: A w innym języku potrafisz narysować ?
Co w ogóle potrafisz narysować ?
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.