Ejemplo n.º 1
0
    public int calculateAITurn(Board board) // Ici on a un exemple d'implémentation de mon ia random qui utilise ma fonction AITurn();
    {
        int           randPiece;
        int           randSquare;
        Square        selectedSquare;
        Piece         selectedPiece;
        List <Square> hovered_squares = null;

        do // tant qu'on a pas réussi à récupérer une piece, on "rerandomise" la piece à sélectionner. Ici, on pourra se débarasser de cette boucle lorsqu'on implémentera la vrai ia; il ne faudra cependant pas oublier de vérifier le CHECK_MATE.
        {  // J'ai fais cette boucle car il pouvait arriver que la pièce sélectionnée ait déjà été bouffée
            if (board.black_ai)
            {
                randPiece = UnityEngine.Random.Range(board.firstBlackPieceIndex(), board.getPiecesCount());
                print("first black piece index = " + board.firstBlackPieceIndex());
            }
            else
            {
                randPiece = UnityEngine.Random.Range(0, board.firstBlackPieceIndex());
                print("first black piece index = " + board.firstBlackPieceIndex());
            }
            if (board.isCheckMate(1))
            {
                //                print("CHECK MATE");
                return(1);
            }
            selectedPiece = board.getPiece(randPiece);
        }while (selectedPiece == null);
        board.hoverValidSquares(selectedPiece);
        hovered_squares = board.getHoveredSquares();
        if (hovered_squares.Count > 1) // Ici on vérifie que le nombre de possibilité de déplacement de la pièce sélectionnée est au moins de 2 . Sinon, c'est que la pièce ne peut pas être ailleurs que là ou elle est !
        {
            randSquare = UnityEngine.Random.Range(2, hovered_squares.Count);
            if (randSquare >= hovered_squares.Count)
            {
//                print("ransSquare >= hovered_squares.Count || hovered_squares.Count == 1");
                return(0);
            }
            else
            {
                //               print(selectedPiece + " is at " + selectedPiece.cur_square.coor.pos + " and is to be moved to " + hovered_squares[randSquare].coor.pos);
                //              print(randSquare + " is the number of the square we are looking for");
                selectedSquare = hovered_squares[randSquare];
                return(board.AITurn(selectedPiece, selectedSquare));
            }
        }
        return(0);
    }