Auswertung von Pokerblättern



  • Hallo!

    Ich kann mit den bedien Links leider ncht viel anfangen.

    Der erste Link zeigt glaub ich wie man Zufallskarten austeilt.

    Der 2. Link hört sich so an als ginge es um Java und nicht um C. Der Quelltext sieht zwar nach C aus, gibt es da auch 3 Karten und Joker, was beim Texas Hold'em ncht der Fall ist.

    Meine aktuelle Umsetzungsidee lautet:
    Ich werde 10 Funktionen schreiben die checken, ob das beste Blatt dabei ist. Heißt es geht los mit dem Royal Flush. Sollte jemand den Royal Flush haben, bekommt die Funktion einen Rückgabewert (0=verloren, 1=Draw, 2=Gewonnen). Sollte eine Funktion einen dieser Rückgabewerte liefern, werden die anderen Funktionen (Vierling, Full House,...) abgebrochen (bevor sie gestartet wurden).

    Ich werd mich erstmal langsam einarbeiten, und fange ganz unten an. Heißt mit der High Card. Mit anderen Worten: Ich muss jeweils die 5 besten Eigenkarten und die 5 besten Gegenkarten sortieren (As bekommt vorher den Wert 14 statt 1). Danach müssen jeweils die 5 Karten von oben nach unten verglichen werden und geguckt werden ob irgendwann eine Karte höher ist als die andere. Falls das der Fall ist hat jemand gewonnen. Falls nicht: Draw.

    Das erste was ich also benötige ist eine Funktion die mir jede 1 in eine 14 umwandelt (Asse). Diese hab ich soweit fertig:

    In der Mainfunktion:

    assup(&ek1z,&ek2z,&gk1z,&gk2z,&tk1z,&tk2z,&tk3z,&tk4z,&tk5z);
    
    int assup(int *po1, int *po2, int *po3, int *po4, int *po5, int *po6, int *po7, int *po8, int *po9)
    {
    	if (*po1==1)
    		*po1=14;
    	if (*po2==1)
    		*po2=14;
    	if (*po3==1)
    		*po3=14;
    	if (*po4==1)
    		*po4=14;
    	if (*po5==1)
    		*po5=14;
    	if (*po6==1)
    		*po6=14;
    	if (*po7==1)
    		*po7=14;
    	if (*po8==1)
    		*po8=14;
    	if (*po9==1)
    		*po9=14;
    return 0;
    }
    

    Jetzt werde ich die Zahlen jeweils sortieren und vergleichen. Wenn ich wieder Probleme habe, werde ich mich melden. Bis dahin nochmal an alle Antwortler: "Vielen Dank für eure Hilfe!!!"



  • Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Noch ein Tipp zum Programmieren (bevor du weiteren Copy & Paste-Code produzierst): schau dir mal arrays und enum(erations) an.
    Damit kannst du dann auch einfacher deine Vergleichsfunktionen schreiben.
    Und such dir ein gutes C-Tutorial aus, damit du vllt. erst einmal mit einer kleineren Aufgabe anfängst.



  • Hallo Th!

    Danke für deine Antwort! Das hab ich natürlich auch probiert, leider stürzt das Programm ab sobald ich es öffne.

    #include <stdio.h>
    
    main()
    {
    	int a=1,b=1,c=1,d=1,e=1,f=1,g=1,h=1,i=1;
    	assup(&a,&b,&c,&d,&e,&f,&g,&h,&i);
    }
    
    int assup(int *po[9])
    {
    	int i;
    	for(i=0;i<=8;i++)
    		if (*po[i]==1)
    			*po[i]=14;
    		return 0;
    }
    

    Kann mir jemand helfen wie das geht?



  • int main (int argc, char ** argv)
    {
       int array[9], i;
       for(i = 0; i < 9; ++i) array[i] = 1;
       assup(array);
    }
    
    int assup(int * po)
    {
        int i;
        for(i=0;i<=8;i++)
            if (*po[i]==1)
                *po[i]=14;
            return 0;
    }
    


  • Hallo!

    Bei mir gehts leider nicht.
    2 errors
    Zeigeroperations ungültig bei

    if (*po[i]==1)
    

    und

    *po[i]=14;
    


  • funktion(int *po)
    {
    	int i;
    	int wert[9];
    	for(i=0;i<9;i++)
    	{
    		wert[i]=*po;
    		po++;
    	}
    	return 0;
    }
    

    ... so funktionierts.



  • so...

    int assup(int *pw)
    {
    	int i;
    	for(i=0;i<9;i++)
    		if (*pw==1) 
    		{
    			*pw=14;
    			pw++;
    		}
    }
    


  • ➡ ➡ http://www.galileo-press.de/openbook/c_von_a_bis_z/ lies dir das mal am besten durch 💡



  • Hallo!

    ich werd mir das Buch die Tage mal ausleihen. Danke für dienen Tip!!!


Anmelden zum Antworten