Beispiel #1
0
 public void LoadNewMode(Spelmode sm, List<Speler> team)
 {
     StackPanelModes.Children.Clear();
     StackPanelModes.Children.Add(new TextBlock() { Text = sm.Name });
     string tm = "Team:";
     foreach(Speler s in team)
         tm += " " + s.Name;
     StackPanelModes.Children.Add(new TextBlock() { Text = tm });
 }
Beispiel #2
0
 public void SendVolgendeKies()
 {
     try
     {
         Speler s;
         if (GekozenModes.Count != 4)
         {
             s = Spelers[GekozenModes.Count];
             s.Client.GetClientProxy<IWiesGameClient>().ReceiveModes(BeschikbareModes(s));
         }
         else
         {
             //Begin spel!
             var result = Comparator.WinnerMode(this);
             spelmode = result.Key;
             team = result.Value;
             foreach (Speler sp in spelers)
                 sp.Client.GetClientProxy<IWiesGameClient>().ReceiveWinnerMode(spelmode, team, Troef);
             isFirstTurn = true;
             currentSlag = new Slag(this);
             SendTurn();
         }
     } catch(Exception ex)
     {
         int i = 8;
         i++;
     }
 }
Beispiel #3
0
 public void KiesMode(Spelmode s)
 {
     Speler sp = Spelers[GekozenModes.Count];
     GekozenModes.Add(s, sp);
     foreach (Speler sps in spelers)
         sps.Client.GetClientProxy<IWiesGameClient>().ReceiveMessage(sp.Name + " gaat " + s.Name);
     SendVolgendeKies();
 }
Beispiel #4
0
 public void ReceiveWinnerMode(Spelmode sm, List<Speler> team, KaartSoort troef)
 {
     App.Current.Dispatcher.BeginInvoke(new Action(() =>
     {
         GameWindow.LoadNewMode(sm, team, troef);
     }));
 }
Beispiel #5
0
        public static Dictionary<Speler, int> Scores(List<Speler> spelers, List<Speler> team, Spelmode sm, Dictionary<Speler, List<Slag>> slagen = null, bool? isDerdeu = null)
        {
            Dictionary<Speler, int> scores = new Dictionary<Speler, int>();

            int aantal;
            int score;

            switch (sm.ID)
            {
                case 0: //Duo
                case 4:
                case 6:
                    aantal = slagen[team[0]].Count + slagen[team[1]].Count;
                    score = 2 + Math.Abs(aantal - 8);
                    if (sm.ID == 4 || sm.ID == 6)
                        score *= 2;
                    foreach (Speler s in spelers)
                        scores.Add(s, ((team.Contains(s) && aantal >= 8) || (!team.Contains(s) && aantal < 8) ? 1 : -1) * score);
                    break;
                case 1: //Solo5
                    aantal = slagen[team[0]].Count;
                    score = 6 + Math.Abs(aantal - 5) * 3;
                    foreach (Speler s in spelers)
                        scores.Add(s, score / (team.Contains(s) ? 1 : -3));
                    break;
                case 2: //9
                    if(slagen[team[0]].Count >= 9)
                        foreach (Speler s in spelers)
                            scores.Add(s, (team.Contains(s) ? 15 : -5));
                    else
                        foreach (Speler s in spelers)
                            scores.Add(s, (team.Contains(s) ? 5 : -15));
                    break;
                case 3: //Miserie
                case 5: //Ope miserie
                    if(slagen[team[0]].Count == 0)
                        foreach (Speler s in spelers)
                            scores.Add(s, (team.Contains(s) ? (sm.ID == 5 ? 30 : 15) : (sm.ID == 5 ? -10 : -5)));
                    else
                        foreach (Speler s in spelers)
                            scores.Add(s, (team.Contains(s) ? (sm.ID == 5 ? 10 : 5) : (sm.ID == 5 ? -30 : -15)));
                    break;
                case 7: //sololoemp
                case 8: //soloslum
                    if(slagen[team[0]].Count == 13)
                    {
                        score = (sm.ID == 7 ? 30 : 60);
                        foreach (Speler s in spelers)
                            scores.Add(s, (team.Contains(s) ? score : -(score / 3)));
                    }
                    else
                    {
                        score = (sm.ID == 7 ? 30 : 60);
                        foreach (Speler s in spelers)
                            scores.Add(s, (team.Contains(s) ? -score : (score / 3)));
                    }
                    break;
                case 9: //Damme
                    Dictionary<Speler, int> aantallen = new Dictionary<Speler, int>();
                    int counter = 0;
                    Speler alle4 = null;
                    foreach (Speler s in spelers)
                    {
                        aantallen.Add(s, 0);
                        foreach (Slag sl in slagen[s])
                            foreach (Kaart k in sl.Kaarten.Values)
                                if (k.Nummer == 12)
                                {
                                    counter++;
                                    aantallen[s]++;
                                    alle4 = s;
                                }
                    }
                    if(counter == 4)
                        foreach(Speler s in spelers)
                            if (s.ID == alle4.ID)
                                scores.Add(s, -9);
                            else
                                scores.Add(s, 3);
                    else
                    {
                        int counter2 = 0;
                        foreach(Speler s in spelers)
                            if (aantallen[s] == 0)
                                counter2++;

                        foreach (Speler s in spelers)
                            if (aantallen[s] == 0)
                                scores.Add(s, 8 / counter2);
                            else
                                scores.Add(s, -2 * aantallen[s]);
                    }
                    break;
            }

            return scores;
        }
Beispiel #6
0
 public void KiesSpelMode(Spelmode sm)
 {
     Game.CurrentSpel.KiesMode(sm);
 }
Beispiel #7
0
 public void KiesMode(Spelmode s)
 {
     Speler sp = Spelers[GekozenModes.Count];
     GekozenModes.Add(s, sp);
     SendVolgendeKies();
 }