Hallo,
habe da eine Frage zur richtigen Array auslesung.
Ich habe ein Array mit 5 Zahlen, diese enthalten Zufallszahlen von 1-6. Nun möchte ich folgendes aus diesem Array auslesen.
Random _rand = new Random(DateTime.Now.Millisecond);
int[] mWuerfel = new int[5];
for (int i = 0; i < mWuerfel.Length; i++)
{
mWuerfel[i] = _rand.Next(1, 7);
}
Array.Sort(mWuerfel);
if( (((mWuerfel.Min() == 1 && mWuerfel.Max() == 5) || (mWuerfel.Min() == 2 && mWuerfel.Max() == 6)) && "PRÜFEN OB ALLE UNTERSCHIEDLICH" == true) grStr == true;
Hilfe 😉 !
Hi,
geh doch Dein sortiertes Array [1,2,3,4,5] rückwärts durch und ziehe immer das nächste Element vom aktuellen ab und zähl, wie oft das Ergebnis 1 ist. Dann hast Du gleich eine allgemeingültige Lösung um auf eine Straße zu prüfen. Jetzt musst Du nur gucken, ob viermal das Ergebnis 1 war oder 5 mal. Achte auf die Indizes!
Grüße
Christian
Hallo stephh,
ich gehe mal davon aus, daß du "Kniffel" meinst.
Viel einfacher ist es, wenn du das Array (aufsteigend) sortierst (Array.Sort) und dann bei einer großen Straße einfach in (je) einer Schleife die Indizes überprüfst (1-5 und 2-6).
Oder aber die Anzahl der gleichartigen Würfelwerte in einem Array (count[6]) bestimmst.
Und dann bei einer großen Straße in (je) einer Schleife überprüfst, ob die Anzahl == 1 ist und bei einer kleinen Straße von 1-4, 2-5 sowie 3-6 überprüfst, ob die Anzahl jeweils ≥ 1 ist.
Schau auch mal in Kniffelspiel: Ermitteln, was geworfen wurde (z.B. Full House), ohne alle Kombinationen abzufragen
Das Umsetzen und Verständnis so einfacher Algorithmen fällt - zumindest nachdem die obigen Tipps gegeben wurden - unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
Über den Link finden sich zudem Lösungen für alle Kniffel-Kombinationen und nicht nur für die Straße. Entsprechend ist der Code etwas anders und allgemeiner aufgebaut als es Code wäre, der nur dazu dient, eine Straße zu ermitteln.