procedure Put(Snake : in Snake_Type; Direction : in Integer) is Temp : Snake_Type := Snake; TempX : Integer := X_Var; TempY : Integer := Y_Var; begin Set_Colours(Green, Black); Put("%"); loop case Direction is when 1 => TempX := TempX + 1; Goto_XY(TempX, TempY); Put(Temp.Data); TempX := TempX - 1; when 2 => TempX := TempX - 1; Goto_XY(TempX, TempY); Put(Temp.Data); TempX := TempX + 1 ; when 3 => TempY := TempY + 1; Goto_XY(TempX, TempY); Put(Temp.Data); TempY := TempY - 1; when 4 => TempY := TempY - 1; Goto_XY(TempX, TempY); Put(Temp.Data); TempY := TempY + 1; when others => exit; end case; Temp := Temp.Next; exit when Empty(Temp); end loop; Goto_XY(1, 1); end Put;