Пример #1
0
        //--------Computergegner Runtime-------------//
        private void Computergegener_Runtime(Spieler CP_spieler)
        {
            while (true)
            {
                while (CP_spieler.status)
                {
                    System.Threading.Thread.Sleep(500);
                    Würfel.Dispatcher.Invoke(new Click_Event(Würfel_Click));
                    System.Threading.Thread.Sleep(500);
                    foreach (Figur figur in CP_spieler.eigene_Figuren)
                    {
                        if (figur.mögliche_Position != null)
                        {
                            figur.Set_Figureposition(figur.mögliche_Position);
                            Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler("Spielfigur Update," + Statische_Methoden.Konvertiere_FARBE_zu_string(figur.farbe) + "," + figur.id + "," + figur.aktuelle_Position.position.X + "," + figur.aktuelle_Position.position.Y);
                            Figur_wurde_bewegt();

                            break;
                        }
                    }
                    foreach (Figur figur in CP_spieler.eigene_Figuren)
                    {
                        figur.mögliche_Position = null;
                    }
                }
                System.Threading.Thread.Sleep(1000);
            }
        }
Пример #2
0
        //Spielrecht -------------------------------------------------------------------------------------------------------
        public static void Gebe_Spielrecht_weiter()
        {
            string name = Ermittle_nächsten_Spieler(aktiver_Spieler.farbe).name;

            Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler("Mitspieler;Spielrecht;" + name);
            if (Ermittle_nächsten_Spieler(aktiver_Spieler.farbe).ip.Address == Netzwerkkommunikation.Eigene_IP_Adresse().Address)
            {
                Analysiere_Nachricht(new string[] { "Spielrecht_update", name });
            }
        }
Пример #3
0
 private void btn_Aufgeben_Click(object sender, RoutedEventArgs e)
 {
     this.TCP_listener_status = false;
     root_Frame.Content       = new Startseite(root_Frame);
     Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler("Client_abbruch," + lokaler_spieler.name);
     spiel_felder.Clear();
     ziel_felder.Clear();
     start_felder.Clear();
     spieler_rot.Clear();
     spieler_gelb.Clear();
     spieler_gruen.Clear();
     spieler_blau.Clear();
     alle_Spieler.Clear();
 }
Пример #4
0
 public void Text_in_Chat_senden(string spielername)
 {
     active_chat.Text += "\n" + spielername + ": " + Chat_eingabe.Text;
     if (aktiver_chat_spieler != null)
     {
         Netzwerkkommunikation.Send_TCP_Packet("Chatinformationen," + Chat_eingabe.Text, aktiver_chat_spieler.ip);
     }
     else
     {
         Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler("Chatinformationen," + Chat_eingabe.Text);
     }
     active_chat.ScrollToEnd();
     Chat_eingabe.Text = "";
     Chat_eingabe.Focus();
 }
 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);
             }
         }
     }
 }
Пример #6
0
 //Würfeln ----------------------------------------------------------------------------------------------------------
 public static void Würfeln()
 {
     Aktiviere_Deaktiviere_Würfel(false);
     versuche--;
     würfelzahl = new Random().Next(1, 7);
     Zeige_Zahl(würfelzahl);
     if (würfelzahl == 6)
     {
         versuche = 1;
     }
     Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler("Mitspieler;Würfel_update;" + würfelzahl);
     if (!Prüfe_Figurbeweglichkeit() && versuche > 0)
     {
         Aktiviere_Deaktiviere_Würfel(true);
     }
     else if (!Prüfe_Figurbeweglichkeit() && versuche <= 0)
     {
         Gebe_Spielrecht_weiter();
     }
 }
Пример #7
0
        //--------------Würfellogick--------------//
        private void Btn_Wuerfel_Click(object sender, RoutedEventArgs e)
        {
            z = zufallszahl.Next(1, 7);
            Btn_Wuerfel.Content = z.ToString();

            Btn_Wuerfel.IsEnabled = false;
            Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler("Wuerfelzahl," + z.ToString());

            if (!Zug_ist_möglich(z, aktiver_spieler.eigene_Figuren))
            {
                if (z != 6)
                {
                    if (Sind_alle_Figuren_im_Haus())
                    {
                        verbleibende_würfelversuche -= 1;
                        if (verbleibende_würfelversuche > 0)
                        {
                            if (aktiver_spieler.spieler_art == SPIELER_ART.NORMALER_SPIELER)
                            {
                                Btn_Wuerfel.IsEnabled = true;
                            }
                        }
                        else
                        {
                            Forward_Spielrecht();
                        }
                    }
                    else
                    {
                        Forward_Spielrecht();
                    }
                }
                else
                {
                    if (aktiver_spieler.spieler_art == SPIELER_ART.NORMALER_SPIELER)
                    {
                        Btn_Wuerfel.IsEnabled = true;
                    }
                }
            }
            //________________________________________________________________________________________________________________________
            //if (Sind_alle_Figuren_im_Haus() && verbleibende_würfelversuche > 0)
            //{
            //    if (z != 6 && verbleibende_würfelversuche >0)
            //    {
            //        verbleibende_würfelversuche--;
            //    }
            //    else
            //    {
            //        Zug_ist_möglich(z,aktiver_spieler.eigene_Figuren);
            //        Btn_Wuerfel.IsEnabled = false;
            //    }
            //}
            //else if (Sind_alle_Figuren_im_Haus() && verbleibende_würfelversuche < 1)
            //{
            //    Btn_Wuerfel.IsEnabled = false;
            //    Forward_Spielrecht();
            //}
            //else
            //{
            //    if (z != 6)
            //    {
            //        if (Zug_ist_möglich(z,aktiver_spieler.eigene_Figuren))
            //        {
            //            Btn_Wuerfel.IsEnabled = false;
            //        }
            //        else
            //        {
            //            Btn_Wuerfel.IsEnabled = false;
            //            if(aktiver_spieler.spieler_art == SPIELER_ART.NORMALER_SPIELER) MessageBox.Show("Es ist kein Zug möglich", "Information", MessageBoxButton.OK);
            //            Forward_Spielrecht();
            //        }
            //    }
            //    else
            //    {
            //        if (Zug_ist_möglich(z, aktiver_spieler.eigene_Figuren))
            //        {
            //            Btn_Wuerfel.IsEnabled = false;
            //        }
            //        else
            //        {
            //            lokaler_spieler.status = true;
            //        }
            //    }
            //}

            //if (verbleibende_würfelversuche < 1) Forward_Spielrecht();
        }