private void comboBox_blau_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (comboBox_blau.SelectedIndex == 1)
     {
         if (comboBox_gelb.SelectedIndex == 1)
         {
             comboBox_gelb.SelectedIndex = 0;
         }
         if (comboBox_gruen.SelectedIndex == 1)
         {
             comboBox_gruen.SelectedIndex = 0;
         }
         if (comboBox_rot.SelectedIndex == 1)
         {
             comboBox_rot.SelectedIndex = 0;
         }
         this.ausgewählte_farbe = FARBE.BLAU;
     }
     else if (comboBox_gelb != null && comboBox_gruen != null && comboBox_blau != null && comboBox_rot != null)
     {
         if (comboBox_gelb.SelectedIndex != 1 && comboBox_gruen.SelectedIndex != 1 && comboBox_blau.SelectedIndex != 1 && comboBox_rot.SelectedIndex != 1)
         {
             comboBox_blau.SelectedIndex = 1;
         }
     }
     Überprüfe_Comboboxauswahl();
 }
        //     \/       \/       \/       \/       \/       \/

        private void comboBox_gelb_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (comboBox_gelb.SelectedIndex == 1)
            {
                // Diese Anweisungen sorgen dafür das man sich nicht auf 2 Plätze gleichzeitig eintragen kann.
                if (comboBox_rot.SelectedIndex == 1)
                {
                    comboBox_rot.SelectedIndex = 0;
                }
                if (comboBox_gruen.SelectedIndex == 1)
                {
                    comboBox_gruen.SelectedIndex = 0;
                }
                if (comboBox_blau.SelectedIndex == 1)
                {
                    comboBox_blau.SelectedIndex = 0;
                }
                this.ausgewählte_farbe = FARBE.GELB;
            }
            else if (comboBox_gelb != null && comboBox_gruen != null && comboBox_blau != null && comboBox_rot != null)
            {
                // Diese Anweisungen sorgen dafür, das man sich nicht aus dem Spiel ausschließen kann.
                if (comboBox_gelb.SelectedIndex != 1 && comboBox_gruen.SelectedIndex != 1 && comboBox_blau.SelectedIndex != 1 && comboBox_rot.SelectedIndex != 1)
                {
                    comboBox_gelb.SelectedIndex = 1;
                }
            }
            Überprüfe_Comboboxauswahl();
        }
 // Bei den Folgenden 3 Funktionen passiert genau das gleiche wie in dieser
 private void comboBox_rot_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (comboBox_rot.SelectedIndex == 1)
     {
         if (comboBox_gelb.SelectedIndex == 1)
         {
             comboBox_gelb.SelectedIndex = 0;
         }
         if (comboBox_gruen.SelectedIndex == 1)
         {
             comboBox_gruen.SelectedIndex = 0;
         }
         if (comboBox_blau.SelectedIndex == 1)
         {
             comboBox_blau.SelectedIndex = 0;
         }
         this.ausgewählte_farbe = FARBE.ROT;
     } // Diese IF abfrage sorgt dafür, das nur ein Slot mit Ich ausgefüllt werden kann. Zusätzlich wird die Farbe ausgewählt.
     else if (comboBox_gelb != null && comboBox_gruen != null && comboBox_blau != null && comboBox_rot != null)
     {
         if (comboBox_gelb.SelectedIndex != 1 && comboBox_gruen.SelectedIndex != 1 && comboBox_blau.SelectedIndex != 1 && comboBox_rot.SelectedIndex != 1)
         {
             comboBox_rot.SelectedIndex = 1;                                                                                                                                               // Sorgt dafür das man sich nicht selbst aus dem Spiel ausschließen kann.
         }
     }
     Überprüfe_Comboboxauswahl();
 }
Beispiel #4
0
 public Spieler(FARBE farbe, string name, SPIELER_ART spieler_art, IPAddress ip)
 {
     this.name        = name;
     this.farbe       = farbe;
     this.spieler_art = spieler_art;
     alle_Spieler.Add(this);
     this.ip = ip;
 }
 public static Spieler Finde_Spieler_nach_Farbe(FARBE farbe)
 {
     foreach (Spieler spieler in alle_Spieler)
     {
         if (spieler.farbe == farbe)
         {
             return(spieler);
         }
     }
     return(null);
 }
        public static List <Figur> Initialisiere_Figuren(FARBE farbe)
        {
            List <Figur> result = new List <Figur>();

            for (int i = 0; i < 4; i++)
            {
                Figur figur = new Figur(farbe, i);
                result.Add(figur);
            }
            return(result);
        }
        public static string Konvertiere_FARBE_zu_string(FARBE farbe)
        {
            switch (farbe)
            {
            case FARBE.ROT: return("rot");

            case FARBE.GELB: return("gelb");

            case FARBE.GRUEN: return("gruen");

            case FARBE.BLAU: return("blau");
            }
            return(null);
        }
 public Spiel_erstellen(Frame root_Frame)
 {
     this.ausgewählte_farbe = FARBE.LEER;
     this.root_Frame        = root_Frame;
     InitializeComponent();
     this.comboBox_rot.SelectedIndex = 1;
     Spielerstellenlabel.Add(L_Name_Spieler_rot);
     Spielerstellenlabel.Add(L_Name_Spieler_gelb);
     Spielerstellenlabel.Add(L_Name_Spieler_gruen);
     Spielerstellenlabel.Add(L_Name_Spieler_blau);
     aktive_Seite = AKTIVE_SEITE.SPIEL_ERSTELLEN;
     Netzwerkkommunikation.Iinitialisiere_BC_IP_Addressen();
     Netzwerkkommunikation.Iinitialisiere_IP_Addressen();
 }
        private static void Highlight_Spieler(FARBE farbe)
        {
            Spieler_namen_Label[0].Background = System.Windows.Media.Brushes.Transparent;
            Spieler_namen_Label[1].Background = System.Windows.Media.Brushes.Transparent;
            Spieler_namen_Label[2].Background = System.Windows.Media.Brushes.Transparent;
            Spieler_namen_Label[3].Background = System.Windows.Media.Brushes.Transparent;
            switch (farbe)
            {
            case FARBE.ROT: Spieler_namen_Label[0].Background = System.Windows.Media.Brushes.Green; break;

            case FARBE.GELB: Spieler_namen_Label[1].Background = System.Windows.Media.Brushes.Green; break;

            case FARBE.GRÜN: Spieler_namen_Label[2].Background = System.Windows.Media.Brushes.Green; break;

            case FARBE.BLAU: Spieler_namen_Label[3].Background = System.Windows.Media.Brushes.Green; break;
            }
        }
Beispiel #10
0
        public Feld(FARBE farbe, FELD_EIGENSCHAFT feld_art, Point position, int id)
        {
            this.farbe    = farbe;
            this.feld_art = feld_art;
            this.position = position;
            this.id       = id;

            //
            // Hier werden die Jeweiligen Felder, die zur Laufzeit erstellt werden,
            // den jeweiligen statischen Listen hinzugefügt.
            //
            switch (feld_art)
            {
            case FELD_EIGENSCHAFT.STARTPOSITION: start_felder.Add(this); break;

            case FELD_EIGENSCHAFT.SPIELFELD: spiel_felder.Add(this); break;

            case FELD_EIGENSCHAFT.ZIEL: ziel_felder.Add(this); break;
            }
        }
        public Figur(FARBE farbe, int id)
        {
            this.id        = id;
            this.farbe     = farbe;
            this.bild      = new Image();
            this.wegstecke = new Feld[44];
            //
            // Hier werden die Jeweiligen Figuren, die zur Laufzeit erstellt werden,
            // den jeweiligen statischen Listen hinzugefügt und die Bitmaps für das image ausgewählt.
            //
            switch (farbe)
            {
            case FARBE.ROT:
            {
                spieler_rot.Add(this);
                this.bild.Source = Figur_rot;
                break;
            }

            case FARBE.GELB:
            {
                spieler_gelb.Add(this);
                bild.Source = Figur_gelb;
                break;
            }

            case FARBE.GRUEN:
            {
                spieler_gruen.Add(this);
                bild.Source = Figur_gruen;
                break;
            }

            case FARBE.BLAU:
            {
                spieler_blau.Add(this);
                bild.Source = Figur_blau;
                break;
            }
            }

            bild.Height = figur_höhe;
            bild.Width  = figur_breite;
            bild.HorizontalAlignment  = System.Windows.HorizontalAlignment.Left;
            bild.VerticalAlignment    = System.Windows.VerticalAlignment.Top;
            bild.MouseEnter          += new  System.Windows.Input.MouseEventHandler(bild_MoubseEnter);
            bild.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(bild_Click);

            foreach (Feld startfeld in start_felder)
            {
                if (startfeld.farbe == this.farbe && startfeld.figur == null) // In diesem IF Block wird einem Freien startfeld für die jeweilige farbe die figur zugewiesen und der Figur das ausgewählte Startfeld.
                {
                    startfeld.figur    = this;
                    this.startposition = startfeld;
                    break;
                }
            }

            Set_Figure_to_Start();
            Init_Wegstrecke();
            this.spiel_startposition = wegstecke[0];
        }
        private static Spieler Ermittle_nächsten_Spieler(FARBE farbe)
        {
            switch (farbe)
            {
            case FARBE.ROT:
            {
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.GELB)
                    {
                        return(spieler);
                    }
                }
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.GRÜN)
                    {
                        return(spieler);
                    }
                }
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.BLAU)
                    {
                        return(spieler);
                    }
                }
                break;
            }

            case FARBE.GELB:
            {
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.GRÜN)
                    {
                        return(spieler);
                    }
                }
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.BLAU)
                    {
                        return(spieler);
                    }
                }
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.ROT)
                    {
                        return(spieler);
                    }
                }
                break;
            }

            case FARBE.GRÜN:
            {
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.BLAU)
                    {
                        return(spieler);
                    }
                }
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.ROT)
                    {
                        return(spieler);
                    }
                }
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.GELB)
                    {
                        return(spieler);
                    }
                }
                break;
            }

            case FARBE.BLAU:
            {
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.ROT)
                    {
                        return(spieler);
                    }
                }
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.GELB)
                    {
                        return(spieler);
                    }
                }
                foreach (Spieler spieler in alle_Mitspieler)
                {
                    if (spieler.farbe == FARBE.GRÜN)
                    {
                        return(spieler);
                    }
                }
                break;
            }
            }
            return(null);
        }
        public static void Clientanfrage(string nachricht)
        {
            //
            // Die Informationen müssen folgendes Schema haben: "Clientanfrage,<Spielername>,<ip>,<farbe>"
            //
            if (nachricht.Count(x => x.Equals(',')) == 2)
            {
                string[]  clientinfo = Konvertiere_in_Stringarray(nachricht, 3);
                IPAddress ip         = IPAddress.Parse(clientinfo[1]);
                foreach (Spieler spieler in alle_Spieler)// Prüfen ob der spieler evtl schon vorhanden ist.
                {
                    if (spieler.ip.Address == ip.Address)
                    {
                        Task.Factory.StartNew((absagen) => { Send_TCP_Packet("Hostabsage", ip); }, ip);
                        return;
                    }
                }

                object result      = false;
                FARBE  clientfarbe = FARBE.LEER;

                switch (clientinfo[2])
                {
                case "rot":
                {
                    result      = Spielerstellenlabel[0].Dispatcher.Invoke(new ClientSpieler(Prüfe_Label_rot), clientinfo[0]);
                    clientfarbe = FARBE.ROT;
                    break;
                }

                case "gelb":
                {
                    result      = Spielerstellenlabel[1].Dispatcher.Invoke(new ClientSpieler(Prüfe_Label_gelb), clientinfo[0]);
                    clientfarbe = FARBE.GELB;
                    break;
                }

                case "gruen":
                {
                    result      = Spielerstellenlabel[2].Dispatcher.Invoke(new ClientSpieler(Prüfe_Label_gruen), clientinfo[0]);
                    clientfarbe = FARBE.GRUEN;
                    break;
                }

                case "blau":
                {
                    result      = Spielerstellenlabel[3].Dispatcher.Invoke(new ClientSpieler(Prüfe_Label_blau), clientinfo[0]);
                    clientfarbe = FARBE.BLAU;
                    break;
                }
                }
                // Prüft ob der slot frei ist und fügt namen dem label hinzu

                if (Convert.ToBoolean(result))
                {
                    new Spieler(clientfarbe, clientinfo[0], SPIELER_ART.NORMALER_SPIELER, ip);
                    Task.Factory.StartNew((Zusagen) => { Send_TCP_Packet("Hostzusage", ip); }, ip);
                }
                else
                {
                    Task.Factory.StartNew((absagen) => { Send_TCP_Packet("Hostabsage", ip); }, ip);
                }
            }
        }