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 bool IsContext(StateGame1000 s, ResultMoveGame mk) => (s.NumberCardInTable == 0);
public bool IsContext(StateGame1000 s, ResultMoveGame mk) => ((s.NumberCardInTable != 0) && mk == ResultMoveGame.Lose || (mk == ResultMoveGame.Win && (s.NumberCardInTable + 1 == s.amountPlayer)));
public bool IsContext(StateGame1000 s, ResultMoveGame mk) => mk == ResultMoveGame.Win;