/// <summary> /// Doorloop alle stappen van een beurt /// </summary> private async Task VolgendeBeurt(int gedobbeld, Speler speler, ISpeler controller) { // Geef dobbelwaarde neer _game.Gedobbeld = gedobbeld; controller.Gedobbeld = gedobbeld; // Selecteer alle pionnen die kunnen lopen var pionnen = speler.Pionnen.Where(pion => pion.MogelijkeZetten(gedobbeld).Count != 0).ToList(); // Wanneer er geen zetten mogelijk zijn doorspelen if (!pionnen.Any()) { return; } // Laat speler een pion kiezen var gekozen = await controller.KiesPion(pionnen, gedobbeld); // Markeer alle kiesbare velden var mogelijk = gekozen.MogelijkeZetten(gedobbeld); // Laat speler een veld kiezen var veld = await controller.VerplaatsPion(gekozen, mogelijk); // Het spel de zet laten zetten gekozen.Oppakken(); while(true) { Logic.Barricade barricade; try { gekozen.Verplaats(veld); return; } catch (BarricadeVerplaatsException e) { barricade = e.Barricade; } // Barricade verplaatsen if (barricade == null) continue; var target = await controller.VerplaatsBarricade(barricade, a => a.MagBarricade); barricade.Verplaats(target as Veld); } }
public Vriendelijk(Speler speler, Spel spel) : base(speler, spel) { _speler = speler; _random = spel.Random; }
public Rusher(Speler speler, Spel spel) : base(speler, spel) { _random = spel.Random; }
public async Task<Tuple<Speler, int>> DobbelTask(Speler speler, int gedobbeld) { return new Tuple<Speler, int>(speler, gedobbeld); }
protected BaseBot(Speler speler, Spel spel) { Speler = speler; Spel = spel; }
public void Gewonnen(Speler speler) { Console.WriteLine(@"Speler " + speler.Name + @" heeft gewonnen!"); }
public async Task<Tuple<Speler, int>> DobbelTask(Speler speler, int gedobbeld) { _speler = speler; _gedobbeld = gedobbeld; DobbelKnop.IsEnabled = true; GetalLabel.IsEnabled = true; SpelerKiezer.IsEnabled = true; KnopRand.Visibility = Visibility.Visible; GetalLabel.Clear(); var result = await _wachter.Wait(); DobbelKnop.IsEnabled = false; GetalLabel.IsEnabled = false; SpelerKiezer.IsEnabled = false; KnopRand.Visibility = Visibility.Hidden; return result; }
private void SpelerKiezer_SelectionChanged(object sender, SelectionChangedEventArgs e) { IsAanBeurt = (Speler) SpelerKiezer.SelectedItem; }
public Pion(Speler speler) { Speler = speler; }
public Willekeurig(Speler speler, Spel spel) : base(speler, spel) { _random = spel.Random; }
public void Gewonnen(Speler speler) { MessageBox.Show("Speler " + speler.Name + " heeft gewonnen!", "Er is een winnaar!", MessageBoxButton.OK, MessageBoxImage.Information); }
public Task<Tuple<Speler, int>> DobbelTask(Speler speler, int gedobbeld) { return _userControls.DobbelTask(speler, gedobbeld); }