public static List <Karta> ZaładujDostepneKartyWitchResult(List <Karta> twojeKarty, List <Karta> stół, bool AktywnaKozera, Karta Kozera, out ResultMoveGame resultMove) { if (stół.Count == 0) { resultMove = ResultMoveGame.EmptyTable; return(twojeKarty); } else { List <Karta> KartyDostepneWturze = twojeKarty.Where(X => X.Kolor() == stół.First().Kolor()).ToList(); if (KartyDostepneWturze.Count != 0) { ComparerTysioc cp = new ComparerTysioc(stół.First()); List <Karta> KartyPosotowane = new List <Karta>(stół); KartyPosotowane.Sort(cp); Karta Najwiejsze = KartyPosotowane.Last(); var Wieksze = KartyDostepneWturze.Where(X => cp.Compare(Najwiejsze, X) < 0).ToList(); if (Wieksze.Count != 0) { resultMove = ResultMoveGame.Win; return(Wieksze); } else { resultMove = ResultMoveGame.Lose; return(KartyDostepneWturze); } } else { if (AktywnaKozera) { ComparerTysioc cp = new ComparerTysioc(stół.First(), Kozera); List <Karta> KartyPosotowane = new List <Karta>(stół); KartyPosotowane.Sort(cp); Karta Najwiejsze = KartyPosotowane.Last(); var Wieksze = twojeKarty.Where(X => cp.Compare(Najwiejsze, X) < 0).ToList(); if (Wieksze.Count == 0) { resultMove = ResultMoveGame.Lose; return(twojeKarty); } else { resultMove = ResultMoveGame.Win; return(Wieksze); } } else { resultMove = ResultMoveGame.Lose; return(twojeKarty); } } } }
public static int FindWinner(bool enebleTrump, Karta trumpSuit, int indexPlayer, Karta[] Table) { ComparerTysioc porówjnaj = null; if (enebleTrump) { porówjnaj = new ComparerTysioc(Table[indexPlayer], trumpSuit); } else { porówjnaj = new ComparerTysioc(Table[indexPlayer]); } var Kopiastołu = (Karta[])Table.Clone(); Array.Sort(Kopiastołu, porówjnaj); var maxkarta = Kopiastołu.Last(); return(Table.FindIndex(maxkarta)); }