C# if-Abfrage Kniffel?
bool IstKleineStrasse(int[] wuerfelAugen) {
int[] anzahlAugenzahlen = new int[6];
string zahlenfolge = "";
for (int i = 1; i <= 6; i++) {
foreach (int anzahlAugenzahl in wuerfelAugen) {
if (anzahlAugenzahl == i) {
if (zahlenfolge.IndexOf(i.ToString()) == -1) {
zahlenfolge += i.ToString();
}
}
}
}
//}
return ((zahlenfolge == "1234") || (zahlenfolge =="2345") || (zahlenfolge == "3456"));
Es geht um die kleine Straße beim Kniffel. Wenn eine kleine Straße gewürfelt wurde soll es angezeigt oder zurückgesetzt werden. Bei der großen Straße, die ich jetzt hier nicht mit einbinden werde ist der Unterschied, dass alle Würfel gebraucht werden. Hier jedoch bleibt einer übrig.
3 Antworten
Diese Funktion wird immer false ausgaben da du einen string mit 6 zahlen mir einem string der 4 zahlen vergleichst und die strings somit nicht gleich seien können, das beste was du hier für die überprüfung nutzen kannst ist String.Contains hier währe ein beispiel: String.Contains(zahlenfolge, "1234")
Woher ich das weiß:Hobby – Ich beschäftige mich schon seit ich jung bin mit Computern
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren
private static bool istKleineStrasse(int[] wuerfelAugen)
{
if (new int[] { 1, 2, 3, 4 }.All(wuerfelAugen.Contains)
|| new int[] { 2, 3, 4, 5 }.All(wuerfelAugen.Contains)
|| new int[] { 3, 4, 5, 6 }.All(wuerfelAugen.Contains))
return true;
return false;
}
Wenn schon so kruxig, dann bitte richtiger Murks:
public static bool IsLittleStreet(byte[] dices)
{
_ = dices ?? throw new ArgumentNullException(nameof(dices), $"Argument {nameof(dices)} must not be null.");
return (((dices.IndexOf(1) > -1) && (dices.IndexOf(2) > -1) && (dices.IndexOf(3) > -1) && (dices.IndexOf(4) > -1))
|| ((dices.IndexOf(2) > -1) && (dices.IndexOf(3) > -1) && (dices.IndexOf(4) > -1) && (dices.IndexOf(5) > -1))
|| ((dices.IndexOf(3) > -1) && (dices.IndexOf(4) > -1) && (dices.IndexOf(5) > -1) && (dices.IndexOf(6) > -1)));
}
Ist nur schnell ohne IDE zusammengeschrieben, um den Gedanken zu zeigen.