So, with plenty of free time at hand, I whipped up a couple Perl scripts to make these random assignments for us. This one takes a list of names of assigns gift recipients to each one randomly:
#!/usr/bin/perl -w
@givers = ('Dan','Lori','Connie','Dave','Chet','Cindy','Eric','Mom','Kent');
@receivers = @givers ;
foreach $giver (@givers) {
$num_receiver = int(rand(@receivers)) ;
$receiver = $receivers[ $num_receiver ];
redo if $giver eq $receiver;
print "======++++++ $giver will give a present to $receiver\n" ;
splice (@receivers,$num_receiver,1);
}
My mother also suggested today that we come up with a similar scheme for having the adults give a gift to one child. The constraint was that a parent could not give a gift to their own child, but other than that, every assignment was random. I also cranked out a script for that:
#!/usr/bin/perl
my $adult;
my $kid;
my $num;
my %parents = (
'Gabby' => ['Dan','Lori'],
'Grant' => ['Dan','Lori'],
'Alissa' => ['Dan','Lori'],
'Bianca' => ['Dan','Lori'],
'Caitlin' => ['Dan','Lori'],
'Zack' => ['Connie','Dave'],
'Nick' => ['Connie','Dave'],
);
my @adults = ('Dan','Lori','Connie','Dave','Chet','Cindy','Eric');
my @kids = ("Gabby","Grant","Alissa","Bianca","Caitlin","Zack","Nick");
BLOCK: foreach $child (@kids) {
$num = int(rand(@adults));
$adult = $adults[ $num ];
foreach $parent ( @{$parents{ $child }} ) {
redo BLOCK if $parent eq $adult ;
}
print "======++++++ $child will get a present from $adult\n" ;
splice (@adults,$num,1);
}
As it turns out, we probably won't even use this second script, since there are some issues about the purpose of even doing this random assignment thingy in the first place. But I felt compelled to prove to myself that I can still create something from scratch on a moments notice, even after a full year away from programming at Yahoo. Thanks to Apple and Mac OS X, where I can easily graft together Perl in a UNIX environment.
No comments:
Post a Comment