Alpha beta

 #include<iostream>

using namespace std;


const int MAX = 1000;

const int MIN = -1000;


int minimax(int depth, int nodeIndex,

bool maximizingPlayer,

int values[], int alpha,

int beta)

{

if (depth == 3)

return values[nodeIndex];


if (maximizingPlayer)

{

int best = MIN;

for (int i = 0; i < 2; i++)

{

int val = minimax(depth + 1, nodeIndex * 2 + i,

false, values, alpha, beta);

best = max(best, val);

alpha = max(alpha, best);

if (beta <= alpha)

break;

}

return best;

}

else

{

int best = MAX;

for (int i = 0; i < 2; i++)

{

int val = minimax(depth + 1, nodeIndex * 2 + i,

true, values, alpha, beta);

best = min(best, val);

beta = min(beta, best);

if (beta <= alpha)

break;

}

return best;

}

}


int main()

{

int values[8] = { 3, 5, 6, 9, 1, 2, 0, -1 };

cout <<"The optimal value is : "<< minimax(0, 0, true, values, MIN, MAX);;

return 0;

}

Comments

Popular posts from this blog

DREAM LEAGUE SOCCER 2019 MOD

10 CL3

Garena Contra Return