00001 #include <vector>
00002 #include <list>
00003 #include "Deklaracje.h"
00007 class PlanszaWirtualna
00008 {
00009 protected:
00010
00011
00015 int rozmiarBokuPlanszy;
00016
00020 std::vector<POLE> plansza;
00021
00026 void Przejmij(WSPOLRZEDNE_PLANSZY wspolrzedne, TURA gracz);
00027
00031 std::vector<POLE>::size_type Indeks(WSPOLRZEDNE_PLANSZY wspolrzedne);
00032
00033 public:
00034 PlanszaWirtualna(int rozmiarBokuPlanszy, bool_ pionyPoczatkowe=true);
00035 PlanszaWirtualna(const PlanszaWirtualna & zrodlo);
00036 std::vector<RUCH> GenerujRuchy(TURA gracz);
00037 bool_ UstawPiona(WSPOLRZEDNE_PLANSZY wsp,TURA gracz);
00038 std::list<std::pair<TURA,RUCH> > wykonaneRuchy;
00039
00043 int PobierzRozmiarBokuPlanszy(){return rozmiarBokuPlanszy;};
00044 int IloscDostepnychPionow(TURA gracz);
00052 virtual bool_ WykonajRuch(WSPOLRZEDNE_PLANSZY zrodlo, WSPOLRZEDNE_PLANSZY cel, TURA gracz);
00053
00054
00055
00056
00064 bool_ SprawdzRuch(WSPOLRZEDNE_PLANSZY zrodlo, WSPOLRZEDNE_PLANSZY cel, TURA gracz);
00065
00071 int IloscDostepnychRuchow(TURA gracz);
00072
00076 POLE Pole(WSPOLRZEDNE_PLANSZY wspolrzedne);
00077
00078 };
00083 class Plansza: public PlanszaWirtualna
00084 {
00085 private:
00086
00087
00088
00092 int pozycjaXNaEkranie;
00096 int pozycjaYNaEkranie;
00100 int szerokoscPola;
00104 WSPOLRZEDNE_PLANSZY zaznaczenie;
00108 WSPOLRZEDNE_PLANSZY podswietlenie;
00109
00110 bool_ podswietlaj;
00111 bool_ zaznaczaj;
00112
00113
00114 std::vector<WSPOLRZEDNE_PLANSZY> podpowiedzi;
00115
00116
00117 public:
00118 bool_ podpowiadaj;
00119 void GenerujPodpowiedzi(TURA gracz);
00120 Plansza(int rozmiarBokuPlanszy,int pozycjaXNaEkranie, int pozycjaYNaekranie, int szerokoscPola, bool_ pionyPoczatkowe=true);
00121
00122 bool_ WykonajRuch(WSPOLRZEDNE_PLANSZY zrodlo, WSPOLRZEDNE_PLANSZY cel, TURA gracz);
00126 void Rysuj();
00127
00128
00129 void AnimujRuch(WSPOLRZEDNE_PLANSZY zrodlo, WSPOLRZEDNE_PLANSZY cel, TURA gracz);
00130
00134 WSPOLRZEDNE_EKRANOWE WspolrzedneEkranowe(WSPOLRZEDNE_PLANSZY wspolrzedne);
00135
00139 WSPOLRZEDNE_PLANSZY WspolrzednePlanszy(WSPOLRZEDNE_EKRANOWE wspolrzedne);
00140
00144 void UstawZaznaczenie(WSPOLRZEDNE_EKRANOWE wspolrzedne);
00148 WSPOLRZEDNE_PLANSZY PobierzZaznaczenie();
00149
00153 void UstawPodswietlenie(WSPOLRZEDNE_EKRANOWE wspolrzedne);
00157 WSPOLRZEDNE_PLANSZY PobierzPodswietlenie();
00158
00159 void Podswietlaj(bool_ stan){podswietlaj=stan;};
00160 void Zaznaczaj(bool_ stan){zaznaczaj=stan;};
00161 bool_ StanZaznaczenia(){return zaznaczaj;};
00162
00167 std::pair<WSPOLRZEDNE_EKRANOWE,WSPOLRZEDNE_EKRANOWE> KrawedziePlanszy();
00168 };