use strict;
use List::Util;
my @g;
my (@B, @I, @N, @G, @O);
B I N G O
+------+------+------+------+------+
.
|@>>>> |@>>>> |@>>>> |@>>>> |@>>>> |
$g[0], $g[1],$g[2], $g[3],$g[4]
+------+------+------+------+------+
.
sub make_card {
@B = List::Util::shuffle (1 .. 15);
@I = List::Util::shuffle (16 .. 30);
@N = List::Util::shuffle (31 .. 45);
@G = List::Util::shuffle (46 .. 60);
@O = List::Util::shuffle (61 .. 75);
}
sub show_card {
@g = ($B[0],$I[0],$N[0],$G[0],$O[0]); write; @g = ($B[1],$I[1],$N[1],$G[1],$O[1]); write; @g = ($B[2],$I[2],'FREE',$G[2],$O[2]); write; @g = ($B[3],$I[3],$N[3],$G[3],$O[3]); write; @g = ($B[4],$I[4],$N[4],$G[4],$O[4]); write; $-=0;
}
for (0..5) {
make_card;
show_card;
}
dXNlIHN0cmljdDsKdXNlIExpc3Q6OlV0aWw7Cm15IEBnOwpteSAoQEIsIEBJLCBATiwgQEcsIEBPKTsKZm9ybWF0IFNURE9VVF9UT1AgPQoKICAgIEIgICAgICBJICAgICAgTiAgICAgIEcgICAgICBPCistLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKwouCmZvcm1hdCBTVERPVVQgPSAKfEA+Pj4+IHxAPj4+PiB8QD4+Pj4gfEA+Pj4+IHxAPj4+PiB8CiAkZ1swXSwgJGdbMV0sJGdbMl0sICRnWzNdLCRnWzRdCistLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKwouCnN1YiBtYWtlX2NhcmQgewogIEBCID0gTGlzdDo6VXRpbDo6c2h1ZmZsZSAoMSAgLi4gMTUpOwogIEBJID0gTGlzdDo6VXRpbDo6c2h1ZmZsZSAoMTYgLi4gMzApOwogIEBOID0gTGlzdDo6VXRpbDo6c2h1ZmZsZSAoMzEgLi4gNDUpOwogIEBHID0gTGlzdDo6VXRpbDo6c2h1ZmZsZSAoNDYgLi4gNjApOwogIEBPID0gTGlzdDo6VXRpbDo6c2h1ZmZsZSAoNjEgLi4gNzUpOwp9CnN1YiBzaG93X2NhcmQgewogIEBnID0gKCRCWzBdLCRJWzBdLCROWzBdLCRHWzBdLCRPWzBdKTsgd3JpdGU7CiAgQGcgPSAoJEJbMV0sJElbMV0sJE5bMV0sJEdbMV0sJE9bMV0pOyB3cml0ZTsKICBAZyA9ICgkQlsyXSwkSVsyXSwnRlJFRScsJEdbMl0sJE9bMl0pOyB3cml0ZTsKICBAZyA9ICgkQlszXSwkSVszXSwkTlszXSwkR1szXSwkT1szXSk7IHdyaXRlOwogIEBnID0gKCRCWzRdLCRJWzRdLCROWzRdLCRHWzRdLCRPWzRdKTsgd3JpdGU7CiAgJC09MDsKfQpmb3IgKDAuLjUpIHsKICBtYWtlX2NhcmQ7CiAgc2hvd19jYXJkOwp9Cg==