Esempio n. 1
0
    List <Move_new> _GetMoves(Piece_new.playerColor color)
    {
        List <Move_new> turnMove = new List <Move_new>();
        List <Tile_new> pieces   = new List <Tile_new>();

        if (color == Piece_new.playerColor.BLACK)
        {
            pieces = _blackPieces;
        }
        else
        {
            pieces = _whitePieces;
        }

        foreach (Tile_new tile in pieces)
        {
            MoveFactory     factory    = new MoveFactory(_board);
            List <Move_new> pieceMoves = factory.GetMoves(tile.CurrentPiece, tile.Position);

            foreach (Move_new move in pieceMoves)
            {
                Move_new newMove = _CreateMove(move.firstPosition, move.secondPosition);
                turnMove.Add(newMove);
            }
        }
        return(turnMove);
    }
Esempio n. 2
0
    public List <Move_new> GetMoves(Piece_new piece, Vector2 position)
    {
        _piece    = piece;
        _type     = piece.Type;
        _player   = piece.Player;
        _position = position;

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

        return(moves);
    }
Esempio n. 3
0
    public int GetBoardWeight(Piece_new.pieceType type, Vector2 position, Piece_new.playerColor color)
    {
        switch (type)
        {
        case Piece_new.pieceType.PAWN:
            if (color == Piece_new.playerColor.WHITE)
            {
                return(PawnBoardWeight[(int)position.x, (int)position.y]);
            }
            else
            {
                return(PawnMirrorBoardWeight[(int)position.x, (int)position.y]);
            }

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

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

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

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

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

        default:
            return(-1);
        }
    }