Draw a cuboid: Difference between revisions

Content added Content deleted
(→‎{{header|Lua}}: added Lua solution)
(Added Delphi example)
Line 707: Line 707:
| |/
| |/
+-----------------------------------------------------+</pre>
+-----------------------------------------------------+</pre>
=={{header|Delphi}}==
{{libheader| System.SysUtils}}
{{Trans|Go}}
<lang Delphi>
program Draw_a_cuboid;

{$APPTYPE CONSOLE}

uses
System.SysUtils;

procedure cubLine(n, dx, dy: Integer; cde: string);
var
i: integer;
begin
write(format('%' + (n + 1).ToString + 's', [cde.Substring(0, 1)]));

for i := 9 * dx - 1 downto 1 do
Write(cde.Substring(1, 1));

Write(cde.Substring(0, 1));
Writeln(cde.Substring(2, cde.Length).PadLeft(dy + 1));
end;

procedure cuboid(dx, dy, dz: integer);
var
i: integer;
begin
Writeln(Format('cuboid %d %d %d:', [dx, dy, dz]));

cubLine(dy + 1, dx, 0, '+-');

for i := 1 to dy do
cubLine(dy - i + 1, dx, i - 1, '/ |');

cubLine(0, dx, dy, '+-|');

for i := 4 * dz - dy - 2 downto 1 do
cubLine(0, dx, dy, '| |');

cubLine(0, dx, dy, '| +');

for i := 1 to dy do
cubLine(0, dx, dy - i, '| /');

cubLine(0, dx, 0, '+-');
Writeln;
end;

begin
cuboid(2, 3, 4);
cuboid(1, 1, 1);
cuboid(6, 2, 1);

readln;
end.</lang>


=={{header|Elixir}}==
=={{header|Elixir}}==