// Path: CheckersMaster/src/checkers/algorithm/IAlgorithm.java
// public interface IAlgorithm {
// 	Move algorithm(CalculationContext context, Model model, Player whosTurn);
// 	
// 	String getName();
// }
// 
// Path: CheckersMaster/src/checkers/evaluation/IEvaluation.java
// public interface IEvaluation {
// 	double evaluate(Model model, Player player);
// }
// 
// Path: CheckersMaster/src/checkers/rules/ISuccessor.java
// public interface ISuccessor {
// 	List<Move> getSuccessors(Model model, Player player);
// }


import checkers.algorithm.IAlgorithm;
import checkers.evaluation.IEvaluation;
import checkers.rules.ISuccessor;

package checkers.domain;


/**
 * Tüm algoritmalar için yapılandırma parametreleri içerir.
 * 
 */
public class CalculationContext{

	private int depth;
	private Player player;
	private IEvaluation evaluationFunction;
	private ISuccessor successorFunction;
	private IAlgorithm algorithm;


	public void setDepth(int depth) {
		this.depth = depth;
	}

	public int getDepth() {
		return depth;
	}


// Path: CheckersMaster/src/checkers/algorithm/IAlgorithm.java
// public interface IAlgorithm {
// 	Move algorithm(CalculationContext context, Model model, Player whosTurn);
// 	
// 	String getName();
// }
// 
// Path: CheckersMaster/src/checkers/evaluation/IEvaluation.java
// public interface IEvaluation {
// 	double evaluate(Model model, Player player);
// }
// 
// Path: CheckersMaster/src/checkers/rules/ISuccessor.java
// public interface ISuccessor {
// 	List<Move> getSuccessors(Model model, Player player);
// }


// Path: CheckersMaster/src/checkers/domain/CalculationContext.java
import checkers.algorithm.IAlgorithm;
import checkers.evaluation.IEvaluation;
import checkers.rules.ISuccessor;

package checkers.domain;


/**
 * Tüm algoritmalar için yapılandırma parametreleri içerir.
 * 
 */
public class CalculationContext{

	private int depth;
	private Player player;
	private IEvaluation evaluationFunction;
	private ISuccessor successorFunction;
	private IAlgorithm algorithm;


	public void setDepth(int depth) {
		this.depth = depth;
	}

	public int getDepth() {
		return depth;
	}


	public void setEvaluationFunction(IEvaluation evaluation) {
