Entwickler-Ecke

Sonstiges (.NET) - Fullhouse


darkangel1208 - Mo 30.11.09 17:15
Titel: Fullhouse
Ist eigenntlich nicht weiter schwer, herauszufinden ob in einem Array 2 gleiche und 3 gleiche vorhanden sind. Aber ich kann Array.Sort() aus anderen Gründen nicht nutzen.

Das Dumme nun, entweder muss ich irgendwie anders sortiren außer mit Array.Sort oder
ich muss das i aus meiner foreach-schleife noch unterbringen.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
public int fullhouse(int[] wurf)    // Berechnet das Fullhouse von Kniffel
{
     int zaehler = 0;
     foreach (int i in wurf.OrderBy(n => n))
     {
          zaehler = ( ((wurf[0] == wurf[1]) && (wurf[2] == wurf[4])) ||  // der Fall 2,2,3,3,3 oder 2,2,2,2,2
                      ((wurf[0] == wurf[2]) && (wurf[3] == wurf[4])) )   // der Fall 2,2,2,3,3
                         ? zaehler + 1 
                         : zaehler;
     }
     return (zaehler==1) ? 25 : 0;
}


Chryzler - Mo 30.11.09 18:53


C#-Quelltext
1:
2:
3:
4:
public int fullhouse(int[] wurf)
{
    return wurf.Distinct().Count() == 2 ? 25 : 0;
}

Sollte doch eigentlich so klappen oder?


Kha - Mo 30.11.09 19:15

user profile icondarkangel1208 hat folgendes geschrieben Zum zitierten Posting springen:
Aber ich kann Array.Sort() aus anderen Gründen nicht nutzen.
Sollten es die Gründe aus diesem [http://c-sharp-forum.de/viewtopic.php?t=96258] Thread sein, dürfte sich das Problem mittlerweile erübrigt haben ;) .