Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C# by sg ( 16 years ago )
public WynikMinMax AlfaBeta(Plansza s, int glebokosc, long alfa, long beta, string typ, char kolorek)
{
WynikMinMax wynik;
wynik.wartosc = 0;
wynik.x = 2;
wynik.y = 2;
if (s.KtoPrzegral() != "Nikt nie" || glebokosc == 0)
{
Plansza temp = s.Klonuj();
Ruch ruch = new Ruch(kolorek, temp);
//if (kolorek == 'B') kolorek = 'C';
//else kolorek = 'B';
wynik.wartosc = ruch.wartosc;
wynik.x = ruch.x;
wynik.y = ruch.y;
return wynik;
}
if (typ == "MAX")
{
for (int i = 0; i < s.rozmiar; i++)
{
for (int j = 0; j < s.rozmiar; j++)
{
if (s.Pola[i, j] == 'P')
{
Plansza temp = s.Klonuj();
//temp.Dodaj(i, j, kolorek);
if (kolorek == 'B')
{
temp.Dodaj(i, j, 'C');
wynik.wartosc = AlfaBeta(temp, glebokosc - 1, alfa, beta, "MIN", 'C').wartosc;
}
else
{
temp.Dodaj(i, j, 'B');
wynik.wartosc = AlfaBeta(temp, glebokosc - 1, alfa, beta, "MIN", 'B').wartosc;
}
if (wynik.wartosc > alfa)
{
alfa = wynik.wartosc;
wynik.x = i;
wynik.y = j;
}
if (alfa >= beta)
{
wynik.wartosc = beta;
wynik.x = i;
wynik.y = j;
return wynik;
}
}
}
}
wynik.wartosc = alfa;
return wynik;
}
else
{
for (int i = 0; i < s.rozmiar; i++)
{
for (int j = 0; j < s.rozmiar; j++)
{
if (s.Pola[i, j] == 'P')
{
Plansza temp = s.Klonuj();
//temp.Dodaj(i, j, kolorek);
if (kolorek == 'B')
{
temp.Dodaj(i, j, 'C');
wynik.wartosc = AlfaBeta(temp, glebokosc - 1, alfa, beta, "MAX", 'C').wartosc;
}
else
{
temp.Dodaj(i, j, 'B');
wynik.wartosc = AlfaBeta(temp, glebokosc - 1, alfa, beta, "MAX", 'B').wartosc;
}
if (wynik.wartosc < beta)
{
beta = wynik.wartosc;
wynik.x = i;
wynik.y = j;
}
if (alfa >= beta)
{
wynik.wartosc = alfa;
wynik.x = i;
wynik.y = j;
return wynik;
}
}
}
}
wynik.wartosc = beta;
return wynik;
}
}
Revise this Paste
Parent: 15037
Children: 15039