#!/usr/bin/env perl6 class RabbitPair { has Int $.age is rw; method BUILD() { $.age = 0; } method grow-up { $.age += 1; } method of-age { return $.age > 0 } method Str { if $.age > 0 { "\c[RABBIT]\c[RABBIT]($.age)" } else { "\c[RABBIT FACE]\c[RABBIT FACE]($.age)" } } } sub MAIN() { my $months = 6; my $growth-rate = 2; my @nursery; my @playpen; @nursery.push: RabbitPair.new(); for 1..$months -> $month { say "month $month:\n\tnursery: @nursery[]\n\tplaypen: @playpen[]"; for @playpen { for ^$growth-rate { @nursery.push: RabbitPair.new() } } for @nursery.kv -> $i, $pair { if $pair.of-age { @playpen.push: @nursery[$i]:delete; } $pair.grow-up; } } say @nursery.elems + @playpen.elems; }