Quick actions

cmd+k|ctrl+k

Navigation

Languages

Untitled

Snippet info

Language

Raku

Visibility

unlisted

Author

legacy-anonymous

Created

2017-02-14T14:36:33Z

Updated

2017-02-14T14:36:33Z

#!/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() }
    }

    my @growing;
    for @nursery -> $pair { 
      push $pair.of-age ?? @playpen !! @growing, $pair;
      $pair.grow-up;
    }
    @nursery = @growing;
  }
  say @nursery.elems + @playpen.elems;
}
INFO