[LIB-9] Separate chesshog-hedgefish module
[chesshog.git] / chesshog-hedgefish / src / main / java / org / hedgecode / chess / hedgefish / Types.java
diff --git a/chesshog-hedgefish/src/main/java/org/hedgecode/chess/hedgefish/Types.java b/chesshog-hedgefish/src/main/java/org/hedgecode/chess/hedgefish/Types.java
new file mode 100644 (file)
index 0000000..7221c79
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * 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
+    }
+
+//  ...
+
+}