/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;