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 };