chessai

college code for ai playing chess in java

git clone https://9o.is/git/chessai.git

ChessPiece.java

(1795B)


      1 package chess;
      2 
      3 import chess.utils.ChessColor;
      4 import chess.utils.ChessType;
      5 
      6 import java.util.Arrays;
      7 import java.util.Collections;
      8 import java.util.List;
      9 
     10 /**
     11  * Check
     12  */
     13 public enum ChessPiece {
     14     BLACK_KING    (12, ChessColor.BLACK, ChessType.KING),
     15     BLACK_QUEEN   (11, ChessColor.BLACK, ChessType.QUEEN),
     16     BLACK_BISHOP  (10, ChessColor.BLACK, ChessType.BISHOP),
     17     BLACK_KNIGHT  (9,  ChessColor.BLACK, ChessType.KNIGHT),
     18     BLACK_ROOK    (8,  ChessColor.BLACK, ChessType.ROOK),
     19     BLACK_PAWN    (7,  ChessColor.BLACK, ChessType.PAWN),
     20     WHITE_KING    (6,  ChessColor.WHITE, ChessType.KING),
     21     WHITE_QUEEN   (5,  ChessColor.WHITE, ChessType.QUEEN),
     22     WHITE_BISHOP  (4,  ChessColor.WHITE, ChessType.BISHOP),
     23     WHITE_KNIGHT  (3,  ChessColor.WHITE, ChessType.KNIGHT),
     24     WHITE_ROOK    (2,  ChessColor.WHITE, ChessType.ROOK),
     25     WHITE_PAWN    (1,  ChessColor.WHITE, ChessType.PAWN),
     26     NA            (-1, ChessColor.NA,    ChessType.NA);
     27 
     28     private int num;
     29     private ChessColor color;
     30     private ChessType type;
     31 
     32     ChessPiece(int num, ChessColor color, ChessType type) {
     33         this.num = num;
     34         this.color = color;
     35         this.type = type;
     36     }
     37 
     38     public ChessType getType() {
     39         return type;
     40     }
     41 
     42     public ChessColor getColor() {
     43         return color;
     44     }
     45 
     46     public int getNum() {
     47         return num;
     48     }
     49 
     50     public String toString() {
     51         return color.toString() + type.toString();
     52     }
     53 
     54     public static ChessPiece find(int num) {
     55         for (ChessPiece piece : VALUES)
     56             if(piece.getNum() == num) return piece;
     57 
     58         return ChessPiece.NA;
     59     }
     60 
     61     /* Cached list of all possible values. */
     62     private static final List<ChessPiece> VALUES =
     63             Collections.unmodifiableList(Arrays.asList(values()));
     64 }