public void LoadSpelers(List<Speler> spelers, Speler you) { int index = 0; foreach (Speler s in spelers) if (s.ID == you.ID) index = spelers.IndexOf(s); switch(index) { case 0: TextBlock1.Text = spelers[1].Name; TextBlock2.Text = spelers[2].Name; TextBlock3.Text = spelers[3].Name; break; case 1: TextBlock1.Text = spelers[2].Name; TextBlock2.Text = spelers[3].Name; TextBlock3.Text = spelers[0].Name; break; case 2: TextBlock1.Text = spelers[3].Name; TextBlock2.Text = spelers[0].Name; TextBlock3.Text = spelers[1].Name; break; case 3: TextBlock1.Text = spelers[0].Name; TextBlock2.Text = spelers[1].Name; TextBlock3.Text = spelers[2].Name; break; } }
private void ReArrangePlayers(Speler first) { List<Speler> nieuw = new List<Speler>(); nieuw.Add(first); int index = spelers.IndexOf(first); if (index == 0) return; else if(index == 1) { nieuw.Add(spelers[2]); nieuw.Add(spelers[3]); nieuw.Add(spelers[0]); } else if(index == 2) { nieuw.Add(spelers[3]); nieuw.Add(spelers[0]); nieuw.Add(spelers[1]); } else if(index == 3) { nieuw.Add(spelers[0]); nieuw.Add(spelers[1]); nieuw.Add(spelers[2]); } this.spelers = nieuw; }
private bool CanPlayKaart(Kaart k, Speler s) { if (currentSlag.Kaarten.Count == 4) return false; if (currentSlag.Kaarten.Count != spelers.IndexOf(s)) return false; if(Spelmode == Spelmode.TROELA && currentSlag.Kaarten.Count == 0 && Slagen.Count == 0) if (k != SpelerTroelaHarte().Value) return false; if (Spelmode == Spelmode.TROEL && currentSlag.Kaarten.Count == 0 && Slagen.Count == 0) if (k.Nummer != 1) return false; if(currentSlag.Kaarten.Count != 0) { KaartSoort first = currentSlag.Kaarten.Values.ElementAt(0).Soort; if (Kaarten[s].Where(o => o.Soort.ID == first.ID).Count() > 0 && k.Soort.ID != first.ID) return false; else if (Spelmode == Spelmode.DAMME && Kaarten[s].Where(o => o.Nummer == 12).Count() > 0 && k.Nummer != 12) return false; } return true; }
public bool PlayKaart(Speler s, Kaart k) { try { if (!CanPlayKaart(k, s)) return false; isFirstTurn = false; Kaart kkk = null; foreach (Kaart kk in Kaarten[s]) if (kk.Soort.ID == k.Soort.ID && kk.Nummer == k.Nummer) { kkk = kk; break; } if (kkk != null) Kaarten[s].Remove(kkk); s.Client.GetClientProxy<IWiesGameClient>().ReceiveHand(Kaarten[s]); currentSlag.Kaarten.Add(s, k); if (currentSlag.Kaarten.Count == 4) { var speler = Comparator.Winner(currentSlag, this); Slagen[speler].Add(currentSlag); foreach (Speler sp in spelers) sp.Client.GetClientProxy<IWiesGameClient>().ReceiveWinner(speler); ReArrangePlayers(speler); Timer t = new Timer(); t.Interval = 3000; t.AutoReset = false; t.Elapsed += t_Elapsed; t.Start(); if (Kaarten[s].Count != 0) { currentSlag = new Slag(this); SendTurn(); } else { List<int> scores = new List<int>(); string message = "PUNTEN:\n"; foreach (KeyValuePair<Speler, int> kvp in Comparator.Scores(spelers, team, spelmode, Slagen)) { Game.Scores[kvp.Key] += kvp.Value; message += (message == "PUNTEN:\n" ? "" : "\n") + kvp.Key.Name + ": " + Game.Scores[kvp.Key]; } foreach (KeyValuePair<Speler, int> kvp in Comparator.Scores(spelers, team, spelmode, Slagen)) { kvp.Key.Client.GetClientProxy<IWiesGameClient>().ReceiveMessage(message); kvp.Key.Client.GetClientProxy<IWiesGameClient>().ReceiveMessage("Nieuwe ronde start in 10 seconden..."); } Timer t2 = new Timer(); t2.Interval = 10000; t2.AutoReset = false; t2.Elapsed += t2_Elapsed; t2.Start(); } } else { SendTurn(); } return true; } catch (Exception) { throw; } }
public List<Spelmode> BeschikbareModes(Speler s) { List<Spelmode> result = new List<Spelmode>(); result.Add(Spelmode.PASS); if (s.ID == 3 && GekozenModes.Where(o => o.Key.Prioriteit > Spelmode.SOLO5.Prioriteit).Count() == 0) result.Add(Spelmode.SOLO5); else if (GekozenModes.Where(o => o.Key.ID == Spelmode.DUO.ID).Count() < 2 && GekozenModes.Where(o => o.Key.Prioriteit > Spelmode.DUO.Prioriteit).Count() == 0) result.Add(Spelmode.DUO); //Als vraag & meegaan -- word in client vertaald if (GekozenModes.Where(o => o.Key.Prioriteit >= Spelmode.SOLO9.Prioriteit).Count() == 0) result.Add(Spelmode.SOLO9); if ((Kaarten[s].Where(o => o.Nummer == 1).Count() == 3 && GekozenModes.Where(o => o.Key.Prioriteit > Spelmode.TROEL.Prioriteit).Count() == 0) || (GekozenModes.Where(o => o.Key == Spelmode.TROELA).Count() == 1 && Kaarten[s].Where(o => o.Nummer == 1).Count() == 1)) result.Add(Spelmode.TROEL); if (GekozenModes.Where(o => o.Key.Prioriteit >= Spelmode.MISERIE.Prioriteit).Count() == 0) result.Add(Spelmode.MISERIE); if ((Kaarten[s].Where(o => o.Nummer == 1).Count() == 4 && GekozenModes.Where(o => o.Key.Prioriteit > Spelmode.TROELA.Prioriteit).Count() == 0) || (GekozenModes.Where(o => o.Key == Spelmode.TROELA).Count() == 1 && SpelerTroelaHarte().Key == s)) result.Add(Spelmode.TROELA); if (GekozenModes.Where(o => o.Key.Prioriteit >= Spelmode.OPEMISERIE.Prioriteit).Count() == 0) result.Add(Spelmode.OPEMISERIE); if (GekozenModes.Where(o => o.Key.Prioriteit >= Spelmode.SOLOLOEMP.Prioriteit).Count() == 0) result.Add(Spelmode.SOLOLOEMP); result.Add(Spelmode.SOLOSLUM); return result; }
public void LoadTableCard(Kaart k, Speler speler, Speler you, List<Speler> spelers) { App.Current.Dispatcher.BeginInvoke(new Action(() => { if (k != null) GameWindow.LoadTableCard(k, speler, you, spelers); else GameWindow.ClearTable(); })); }
public void ReceiveWinner(Speler s) { Write(s.Name + " heeft de slag gewonnen!"); }
public void ReceiveSpelers(List<Speler> spelers, Speler you) { App.Current.Dispatcher.BeginInvoke(new Action(() => { MainWindow.Hide(); GameWindow.Show(); GameWindow.LoadSpelers(spelers, you); })); }
public void LoadTableCard(Kaart k, Speler speler, Speler you, List<Speler> spelers) { if(k == null) { ClearTable(); return; } int index = 0; int index2 = 0; foreach (Speler s in spelers) if (s.ID == you.ID) index = spelers.IndexOf(s); else if (s.ID == speler.ID) index2 = spelers.IndexOf(s); Bitmap bmp = (Bitmap)Properties.Resources.ResourceManager.GetObject(k.Soort.Naam.ToUpper() + "_" + k.Nummer); if(speler.ID == you.ID) { Card0.Source = Bitmap2BitmapImage(bmp); return; } switch (index) { case 0: switch (index2) { case 1: Card1.Source = Bitmap2BitmapImage(bmp); break; case 2: Card2.Source = Bitmap2BitmapImage(bmp); break; case 3: Card3.Source = Bitmap2BitmapImage(bmp); break; } break; case 1: switch (index2) { case 2: Card1.Source = Bitmap2BitmapImage(bmp); break; case 3: Card2.Source = Bitmap2BitmapImage(bmp); break; case 0: Card3.Source = Bitmap2BitmapImage(bmp); break; } break; case 2: switch (index2) { case 1: Card3.Source = Bitmap2BitmapImage(bmp); break; case 0: Card2.Source = Bitmap2BitmapImage(bmp); break; case 3: Card1.Source = Bitmap2BitmapImage(bmp); break; } break; case 3: switch (index2) { case 1: Card2.Source = Bitmap2BitmapImage(bmp); break; case 2: Card3.Source = Bitmap2BitmapImage(bmp); break; case 0: Card1.Source = Bitmap2BitmapImage(bmp); break; } break; } }
public bool PlayKaart(Speler s, Kaart k) { if (!CanPlayKaart(k, s)) return false; currentSlag.Kaarten.Add(s, k); if(currentSlag.Kaarten.Count == 4) { Slagen.Add(Comparator.Winner(currentSlag, this), currentSlag); if(Kaarten[s].Count != 0) { currentSlag = new Slag(this); SendTurn(); } else { //NIEUW SPEL STARTEN + winnar berekenen } } else { SendTurn(); } return true; }