VERSION 1.0.0

=============
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
This commit is contained in:
2006-07-04 22:13:21 +00:00
parent 1eee874d6b
commit 8854c787f9
3 changed files with 162 additions and 53 deletions

View File

@ -40,14 +40,56 @@ public class SuicideChess {
public static final boolean MOVE_ORDERING = false;
/**
* Intelligent depth -> ie: when only one possible move, don't search. When very few moves, add one to depth.
* Minimum ply to search to (when doing iterative deepening)
*/
public static final boolean INTELLIGENT_DEPTH = false;
public static final int MIN_PLY_DEPTH = 2;
/**
* Number of Plies the computes searches to
*/
private static int plyDepth = 4;
/**
* What is the current ply depth
* @return integer
*/
public static int getPlyDepth() { return plyDepth; }
/**
* Quiescence search -> don't evaluate if captures are possible.
*/
public static final boolean QUIESCENCE_SEARCH = true;
public static final boolean QUIESCENCE_SEARCH = true;
/**
* Quiescence limit (ie. if more than that many possibilities of capturing, don't analyse further.
*/
public static final int QUIESCENCE_LIMIT = 4;
/**
* Maximum number of Plies the computer will ever go to
*/
public static final int MAX_QUIESCENCE_DEPTH = 8;
/**
* Adaptative depth -> ie: when only one possible move, don't search. When very few moves, add one to depth.
*/
public static final boolean ADAPTATIVE_DEPTH = true;
/**
* Adaptative branchin limit
*/
public static final int ADAPTATIVE_BRANCHING_LIMIT = 3;
///**
// * Killer size (nb of killer moves remembered)
// */
//public static final int KILLER_SIZE = 10;
/**
* Try the primary variation from the earliest iteration first
*/
public static final boolean PRINCIPAL_VARIATION_FIRST = true;
/**
* The name to be displayed
@ -66,27 +108,7 @@ public class SuicideChess {
public static boolean playInACSII() {
return asciiGame;
}
/**
* Number of Plies the computes searches to
*/
private static int plyDepth = 4;
/**
* What is the current ply depth
* @return integer
*/
public static int getPlyDepth() { return plyDepth; }
/**
* Maximum number of Plies the computer will ever go to
*/
public static final int MAX_PLY_DEPTH = 8;
/**
* Quiescence limit (ie. if more than that many possibilities of capturing, don't analyse further.
*/
public static final int QUIESCENCE_LIMIT = 5;
/**
* Test and display if the board is in a winning state.
* @param bitboard A Board
@ -378,7 +400,7 @@ public class SuicideChess {
needToCapture = true;
}
for (int moveIndex = 0; moveIndex < allLegalMoves.size(); moveIndex++) {
if (allLegalMoves.get(moveIndex).isSimpleEqual(theMove)) {
if (allLegalMoves.get(moveIndex).isSimpleEqualTo(theMove)) {
if(theMove.isPromotionMove()&&
theMove.getPromotionPiece().getPieceNumber()!=allLegalMoves.get(moveIndex).getPromotionPiece().getPieceNumber()) {
continue;
@ -514,7 +536,7 @@ public class SuicideChess {
//lets the computer try every problem and stop on error.
//in the end it says what games where lost by white.
private static void autoProblem() throws NotAValidSquare, UnableToParseFENStringException, NoPieceOnSquare, NoSuchSuicideProblem {
private static void autoProblem() throws NotAValidSquare, UnableToParseFENStringException, NoPieceOnSquare, NoSuchSuicideProblem, NotAValidMoveException {
Board bitboard;
int[] result=new int[SuicideProblems.numberOfProblems()];
for(int i=1; i<=SuicideProblems.numberOfProblems(); i++) {