예제 #1
0
        public static KeyValuePair<Spelmode, List<Speler>> WinnerMode(Spel spel)
        {
            KeyValuePair<Spelmode, List<Speler>> result;

            var gekozenModes = spel.GekozenModes;

            Spelmode hoogste = gekozenModes.Keys.ElementAt(0);
            List<Speler> spelers = new List<Speler>();
            spelers.Add(gekozenModes.Values.ElementAt(0));

            foreach(KeyValuePair<Spelmode, Speler> kvp in gekozenModes)
                if(kvp.Key.Prioriteit > hoogste.Prioriteit)
                {
                    spelers.Clear();
                    spelers.Add(kvp.Value);
                    hoogste = kvp.Key;
                }
                else if(kvp.Key.Prioriteit == hoogste.Prioriteit && !spelers.Contains(kvp.Value))
                {
                    spelers.Add(kvp.Value);
                }

            result = new KeyValuePair<Spelmode, List<Speler>>(hoogste, spelers);

            return result;
        }
예제 #2
0
        public static Speler Winner(Slag slag, Spel spel)
        {
            KaartSoort first = slag.Kaarten.ElementAt(0).Value.Soort;
            KaartSoort troef = spel.Troef;

            Kaart hoogste = slag.Kaarten.Values.ElementAt(0);

            if (!spel.Spelmode.hasTroef) //Geen rekening me troef
            {
                foreach (Kaart k in slag.Kaarten.Values.Where(o => o.Soort == first))
                    if (k.Nummer > hoogste.Nummer || k.Nummer == 1)
                        hoogste = k;
            }
            else
            { //Wel rekening me troef
                foreach (Kaart k in slag.Kaarten.Values)
                {
                    if (k.Soort != first && k.Soort != troef)
                        continue;
                    if (((k.Soort == first && hoogste.Soort != troef) || (k.Soort == troef && hoogste.Soort == troef)) && (k.Nummer > hoogste.Nummer || k.Nummer == 1))
                        hoogste = k;
                    else if (k.Soort == troef && hoogste.Soort != troef)
                        hoogste = k;
                }
            }

            return slag.Kaarten.Keys.ElementAt(slag.Kaarten.Values.ToList().IndexOf(hoogste));
        }
예제 #3
0
파일: Slag.cs 프로젝트: Zeebroek/Wiesgame
 public Slag(Spel spel)
 {
     this.Spel = spel;
 }
예제 #4
0
파일: Game.cs 프로젝트: SyringesCo/Wiesgame
        public void StartSpel()
        {
            CurrentSpel = new Spel(this, spelers, 0);

            CurrentSpel.SendVolgendeKies();
        }
예제 #5
0
파일: Slag.cs 프로젝트: SyringesCo/Wiesgame
 public Slag(Spel spel)
 {
     this.Spel = spel;
     this.Kaarten = new Dictionary<Speler, Kaart>();
 }