00001 #include "Deklaracje.h"
00002 #include <vector>
00003 #include <list>
00004
00005 class Plansza;
00006 class PlanszaWirtualna;
00007
00008 class Gracz
00009 {
00010 protected:
00011 Plansza * plansza;
00012
00013 TURA identyfikator;
00014
00015 bool_ turaZakonczona;
00016 public:
00017 TURA Id(){return identyfikator;};
00018 Gracz(Plansza *plansza, TURA id);
00019 bool_ StanTury(){return turaZakonczona;};
00020 virtual void RozpocznijTure() {turaZakonczona=false;};
00021 virtual void ObslugaMyszy(WSPOLRZEDNE_EKRANOWE wspolrzedne){;};
00022
00023
00024 };
00025
00026 class Czlowiek: public Gracz
00027 {
00028 public:
00029 Czlowiek(Plansza* plansza, TURA id): Gracz(plansza,id){;};
00030 void ObslugaMyszy(WSPOLRZEDNE_EKRANOWE wspolrzedne);
00031
00032 };
00033
00034 class Komputer: public Gracz
00035 {
00036 private:
00037 int sredniaLiczbaOdwiedzin;
00038 int liczbaOdwiedzin;
00039 std::vector<std::pair<int,RUCH>> tablicaHistorii;
00040 std::pair<int,RUCH> NegMax(PlanszaWirtualna model,int glebokosc, TURA gracz);
00041 std::pair<int,RUCH> AlphaBeta(PlanszaWirtualna model,int glebokosc, TURA gracz, std::pair<int,RUCH> alpha, std::pair<int,RUCH> beta);
00042 std::pair<int,RUCH> AlphaBetaHT(PlanszaWirtualna model,int glebokosc, TURA gracz, std::pair<int,RUCH> alpha, std::pair<int,RUCH> beta);
00043 int Ocena(PlanszaWirtualna model, TURA gracz, int glebokosc);
00044 int glebokoscMax;
00045 int algorytm;
00046 void WypelnijTabliceHistorii();
00047
00048 std::list<RUCH> porzednieRuchy;
00049 public:
00050 Komputer(Plansza* plansza, TURA id,int glebokosc,int algorytm): Gracz(plansza,id), sredniaLiczbaOdwiedzin(0), glebokoscMax(glebokosc), algorytm(algorytm) { WypelnijTabliceHistorii();};
00051 void RozpocznijTure();
00052
00053 };