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); }
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); }
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); } }