From b5328f270fcbebe230d67d9042f993afcb60aca3 Mon Sep 17 00:00:00 2001 From: joaquinferrero Date: Sat, 23 Sep 2023 15:43:29 +0200 Subject: [PATCH 1/3] Reto #22 - Perl --- .../perl/joaquinferrero.pl | 36 +++++++++++++++++++ Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk | 18 ++++++++++ 2 files changed, 54 insertions(+) create mode 100644 Retos/Reto #22 - LA ESPIRAL [Media]/perl/joaquinferrero.pl create mode 100644 Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk diff --git a/Retos/Reto #22 - LA ESPIRAL [Media]/perl/joaquinferrero.pl b/Retos/Reto #22 - LA ESPIRAL [Media]/perl/joaquinferrero.pl new file mode 100644 index 0000000000..6529781fb8 --- /dev/null +++ b/Retos/Reto #22 - LA ESPIRAL [Media]/perl/joaquinferrero.pl @@ -0,0 +1,36 @@ +#!/usr/bin/env perl +# +# La espiral +# +# Crea una función que dibuje una espiral como la del ejemplo. +# - Únicamente se indica de forma dinámica el tamaño del lado. +# - Símbolos permitidos: ═ ║ ╗ ╔ ╝ ╚ +# +# Ejemplo: espiral de lado 5 (5 filas y 5 columnas): +# ════╗ +# ╔══╗║ +# ║╔╗║║ +# ║╚═╝║ +# ╚═══╝ +# +# Joaquín Ferrero, 20230921 +# +use v5.38; + +sub espiral($tamano) { + my $ancho = int $tamano/2+0.5; + + say '=' x ($tamano-1), '╗'; + + for my $i (1 .. $ancho-1) { + say '║' x ($i-1), '╔', '=' x ($tamano - (2 * $i) - 1), '╗', '║' x $i; + } + + for my $i ($ancho .. $tamano-1) { + say '║' x ($tamano - $i-1), '╚', '=' x ((2 * $i) - $tamano), '╝', '║' x ($tamano - $i-1); + } +} + +espiral(10); + +__END__ diff --git a/Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk b/Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk new file mode 100644 index 0000000000..fd5920fb45 --- /dev/null +++ b/Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk @@ -0,0 +1,18 @@ +def trifuerza(level): + tamaño = 2 * level + + n = 1 + while (n != level + 1): + linea = '*' * ( 2 * n-1) + linea=linea.center(tamaño*2) + print(linea) + n += 1 + + n = 1 + while (n != level + 1): + linea = '*' * ( 2 * n-1) + linea = linea.center(tamaño) + linea.center(tamaño) + print(linea) + n += 1 + +trifuerza(2) \ No newline at end of file From c70966dc35afbd77a696989cfe5eaaad5d62d978 Mon Sep 17 00:00:00 2001 From: joaquinferrero Date: Sat, 23 Sep 2023 15:44:21 +0200 Subject: [PATCH 2/3] Reto #22 - Perl --- Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk diff --git a/Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk b/Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk deleted file mode 100644 index fd5920fb45..0000000000 --- a/Retos/Reto #22 - LA ESPIRAL [Media]/perl/kk +++ /dev/null @@ -1,18 +0,0 @@ -def trifuerza(level): - tamaño = 2 * level - - n = 1 - while (n != level + 1): - linea = '*' * ( 2 * n-1) - linea=linea.center(tamaño*2) - print(linea) - n += 1 - - n = 1 - while (n != level + 1): - linea = '*' * ( 2 * n-1) - linea = linea.center(tamaño) + linea.center(tamaño) - print(linea) - n += 1 - -trifuerza(2) \ No newline at end of file From c82ec539813faeb1be47a635a49e4670d1c7189a Mon Sep 17 00:00:00 2001 From: joaquinferrero Date: Sat, 23 Sep 2023 15:45:39 +0200 Subject: [PATCH 3/3] Reto #22 - Raku --- .../raku/joaquinferrero.raku | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Retos/Reto #22 - LA ESPIRAL [Media]/raku/joaquinferrero.raku diff --git a/Retos/Reto #22 - LA ESPIRAL [Media]/raku/joaquinferrero.raku b/Retos/Reto #22 - LA ESPIRAL [Media]/raku/joaquinferrero.raku new file mode 100644 index 0000000000..592aa530cc --- /dev/null +++ b/Retos/Reto #22 - LA ESPIRAL [Media]/raku/joaquinferrero.raku @@ -0,0 +1,35 @@ +#!/usr/bin/env raku +#`( + La espiral + + Crea una función que dibuje una espiral como la del ejemplo. + - Únicamente se indica de forma dinámica el tamaño del lado. + - Símbolos permitidos: ═ ║ ╗ ╔ ╝ ╚ + + Ejemplo: espiral de lado 5 (5 filas y 5 columnas): + ════╗ + ╔══╗║ + ║╔╗║║ + ║╚═╝║ + ╚═══╝ + + Joaquín Ferrero, 20230921 +) +use v6; + +sub espiral($tamano) { + my $ancho = ceiling($tamano/2); + + say '=' x ($tamano-1), '╗'; + + for 1 ..^ $ancho { + say '║' x ($_-1), '╔', ('=' x ($tamano - 2*$_ - 1)), '╗', ('║' x $_); + } + + for $ancho ..^ $tamano { + say '║' x ($tamano - $_-1), '╚', '=' x (2*$_ - $tamano), '╝', '║' x ($tamano - $_-1); + } +} + +espiral(10); +