http://www.perlmonks.org?node_id=141987


in reply to (Golf) The Animal Game

Here is my entry in the Golf game, but with some additions that may throw me off the tour. I made two data structures @a for animals and @q for questions. I then update these inside of the allowed subs that are/were outlined in the rules. With that said I am at ~111 characters in my do_it sub.
my @q = ( 'Is your animal larger then a bread box', 'Is your animal taller then a car' ); my @a = ( 'dog' ); sub a { print shift, "?\n"; my $a = <>; return 1 if $a =~ /y/i; } sub g { print 'I think your animal is a ', shift , ", am I right?\n"; my $a = <>; return 1 if $a =~ /y/i; } sub t { my $q = shift; print "What was your animal?\n"; my $a = <>; chomp $a; push @a , $a; return $a; } sub i { my ($u,$g) = @_; print "What is a question that is true for $u, but false for $g?\n +"; my $answer = <STDIN>; chomp $answer; push @q , $answer; return $answer; } sub w { print "Do you want to conitue?\n"; my $a = <>; if ($a =~ /n/i) { die "Thanks for playing\n"; }; do_it(); } sub do_it{ for$s(@a){$g=$s;for$q(@q){if(a($q)){$g=$r{$q}||$s}} if(g($g)){w()}else{$t=t();$i=i($t,$g);$r{$i}=$t;do_it()}}} &do_it(); 1;