public Karta aiVracaKartu(Karta bacenaIgrac) { Karta odgovor; Random rnd = new Random(); List<Karta> mogucnostiZaPovratak = karteU_RuciAI.FindAll(x => x.zvanje.Equals(bacenaIgrac.zvanje)); if (mogucnostiZaPovratak.Count == 0) { int i = rnd.Next() % karteU_RuciAI.Count; odgovor = karteU_RuciAI.ElementAt(i); } else { int i = rnd.Next() % mogucnostiZaPovratak.Count; odgovor = mogucnostiZaPovratak.ElementAt(i); } return odgovor; }
internal Karta tkoJeJaci(Karta karta) { if (this.zvanje != karta.zvanje) return this; if (karta.snaga > this.snaga) return karta; return this; }
//bacanje karte private void baciKartu(Room sobaIgre, Karta kliknutaKarta) { sobaIgre.baceneKarte[sobaIgre.brojBacenihKarata] = kliknutaKarta; sobaIgre.brojBacenihKarata++; sobaIgre.igraci[sobaIgre.igracNaPotezu].mojeKarte.Remove(kliknutaKarta); }
//bacanje karte private void baciKartu(SpSoba sobaIgre, Karta igracevoBacanje, int istoZvanje, string connectionId) { sobaIgre.Igrac.mojeKarte.Remove(igracevoBacanje); Karta jacaKarta = sobaIgre.baceneKartaAI.tkoJeJaci(igracevoBacanje); Karta kartuIzvucenuAI = sobaIgre.spilIgre.getKarta(); Karta kataIzvucenaIgrac = sobaIgre.spilIgre.getKarta(); sobaIgre.odbaceneKarte.Add(igracevoBacanje); sobaIgre.odbaceneKarte.Add(sobaIgre.baceneKartaAI); int bodovi = sobaIgre.baceneKartaAI.bodovi + igracevoBacanje.bodovi; if (jacaKarta.Equals(sobaIgre.baceneKartaAI) || istoZvanje == 1)//1 odgovorio je krivim zvanjem { sobaIgre.AIjeigrao = 1; sobaIgre.bodoviAi += bodovi; } if (jacaKarta.Equals(igracevoBacanje)) { sobaIgre.bodoviIgraca += bodovi; } Clients.Client(connectionId).odgovor(sobaIgre.Igrac.mojeKarte, igracevoBacanje, kartuIzvucenuAI, kataIzvucenaIgrac); if (kataIzvucenaIgrac != null) sobaIgre.Igrac.mojeKarte.Add(kataIzvucenaIgrac); sortRuku(sobaIgre); if (kartuIzvucenuAI != null) sobaIgre.karteU_RuciAI.Add(kartuIzvucenuAI); }