Welcome, guest! Login / Register - Why register?
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
Your Name: Code Language: