Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int AlfaBetaCut(Hráč hrac1, Hráč hrac2, int hloubka, int alfa, int beta)
- {
- pruchody++;
- int cena;
- int pocetVyhozenych = 0;
- if (((hrac1.Barva == barva.bílý) && (rozhodci.KRALobklicen(deskaKlon)))
- ||
- (hrac1.Barva == barva.černý) && (rozhodci.KRALuprchl(deskaKlon)))
- {
- return -MAX;
- }
- else if (hloubka == 0)
- {
- return Ohodnoceni();
- }
- else
- {
- List<Tah> vsechnyTahyHrace = rozhodci.MozneTahyHrace(hrac1, deskaKlon);
- foreach (Tah t in vsechnyTahyHrace)
- {
- if (worker.CancellationPending)
- {
- return 0;
- }
- this.deskaKlon.FigurkaPOHYB(t.Odkud, t.Kam);
- pocetVyhozenych = rozhodci.SeznamVYHOZENI(t.Kam, deskaKlon).Count;
- this.rozhodci.VYHODFigurky(deskaKlon);
- this.rozhodci.ZmenHraceNaTahu();
- cena = -AlfaBetaCut(hrac2, hrac1, hloubka - 1, BlizKMatu(-beta), BlizKMatu(-alfa));
- cena = DalOdMatu(cena);
- this.deskaKlon.FigurkaPOHYB(t.Kam, t.Odkud);
- if (pocetVyhozenych != 0)
- {
- this.deskaKlon.FigurkaVRATIT(hrac2, pocetVyhozenych);
- }
- this.rozhodci.ZmenHraceNaTahu();
- if (cena > alfa)
- {
- alfa = cena;
- if (cena >= beta)
- {
- return beta;
- }
- }
- }
- }
- return alfa;
- }
Add Comment
Please, Sign In to add comment