Tipp zum Vergleich von vier Strings
-
Es handelt sich um das Vormenü zu einem animierten Spiel. Der User darf an vier Spielern über die GUI konfigurieren und darf sich die Farben der Spieler über vier verschiedene Combo-Boxen aussuchen.
Inhalte der Combo-Boxen (jeweils blau, gelb, grün, rot)! Ich möchte über einen Button-Eventhandler verhindern (bzw. abfangen), dass der GUI User beispielsweise zwei gleiche Farben aussucht. Wie ich auf die Elemente zugreifen kann, ist keine Frage - es geht einfach nur darum, wie man dies am einfachsten sicherstellen kann.
Zusätzlich soll es möglich sein, dass der Spieler bei zwei Spielern keine Farbe auswählt, dann wählt er "keine" aus. Mit meinem bisherigen Lösungsansatz wird dies leider nicht berücksichtigt, weil der Eventhandler nur dann keinen Fehler ausgibt, wenn alle vier Werte unterschiedlich sind (bei 2 x "keine" trifft das nicht zu).
[cs] //vereinfachter Pseudocode private void textButton_onPress(object obj, EventArgs e) { string farbe1, farbe2, farbe3, farbe4; if(farbe1 != farbe2 && farbe1 != farbe3 && farbe1 != farbe 4 && farbe2 != farbe3 && farbe2 != farbe4 && farbe3 != farbe4) { //dann passiert irgendetwas } else forms.add(new MessageBox("tahoma", "Jeder Spieler braucht eine andere Farbe"); //was hier noch fehlt: wenn farbe3 und farbe 4 == "keine", muss es irgendwie abgefangen werden //kann man das auch schöner + effizienter programmieren?? } [/cs]Ich freue mich über Eure Antworten.
Grüße,
GP
-
wenn du 4 farben hast, dann nimm erstmal ein array für die farben. dass du dann hast
FARBE farben[4];
dann kannst du mittels einer for-schleife über alle farben iterieren und wenn die aktuelle farbe ungleich "keine" ist, dann vergleichst du mit allen anderen Farben. Wenn dann zhwei farben gleich sind, brichst du die schleife ab und gibst nen fehler aus. gabs keinen fehler, is alles richtig gelaufen.