From a6558c9f25fe31907f138f3126b1cd4b2e770757 Mon Sep 17 00:00:00 2001 From: NezumiRonin Date: Wed, 10 Mar 2021 23:09:31 -0600 Subject: [PATCH] Create diamond.pl Ported to Perl! --- 32 Diamond/perl/diamond.pl | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 32 Diamond/perl/diamond.pl diff --git a/32 Diamond/perl/diamond.pl b/32 Diamond/perl/diamond.pl new file mode 100644 index 00000000..62311c14 --- /dev/null +++ b/32 Diamond/perl/diamond.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl +use strict; + +################ +# PORTING NOTES: +# * In basic "Tab" function are not spaces, but absolute col position on screen. +# * It was too dificult to port this one, couldn't figure out the original algorithm. +# * So the algorithm was remake. +# + +print ' 'x 33 . "DIAMOND\n"; +print ' 'x 15 . "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n"; +print "\n"; print "\n"; print "\n"; +print "FOR A PRETTY DIAMOND PATTERN,\n"; +print "TYPE IN AN ODD NUMBER BETWEEN 5 AND 21? "; chomp(my $R = ); print "\n"; + + +my $Wid= int(60/$R)+1; +my $Dia="CC". "!" x ($R-2); + +for (my $J=1; $J<$Wid; $J++) { + for (my $K=1; $K<($R+2)*2-4; $K+=2) { + my $Size= $K; + if ($K>$R) { $Size=$R+($R-$K); } + my $Chunk= substr($Dia, 0, $Size); + for (my $L=1; $L<$Wid; $L++) { + my $Space= " " x (($R-$Size)/2); + if ($L>1) { $Space.=$Space; } + print $Space.$Chunk; + } + print "\n"; + } + } + +exit; + +