Package org.ggp.base.player.gamer.statemachine.sample

Source Code of org.ggp.base.player.gamer.statemachine.sample.SampleGamer

package org.ggp.base.player.gamer.statemachine.sample;

import org.ggp.base.apps.player.detail.DetailPanel;
import org.ggp.base.apps.player.detail.SimpleDetailPanel;
import org.ggp.base.player.gamer.exception.GamePreviewException;
import org.ggp.base.player.gamer.statemachine.StateMachineGamer;
import org.ggp.base.util.game.Game;
import org.ggp.base.util.statemachine.StateMachine;
import org.ggp.base.util.statemachine.cache.CachedStateMachine;
import org.ggp.base.util.statemachine.exceptions.GoalDefinitionException;
import org.ggp.base.util.statemachine.exceptions.MoveDefinitionException;
import org.ggp.base.util.statemachine.exceptions.TransitionDefinitionException;
import org.ggp.base.util.statemachine.implementation.prover.ProverStateMachine;

/**
* SampleGamer is a simplified version of the StateMachineGamer, dropping some
* advanced functionality so the example gamers can be presented concisely.
* This class implements 7 of the 8 core functions that need to be implemented
* for any gamer.
*
* If you want to quickly create a gamer of your own, extend this class and
* add the last core function : public Move stateMachineSelectMove(long timeout)
*/

public abstract class SampleGamer extends StateMachineGamer
{
  @Override
  public void stateMachineMetaGame(long timeout) throws TransitionDefinitionException, MoveDefinitionException, GoalDefinitionException
  {
    // Sample gamers do no metagaming at the beginning of the match.
  }



  /** This will currently return "SampleGamer"
   * If you are working on : public abstract class MyGamer extends SampleGamer
   * Then this function would return "MyGamer"
   */
  @Override
  public String getName() {
    return getClass().getSimpleName();
  }

  // This is the default State Machine
  @Override
  public StateMachine getInitialStateMachine() {
    return new CachedStateMachine(new ProverStateMachine());
  }

  // This is the defaul Sample Panel
  @Override
  public DetailPanel getDetailPanel() {
    return new SimpleDetailPanel();
  }



  @Override
  public void stateMachineStop() {
    // Sample gamers do no special cleanup when the match ends normally.
  }

  @Override
  public void stateMachineAbort() {
    // Sample gamers do no special cleanup when the match ends abruptly.
  }

  @Override
  public void preview(Game g, long timeout) throws GamePreviewException {
    // Sample gamers do no game previewing.
  }
}
TOP

Related Classes of org.ggp.base.player.gamer.statemachine.sample.SampleGamer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.