//određuje koji je sljedeci igrac, dodojeljuje bodov pobjedniku kruga i provjerava dali je igra zavrsila private void zavrsetakKruga(Room sobaIgre) { Karta pobjednickaKarta = sobaIgre.baceneKarte[0]; int pozPobjednickaKarta = 0; int bodoviKruga = pobjednickaKarta.bodovi; for (int j = 1; j < 4; j++) { bodoviKruga += sobaIgre.baceneKarte[j].bodovi; Karta tempPobjednickaKarta = pobjednickaKarta.tkoJeJaci(sobaIgre.baceneKarte[j]); if (!pobjednickaKarta.Equals(tempPobjednickaKarta)) { pobjednickaKarta = tempPobjednickaKarta; pozPobjednickaKarta = j; } } sobaIgre.igracNaPotezu = (sobaIgre.igracNaPotezu + pozPobjednickaKarta) % 4;//igrac koji je bacio najjacu kartu ovaj krug dodjeliBodove(sobaIgre, bodoviKruga); //odredi koji je krug igre sobaIgre.krugIgre--; //kraj igre if (sobaIgre.krugIgre == 0) { //davanje bodova za zadnje dizanje dodjeliBodove(sobaIgre, 3); for (int i = 0; i < 4; i++) Clients.Client(sobaIgre.igraci[i].connectioId).krajIgre(sobaIgre.bodoviTimaA / 3, sobaIgre.bodoviTimaB / 3); } }
//dodjel bodova private void dodjeliBodove(Room sobaIgre , int brojBodova) { if (sobaIgre.igracNaPotezu == 0 || sobaIgre.igracNaPotezu == 2) sobaIgre.bodoviTimaA += brojBodova; if (sobaIgre.igracNaPotezu == 1 || sobaIgre.igracNaPotezu == 3) sobaIgre.bodoviTimaB += brojBodova; }
//odredi koja je bacena karta iz kordinate klika private Karta getKliknutaKarta(Room sobaIgre ,int mouseX , int mouseY) { for (int i = sobaIgre.krugIgre-1; i >=0; i--) { Karta temp = sobaIgre.igraci[sobaIgre.igracNaPotezu].mojeKarte.ElementAt(i);//karta za provjeru ide od najvise prema najnizoj if (temp.xPoz < mouseX && (temp.xPoz + temp.sirina) > mouseX && temp.yPoz <mouseY && temp.yPoz +temp.visina > mouseY)//kliknuta je ova karta { return temp; } } return null; }
//bacanje karte private void baciKartu(Room sobaIgre, Karta kliknutaKarta) { sobaIgre.baceneKarte[sobaIgre.brojBacenihKarata] = kliknutaKarta; sobaIgre.brojBacenihKarata++; sobaIgre.igraci[sobaIgre.igracNaPotezu].mojeKarte.Remove(kliknutaKarta); }