for i := 1 to 2*rozmiar+l do write(); textcolor(lightgray); end; {wyswietl_k razek)
procedurę usun_krazek (nr, y, rozmiar : integer);
var i : integer;
begin
textcolor(lightgray);
gotoxy(x_palika[nr]- rozmiar,y_podstawa_palika-y); for i := 1 to rozmiar do writeC '); textcolor(yellow); write(■&');
for i := 1 to rozmiar do writeC '); textcolor(lightgray); end; {usun_krazek)
procedurę przenies_krazek (var X, Y : palik);
var krążek : NumeryKrazkow;
begin
if KeyPressed then begin
znak := ReadKey;
if ord(znak) = 0 then znak := ReadKey; end;
if znak = then czekaj := false; if znak = '+' then czekaj := true; if czekaj then begin
znak := ReadKey;
if ord(znak) = 0 then znak := ReadKey; end
else delay(200);
krążek := X.krazek[X.ile];
usun_krazek (X.nr_palika , X.ile, krążek);
X. ile := X.ile - 1;
Y. ile := Y.ile + 1;
Y.krazek(Y.ile] := krążek;
wyswietl_krazek (Y.nr_palika, Y.ile,krazek);
ile := ile + 1;
gotoxy(65,2); textcolor(lightred); write(ile:7); textcolor(lightgray); end; (przenies_krazek)
procedurę Hanoi ( n : integer; var A, B, C rpalik); begin
if n > 0 then begin
Hanoi (n-1. A, C, B); p rzen ies_k razek (A,B);
Hanoi(n-l,C , B, A); end;
end; {Hanoi)
{Wieze_z_Hanoi)
begin
ile := 0;