// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) space 
// Source File Name:   ComputerPlayer.java

package model;

import GameIO.IModel;
import java.awt.Point;
import java.io.PrintStream;

// Referenced classes of package model:
//      APlayer, INextMoveStrategy, IRequestor, IRejectCommand

public class ComputerPlayer extends APlayer
{

  public ComputerPlayer(IRequestor irequestor, int i, IModel imodel, INextMoveStrategy inextmovestrategy)
  {
    super(irequestor, i);
    model = imodel;
    iNextMoveStrategy = inextmovestrategy;
    System.out.println("ComputerPlayer is using " + inextmovestrategy);
  }

  public void takeTurn()
  {
    System.out.print("Computer player " + getPlayer() + " (" + this + ") takes turn...");
    final Point p = iNextMoveStrategy.getNextMove(model, getPlayer());
    System.out.println("and moves to " + p);
    getRequestor().setTokenAt(p.y, p.x, getPlayer(), new IRejectCommand() {

      public void execute()
      {
        System.out.println("ComputerPlayer: The move at (" + p.x + ", " + p.y + ") is invalid.");
        takeTurn();
      }

    });
  }

  private INextMoveStrategy iNextMoveStrategy;
  private IModel model;
}
