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(); }
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; } }
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); } } }