public static void Spielfigur_Update(string nachricht)
        {
            //
            // Die Informationen müssen folgendes Schema haben: "Spielfigur Update,<Farbe>,<Figur Nr>,<zielfeld_Position_X>,<zielfeldposition_Y>"
            //
            string[] informationen = Konvertiere_in_Stringarray(nachricht, 4);
            int      x             = Convert.ToInt32(informationen[2]);
            int      y             = Convert.ToInt32(informationen[3]);

            switch (Statische_Methoden.Erkenne_Farbe(informationen[0]))
            {
            case FARBE.ROT:
            {
                foreach (Figur figur in spieler_rot)
                {
                    if (figur.id == Convert.ToInt32(informationen[1]))
                    {
                        figur.Set_Figureposition(Statische_Methoden.Finde_Feld(x, y));
                    }
                }
                break;
            }

            case FARBE.GELB:
            {
                foreach (Figur figur in spieler_gelb)
                {
                    if (figur.id == Convert.ToInt32(informationen[1]))
                    {
                        figur.Set_Figureposition(Statische_Methoden.Finde_Feld(x, y));
                    }
                }
                break;
            }

            case FARBE.GRUEN:
            {
                foreach (Figur figur in spieler_gruen)
                {
                    if (figur.id == Convert.ToInt32(informationen[1]))
                    {
                        figur.Set_Figureposition(Statische_Methoden.Finde_Feld(x, y));
                    }
                }
                break;
            }

            case FARBE.BLAU:
            {
                foreach (Figur figur in spieler_blau)
                {
                    if (figur.id == Convert.ToInt32(informationen[1]))
                    {
                        figur.Set_Figureposition(Statische_Methoden.Finde_Feld(x, y));
                    }
                }
                break;
            }
            }
        }
        public static void Spielstart(string nachricht)
        {
            //
            // Die Informationen müssen folgendes Schema haben: "Spielstart,<Name_S1>,<ip_S1>,<farbe_S1>,<Name_S2>,<ip_S2>,<farbe_S2>,<Name_S3>,<ip_S3>,<farbe_S3>,<Name_S4>,<ip_S4>,<farbe_S4>,<start_farbe>"
            //
            string[] Spieler = Konvertiere_in_Stringarray(nachricht, 12);

            if (Spieler[0] != "Geschlossen")
            {
                new Spieler(Statische_Methoden.Erkenne_Farbe(Spieler[2]), Spieler[0], Statische_Methoden.Erkenne_Spielerart(Spieler[0]), IPAddress.Parse(Spieler[1]));
            }
            if (Spieler[3] != "Geschlossen")
            {
                new Spieler(Statische_Methoden.Erkenne_Farbe(Spieler[5]), Spieler[3], Statische_Methoden.Erkenne_Spielerart(Spieler[3]), IPAddress.Parse(Spieler[4]));
            }
            if (Spieler[6] != "Geschlossen")
            {
                new Spieler(Statische_Methoden.Erkenne_Farbe(Spieler[8]), Spieler[6], Statische_Methoden.Erkenne_Spielerart(Spieler[6]), IPAddress.Parse(Spieler[7]));
            }
            if (Spieler[9] != "Geschlossen")
            {
                new Spieler(Statische_Methoden.Erkenne_Farbe(Spieler[11]), Spieler[9], Statische_Methoden.Erkenne_Spielerart(Spieler[9]), IPAddress.Parse(Spieler[10]));
            }
            foreach (Spieler spieler in alle_Spieler)
            {
                if (spieler.farbe == Statische_Methoden.Erkenne_Farbe(Spieler[12]))
                {
                    spieler.status = true;
                }
            }
        }
Ejemplo n.º 3
0
 public void bild_Click(object o, System.Windows.Input.MouseButtonEventArgs e)
 {
     if (mögliche_Position != null)
     {
         Set_Figureposition(mögliche_Position);
         Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler("Spielfigur Update," + Statische_Methoden.Konvertiere_FARBE_zu_string(this.farbe) + "," + this.id + "," + aktuelle_Position.position.X + "," + aktuelle_Position.position.Y);
         Statische_Methoden.Figur_wurde_bewegt();
     }
 }
        // ALTE VERSION DER FORWARD FUNKTION -->
        //public static void Forward_Spielrecht()
        //{
        //    aktiver_spieler.status = false;
        //    if (aktiver_spieler.nächster_Spieler.spieler_art == SPIELER_ART.NORMALER_SPIELER && aktiver_spieler.nächster_Spieler.ip.Address != eigene_IPAddresse.Address) Netzwerkkommunikation.Sende_TCP_Nachricht_an_alle_Spieler("Spielrecht," + aktiver_spieler.nächster_Spieler.name);
        //    else
        //    {
        //        aktiver_spieler.nächster_Spieler.status = true;
        //        aktiver_spieler = aktiver_spieler.nächster_Spieler;
        //        if (aktiver_spieler.spieler_art == SPIELER_ART.NORMALER_SPIELER) Würfel.Dispatcher.Invoke(new Click_Event(Würfel_einschalten));
        //        verbleibende_würfelversuche = 3;
        //    }
        //}



        public static string Erstelle_Startnachricht_für_clients()
        {
            string message = "Spielstart";
            int    rest    = alle_Spieler.Count;

            foreach (Spieler spieler in alle_Spieler)
            {
                message += "," + spieler.name + "," + spieler.ip.ToString() + "," + Statische_Methoden.Konvertiere_FARBE_zu_string(spieler.farbe);
            }
            switch (rest)
            {
            case 2: message += ",Geschlossen,_,_,Geschlossen,_,_"; break;

            case 3: message += ",Geschlossen,_,_"; break;
            }
            int s = Statische_Methoden.Ermittle_start_Spieler();

            if (s > 0)
            {
                alle_Spieler[s].status = true;
                message += "," + Statische_Methoden.Konvertiere_FARBE_zu_string(alle_Spieler[s].farbe);
            }
            return(message);
        }
Ejemplo n.º 5
0
 public void Initialisiere_Figuren()
 {
     this.eigene_Figuren = Statische_Methoden.Initialisiere_Figuren(this.farbe);
 }
        public static void Anlaysiere_IP_Paket(string nachricht)
        {
            if (nachricht.Contains("Hostinformationen") && aktive_Seite == AKTIVE_SEITE.SPIEL_SUCHEN)
            {
                string temp = nachricht.Replace("Hostinformationen,", "");
                Update_Hostinformationen(temp);
            }
            else if (nachricht.Contains("Hostabsage") && aktive_Seite == AKTIVE_SEITE.SPIEL_SUCHEN)
            {
                anfragen_result = false;
            }
            else if (nachricht.Contains("Hostzusage") && aktive_Seite == AKTIVE_SEITE.SPIEL_SUCHEN)
            {
                anfragen_result = true;
            }
            else if (nachricht.Contains("Spielstart") && aktive_Seite == AKTIVE_SEITE.SPIEL_SUCHEN)
            {
                string temp = nachricht.Replace("Spielstart,", "");
                Spielstart(temp);
                Spiel_suchen_Grid.Dispatcher.Invoke(new Hosts_Update(Spiel_suchen_Spiel_starten));
            }
            else if (nachricht.Contains("Spielende") && aktive_Seite == AKTIVE_SEITE.SPIELWIESE)
            {
                string temp = nachricht.Replace("Spielende,", "");
                Statische_Methoden.Spielende();
                Aufgeben.Dispatcher.Invoke(new Ende(Statische_Methoden.Spielende));
            }
            else if (nachricht.Contains("Clientanfrage") && aktive_Seite == AKTIVE_SEITE.SPIEL_ERSTELLEN)
            {
                string temp = nachricht.Replace("Clientanfrage,", "");
                Clientanfrage(temp);
            }
            else if (nachricht.Contains("Clientabsage") && aktive_Seite == AKTIVE_SEITE.SPIEL_ERSTELLEN)
            {
                string temp = nachricht.Replace("Clientabsage,", "");
                Clientabsage(temp);
            }
            else if (nachricht.Contains("Chatinformationen") && aktive_Seite == AKTIVE_SEITE.SPIELWIESE)
            {
                string temp = nachricht.Replace("Chatinformationen,", "");
                Update_Chatinformationen(temp);
            }
            else if (nachricht.Contains("Spielrecht") && aktive_Seite == AKTIVE_SEITE.SPIELWIESE)
            {
                string temp = nachricht.Replace("Spielrecht,", "");
                if (nachricht.Contains(lokaler_spieler.name))
                {
                    lokaler_spieler.status = true;
                    Würfel.Dispatcher.Invoke(new Hosts_Update(Aktiviere_Würfel));
                    verbleibende_würfelversuche = 3;
                }
                aktiver_Spieler.Dispatcher.Invoke(new LabelUpdate(LabelUpdate_aktiver_Spieler), temp);
            }
            else if (nachricht.Contains("Spielfigur Update") && aktive_Seite == AKTIVE_SEITE.SPIELWIESE)
            {
                string temp = nachricht.Replace("Spielfigur Update,", "");
                Spielfigur_Update(temp);
            }
            else if (nachricht.Contains("Wuerfelzahl") && aktive_Seite == AKTIVE_SEITE.SPIELWIESE)
            {
                string temp = nachricht.Replace("Wuerfelzahl,", "");
                Würfel.Dispatcher.Invoke(new Würfelupdate(Würfel_update), nachricht.Last().ToString());
            }
            else if (nachricht.Contains("Client_abbruch"))
            {
                string temp  = nachricht.Replace("Client_abbruch,", "");
                int    index = -1;
                foreach (Spieler sp in alle_Spieler)
                {
                    if (sp.name == temp)
                    {
                        index = alle_Spieler.IndexOf(sp);
                    }
                }
                foreach (Figur fig in alle_Spieler[index].eigene_Figuren)
                {
                    fig.Set_Figure_to_Start();
                }

                if (index > -1)
                {
                    alle_Spieler.RemoveAt(index);
                }
            }
        }