> * * * * *
> * * * * * * *
> * * * * * * *
> * * * * * *
> * ┏┓┏━┓╻ ╻┏━╸╻ ╻┏━┓┏━╸┏━┓ ┏━╸┏━╸╺┳╸┏━╸┏━┓ * *
> ┃┃ ┃┗┳┛┣╸ ┃ ┃┗━┓┣╸ ┗━┓* ┣╸ ┣╸ ┃ ┣╸ ┗━┓ * * *
> * ┗━┛┗━┛ ╹ ┗━╸┗━┛┗━┛┗━╸┗━┛ ╹ ┗━╸ ╹ ┗━╸┗━┛ * *
> * * * * *
> * * * * *
> * * * * * * * *
> * * * * * * * *
> * * * * *
>
> I tried things based on [//] or @slide[4..*;4..*] = @msg but came
> nowhere.
I don't have that font installed, but managed to get the code below
to work. I think it's hard to do just an assignment because you
do want a space to count as Nil in some sense --
my $out = qx[figlet - Joyeuses fetes];
my @grid = $out.lines.map: *.comb;
my @background =
( flat map {
flat (Nil xx (3 + 5.rand), "*")
}, 1..100
).rotor: 90;
sub composite($bg,$val) {
return $val unless $bg;
return $val if $bg eq ' ';
return $bg // ' ';
}
for @background.kv -> $r, @v {
for @v.kv -> $k, $v {
print composite(@grid[$r][$k],$v) // ' ';
}
put '';
}
which gave me
* _ * * * * * * __ * _ * *
* * *
* * | |*___ _ * _ ___*_ *_ ___ *___* ___ / _| ___| |_*___
___ * *
_____* _ | |/ _ \| |*| |/ _ \ | | /*__|/ _ \/ __|*| |_ / _*\ __/ _ \/
__| * *
|_____| |*|_| | (_) | |_| |* __/ |_| \__ \ __/\__ \ | _| __/ ||*
__/\__ \ * * *
* \___/ \___/ \__, |\___|\__,_|___/\___||___/ |_|
\___|\__\___||___/ * *
* * * |___/ * * * * * * *
* * *