/usr/local/CPAN/Games-Euchre/Games/Euchre/AI/Simple.pm
# _DUMB_ computer player. This is pretty much just a clone of the
# built-in computer player in Euchre.pm, but it would also make a good
# starting place for other computer players to start from.
# This module is licensed under the same terms as the other modules in
# this package: GPLv2
package Games::Euchre::AI::Simple;
use strict;
use warnings;
use Games::Euchre::AI;
our @ISA = qw(Games::Euchre::AI);
sub bid {
my $self = shift;
my $state = shift;
# DUMB computer player!!! pass unless last bid, then pick any one
if ($state->{passes} == 7) {
# pick any card in hand
foreach my $card (@{$state->{hand}}) {
my $suit = $self->getCardSuit($state, $card);
if ($self->isLegalBid($state, $suit)) {
return $suit;
}
}
# pick any suit
foreach my $suit ("H", "S", "D", "C") {
if ($self->isLegalBid($state, $suit)) {
return $suit;
}
}
} else {
return undef;
}
}
sub pickItUp {
my $self = shift;
my $state = shift;
# DUMB computer player!!! pick the first card
return 0;
}
sub playCard {
my $self = shift;
my $state = shift;
# DUMB computer player!!! pick the first legal card
for (my $i=0; $i < @{$state->{hand}}; $i++) {
if ($self->isLegalPlay($state, $i)) {
print($state->{name} . " plays " . $state->{hand}->[$i] .
" on " . join(" ", @{$state->{hand}}) . "\n")
if ($state->{debug});
return $i;
}
}
die "No legal play???? Impossible!";
}
1;