Laden...

Ermitteln, ob in einem Array mehrere aufeinanderfolgende Werte (auch verwürfelt) enthalten sind

Erstellt von stephh vor 11 Jahren Letzter Beitrag vor 11 Jahren 3.100 Views
Thema geschlossen
S
stephh Themenstarter:in
9 Beiträge seit 2011
vor 11 Jahren
Ermitteln, ob in einem Array mehrere aufeinanderfolgende Werte (auch verwürfelt) enthalten sind

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.

  1. Es soll geprüft werden ob sich Zahlen von 1-5 oder 2-6 enthalten sind für eine große Straße - mir fehlt hier der Befehl um ein Array auf unterschiedliche Zahlen zu prüfen.
    Folgender Ansatz:

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;

  1. Für die kleine Straße würde ich gerne folgendes festlegen, ich möchte prüfen ob vier zahlen aufeinander folgen, und die Summe dieser vier aufeinander folgenden Zahlen ermittelt wird um diese dann durch 4 zu teilen und zu schauen ob das der Mittelwert der Folge ist.
    Wie bekomme ich hier aber die Prüfung mit der Summe hin? Habe hier leider keinen Ansatz.

Hilfe 😉 !

C
112 Beiträge seit 2009
vor 11 Jahren

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

4.938 Beiträge seit 2008
vor 11 Jahren

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

Hinweis von herbivore vor 11 Jahren

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.

Thema geschlossen