/* * Copyright (c) 2018. Developed by Hedgecode. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.hedgecode.chess.hedgefish; /** * * * @author Dmitry Samoshin aka gotty */ public final class Types { public static final int MAX_MOVES = 256; public static final int MAX_PLY = 128; public enum MoveType { NORMAL, PROMOTION, ENPASSANT, CASTLING } public enum Color { WHITE, BLACK, COLOR_NB } public enum CastlingSide { KING_SIDE, QUEEN_SIDE, CASTLING_SIDE_NB } public enum CastlingRight { NO_CASTLING, WHITE_OO, WHITE_OOO, BLACK_OO, BLACK_OOO, ANY_CASTLING, CASTLING_RIGHT_NB } public enum Phase { PHASE_ENDGAME, PHASE_MIDGAME, MG, EG, PHASE_NB } public enum ScaleFactor { SCALE_FACTOR_DRAW, SCALE_FACTOR_NORMAL, SCALE_FACTOR_MAX, SCALE_FACTOR_NONE } public enum Bound { BOUND_NONE, BOUND_UPPER, BOUND_LOWER, BOUND_EXACT } // enum Value public enum PieceType { NO_PIECE_TYPE, PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING, ALL_PIECES, PIECE_TYPE_NB } public enum Piece { NO_PIECE, W_PAWN, W_KNIGHT, W_BISHOP, W_ROOK, W_QUEEN, W_KING, B_PAWN, B_KNIGHT, B_BISHOP, B_ROOK, B_QUEEN, B_KING, PIECE_NB } // ... }