예제 #1
0
    public int GetPieceWeight(Piece.pieceType type)
    {
        switch (type)
        {
        case Piece.pieceType.PAWN:
            return(1);

        case Piece.pieceType.ROOK:
            return(5);

        case Piece.pieceType.KNIGHT:
            return(3);

        case Piece.pieceType.BISHOP:
            return(3);

        case Piece.pieceType.QUEEN:
            return(9);

        case Piece.pieceType.KING:
            return(1000000);

        default:
            return(-1);
        }
    }
예제 #2
0
    public List <Move> GetMoves(Piece piece, Vector2 position)
    {
        _piece    = piece;
        _type     = piece.Type;
        _player   = piece.Player;
        _position = position;

        foreach (KeyValuePair <Piece.pieceType, System.Action> p in pieceToFunction)
        {
            if (_type == p.Key)
            {
                p.Value.Invoke();
            }
        }

        return(moves);
    }
예제 #3
0
    public bool CheckKing()
    {
        kingAttack = false;

        for (int i = 0; i < 8; i++)
        {
            for (int j = 0; j < 8; j++)
            {
                tempVector = new Vector2(i, j);
                if (Board.Instance.GetTileFromBoard(tempVector).CurrentPiece != null)
                {
                    Piece             p     = Board.Instance.GetTileFromBoard(tempVector).CurrentPiece;
                    Piece.pieceType   type  = Board.Instance.GetTileFromBoard(tempVector).CurrentPiece.Type;
                    Piece.playerColor color = Board.Instance.GetTileFromBoard(tempVector).CurrentPiece.Player;
                    switch (type)
                    {
                    case Piece.pieceType.PAWN:
                        PawnMove(color, tempVector, p);
                        break;

                    case Piece.pieceType.ROOK:
                        RookMove(color, tempVector, p);
                        break;

                    case Piece.pieceType.BISHOP:
                        BishopMove(color, tempVector, p);
                        break;

                    case Piece.pieceType.KNIGHT:
                        KnightMove(color, tempVector, p);
                        break;

                    case Piece.pieceType.QUEEN:
                        QueenMove(color, tempVector, p);
                        break;

                    case Piece.pieceType.KING:
                        KingMove(color, tempVector, p);
                        break;
                    }
                }
            }
        }
        return(kingAttack);
    }
예제 #4
0
    public int GetPieceWeight(Piece.pieceType type)
    {
        switch (type)
        {
        case Piece.pieceType.O:
            return(1);

        case Piece.pieceType.X:
            return(3);

        case Piece.pieceType.WFLAG:
            return(10000);

        case Piece.pieceType.BFLAG:
            return(10000);

        default:
            return(-1);
        }
    }
예제 #5
0
    public int GetBoardWeight(Piece.pieceType type, Vector2 position, Piece.pieceWork color)
    {
        switch (type)
        {
        case Piece.pieceType.O:
            if (color == Piece.pieceWork.WWORK)
            {
                return(OBoardWeight [(int)position.x, (int)position.y]);
            }
            else if (color == Piece.pieceWork.BWORK)
            {
                return(OMirrorBoardWeight [(int)position.x, (int)position.y]);
            }
            else
            {
                return(-1);
            }

        case Piece.pieceType.X:
            if (color == Piece.pieceWork.WWORK)
            {
                return(XBoardWeight [(int)position.x, (int)position.y]);
            }
            else if (color == Piece.pieceWork.BWORK)
            {
                return(XMirrorBoardWeight [(int)position.x, (int)position.y]);
            }
            else
            {
                return(-1);
            }

        default:
            return(-1);
        }
    }
예제 #6
0
    public int GetBoardWeight(Piece.pieceType type, Vector2 position, Piece.playerColor color)
    {
        switch (type)
        {
        case Piece.pieceType.PAWN:
            if (color == Piece.playerColor.WHITE)
            {
                return(PawnBoardWeight[(int)position.x, (int)position.y]);
            }
            else
            {
                return(PawnMirrorBoardWeight[(int)position.x, (int)position.y]);
            }

        case Piece.pieceType.ROOK:
            if (color == Piece.playerColor.WHITE)
            {
                return(RookBoardWeight[(int)position.x, (int)position.y]);
            }
            else
            {
                return(RookMirrorBoardWeight[(int)position.x, (int)position.y]);
            }

        case Piece.pieceType.KNIGHT:
            if (color == Piece.playerColor.WHITE)
            {
                return(KnightBoardWeight[(int)position.x, (int)position.y]);
            }
            else
            {
                return(KnightMirrorBoardWeight[(int)position.x, (int)position.y]);
            }

        case Piece.pieceType.BISHOP:
            if (color == Piece.playerColor.WHITE)
            {
                return(BishopBoardWeight[(int)position.x, (int)position.y]);
            }
            else
            {
                return(BishopMirrowBoardWeight[(int)position.x, (int)position.y]);
            }

        case Piece.pieceType.QUEEN:
            if (color == Piece.playerColor.WHITE)
            {
                return(QueenBoardWeight[(int)position.x, (int)position.y]);
            }
            else
            {
                return(QueenMirrorBoardWeight[(int)position.x, (int)position.y]);
            }

        case Piece.pieceType.KING:
            if (color == Piece.playerColor.WHITE)
            {
                return(KingBoardWeight[(int)position.x, (int)position.y]);
            }
            else
            {
                return(KingMirrorBoardWeight[(int)position.x, (int)position.y]);
            }

        default:
            return(-1);
        }
    }