예제 #1
0
    List <Move> _GetMoves(Piece.pieceWork color)
    {
        List <Move> turnMove = new List <Move>();
        List <Tile> pieces   = new List <Tile>();

        if (color == Piece.pieceWork.BWORK)
        {
            pieces = _blackPieces;
        }
        else if (color == Piece.pieceWork.WWORK)
        {
            pieces = _whitePieces;
        }

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

            foreach (Move move in pieceMoves)
            {
                Move newMove = _CreateMove(move.firstPosition, move.secondPosition);
                turnMove.Add(newMove);
            }
        }
        return(turnMove);
    }
예제 #2
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);
        }
    }