Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Plansza.h"
- Pionek* Plansza:: spytaj_o_pole(Pionek* tablica[], int nr_pola)
- {
- int i;
- int liczbaPionkow=16;
- for(i=0; i<liczbaPionkow; i++)
- {
- if(tablica[i]->pobierz_polozenie() == nr_pola)
- return tablica[i];
- }
- return NULL;
- }
- int Plansza::na_jakie_pole_przejdzie(Pionek* pionek, int kostka)
- {
- int przyszla_pozycja;
- int aktualna_pozycja;
- int start, roznica, start_bazy;
- przyszla_pozycja = pionek->pobierz_polozenie() + kostka;
- aktualna_pozycja = pionek->pobierz_polozenie();
- if(pionek->zwroc_kolor() == czerwony)
- {
- start = 20;
- roznica = 28;
- start_bazy = 48;
- }
- else if(pionek->zwroc_kolor() == niebieski)
- {
- start = 30;
- roznica = 15;
- start_bazy = 44;
- }
- else if(pionek->zwroc_kolor() == zielony)
- {
- start = 10;
- roznica = 43;
- start_bazy = 52;
- }
- else if(pionek->zwroc_kolor() == zolty)
- {
- start = 40;
- roznica = 0;
- start_bazy = 40;
- }
- if (przyszla_pozycja >= start && aktualna_pozycja<start)
- {
- if(przyszla_pozycja>=start && przyszla_pozycja<=(start+3))
- {
- return przyszla_pozycja + roznica ;
- }
- else
- return aktualna_pozycja;
- }
- if(aktualna_pozycja>=start_bazy && aktualna_pozycja<=(start_bazy+3))
- {
- if(przyszla_pozycja>(start_bazy+3))
- return aktualna_pozycja;
- else
- return przyszla_pozycja;
- }
- return przyszla_pozycja %40;
- }
- bool Plansza:: ruch_pionka(Pionek *pionek,Pionek* tablica[], int kostka)
- {
- Pionek *p;
- int m;
- if(pionek->w_grze == false)
- {
- if(kostka!=6)
- {
- return false;
- }
- int start;
- switch( pionek->zwroc_kolor())
- {
- case czerwony:
- start = 20;
- m=start;
- break;
- case zielony:
- start=10;
- m=start;
- break;
- case zolty:
- start=0;
- m=start;
- break;
- case niebieski:
- start=30;
- m=start;
- break;
- }
- p=spytaj_o_pole(tablica,m);
- }
- else
- {
- m = na_jakie_pole_przejdzie(pionek,kostka);
- p = spytaj_o_pole(tablica,m);
- }
- if(p!= NULL)
- {
- if(pionek->zwroc_kolor() != p->zwroc_kolor())
- {
- p->wroc_do_domku();
- }
- else
- return false;
- }
- if(pionek->pobierz_polozenie() != m)
- {
- pionek->ustaw_polozenie(m);
- pionek->w_grze = true;
- return true;
- }
- }
- /* Gracz* Plansza:: zwroc_kolor_nastepnego(kolor_pionka a)
- {
- if(a==zolty)
- return &green;
- if(a== zielony) // to do funkcji gra
- return &red;
- if(a==czerwony)
- return &blue;
- if(a==niebieski)
- return &yellow;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement