Hourglass puzzle: Difference between revisions

added Raku programming solution
(Added Go)
(added Raku programming solution)
Line 216:
flipping the remaining sand in the 7 hour glass when the 4 hour glass ends.</pre>
 
=={{header|Raku}}==
<lang perl6># 20201230 Raku programming solution
 
my @hourglasses = 4, 7;
my $target = 9;
my @output = [];
my %elapsed = 0 => 1 ;
my $done = False ;
 
for 1 .. ∞ -> $t {
my $flip-happened = False;
for @hourglasses -> $hg {
unless $t % $hg {
%elapsed{$t} = 1 unless %elapsed{$t};
with @output[$t] { $_ ~= "\t, flip hourglass $hg " } else {
$_ = "At time t = $t , flip hourglass $hg" }
$flip-happened = True
}
}
if $flip-happened {
for %elapsed.keys.sort -> $t1 {
if ($t - $t1) == $target {
@output[$t1] ~= "\tbegin = 0";
@output[$t] ~= "\tend = $target";
$done = True
}
%elapsed{$t} = 1 unless %elapsed{$t} ;
}
}
last if $done
}
 
.say if .defined for @output</lang>
{{out}}
<pre>At time t = 4 , flip hourglass 4
At time t = 7 , flip hourglass 7 begin = 0
At time t = 8 , flip hourglass 4
At time t = 12 , flip hourglass 4
At time t = 14 , flip hourglass 7
At time t = 16 , flip hourglass 4 end = 9</pre>
 
=={{header|REXX}}==
351

edits