private void CB_Blau_SelectionChanged(object sender, SelectionChangedEventArgs e) { bool result = S_erstellen.Prüfe_auswahl(new List <int>() { CB_Rot.SelectedIndex, CB_Gelb.SelectedIndex, CB_Grün.SelectedIndex, CB_Blau.SelectedIndex }, CB_Blau); if (result == false) { if (CB_Gelb.SelectedIndex == 3) { CB_Gelb.SelectedIndex = 1; } if (CB_Grün.SelectedIndex == 3) { CB_Grün.SelectedIndex = 1; } if (CB_Rot.SelectedIndex == 3) { CB_Rot.SelectedIndex = 1; } } Update_Index_variablen(); }
private void BTN_Starten_Click(object sender, RoutedEventArgs e) { // Sobald man Starten drückt wird die getroffene Auswahl Überprüft. Bei einer gültigen Auswahl werden zwei neue // Threads gestartet. Der eine Sendet eine UDP-Nachricht für potentielle Spieler(Clients) und der Andere horcht auf die // Leitung um Client-Anfragen zu verarbeiten. Dabei ist der Button disabled. Wenn das Spiel gestartet wird, wird der // Button erneut getriggert um das Spiel zu starten. if (BTN_Starten.IsEnabled) { if (S_erstellen.Prüfe_auswahl()) { BTN_Starten.IsEnabled = false; CB_Blau.IsEnabled = false; CB_Gelb.IsEnabled = false; CB_Rot.IsEnabled = false; CB_Grün.IsEnabled = false; S_erstellen.Spieler_Rot = CB_Rot.Text; S_erstellen.Spieler_Gelb = CB_Gelb.Text; S_erstellen.Spieler_Grün = CB_Grün.Text; S_erstellen.Spieler_Blau = CB_Blau.Text; S_erstellen.UDP_Threadstatus = true; Task.Factory.StartNew(S_erstellen.Warte_auf_Spieler); Task.Factory.StartNew(S_erstellen.Sende_UDP); } else { MessageBox.Show("Es müssen mindestens 2 Spieler gegeneinander antreten", "Fehler - ungültige Auswahl", MessageBoxButton.OK); } } else { string startnachricht = S_erstellen.Generiere_Startnachricht(); Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler(startnachricht); Statische_Variablen.aktuelle_Seite = "Spielfeld"; Klassen.SeitenFunktionen.Spielfeld.aktiver_Spieler = Klassen.SeitenFunktionen.Spielfeld.alle_Mitspieler [new Random().Next(0, Klassen.SeitenFunktionen.Spielfeld.alle_Mitspieler.Count)]; Statische_Variablen.rootFrame.Content = new Spielfeld(); Klassen.SeitenFunktionen.Spielfeld.Gebe_Spielrecht_weiter(); Klassen.SeitenFunktionen.Spielfeld.spielstatus = true; foreach (Spieler spieler in Klassen.SeitenFunktionen.Spielfeld.alle_Mitspieler) { if (spieler.spieler_art == Statische_Variablen.SPIELER_ART.CP_GEGNER) { Task.Factory.StartNew(spieler.Computergegner_Runtime); } } } }