From 587d6922f72ebf30daa95f977a899c823b8289fe Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Wed, 8 Jan 2020 08:05:11 +1000 Subject: added ch-2.pl and ch-2.p6 --- challenge-042/ruben-westerberg/perl/ch-2.pl | 26 ++++++++++++++++++++++++++ challenge-042/ruben-westerberg/raku/ch-2.p6 | 17 +++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 challenge-042/ruben-westerberg/perl/ch-2.pl create mode 100755 challenge-042/ruben-westerberg/raku/ch-2.p6 (limited to 'challenge-042') diff --git a/challenge-042/ruben-westerberg/perl/ch-2.pl b/challenge-042/ruben-westerberg/perl/ch-2.pl new file mode 100755 index 0000000000..b72c777c89 --- /dev/null +++ b/challenge-042/ruben-westerberg/perl/ch-2.pl @@ -0,0 +1,26 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use POSIX qw; + +my $maxLength=$ARGV[0]//20; #If no max on command line use 20 +while () { + my $str=""; + #make a random length string of up to $maxLength long + $str.=chr round rand()+40 for 0..int rand $maxLength; + + my $v=0; + for (split "",$str) { + $v+=(ord($_)-40)*-2+1; + last unless $v >=0; + } + + if($v==0) { + print("balanced: $str\n"); + sleep 1; + next; + } + print("unbalanced: $str\n"); +} + + diff --git a/challenge-042/ruben-westerberg/raku/ch-2.p6 b/challenge-042/ruben-westerberg/raku/ch-2.p6 new file mode 100755 index 0000000000..99d2ee83ba --- /dev/null +++ b/challenge-042/ruben-westerberg/raku/ch-2.p6 @@ -0,0 +1,17 @@ +#!/usr/bin/env perl6 +my $maxLength=@*ARGS[0]//20; #If no max on command line use 20 +while 1 { + my $str=""; + #make a random length string of upto $maxLength long + $str~=(1.rand()+40).round.chr for 0..$maxLength.rand.Int; + my @v= [\+] $str.comb.map({(ord($_)-40)*-2+1}); + + if @v[*-1]==0 and !@v.grep(* < 0) { + put "balanced $str"; + sleep 1; + next; + } + say "unbalanced: $str"; +} + + -- cgit