Karten-Spiel Mau-Mau



  • Hallo Leute,

    ich bin zwar neu werde nun aber hier viel lesen und auch schreiben und einiges zu lernen hihi.

    Naja jedenfalls soll ich für die Schule nun ein Mau-Mau Spiel also Konsolebasierend basteln aber ich hänge leider schon bei der Erstellung der 32 Karten fest da diese nicht alle richtig erstellt werden und redundante Daten auftreten.

    Mich würde es freuen wenn sich mal jemand meinen Code anschauen könnte ich habe es auch schon ein paar mal versucht. Ich finde nur keinen Fehler und wenn ich einen finde behebt er mein Problem nicht hihi.

    Also hier der Code würde mich sehr freuen.

    Bedenkt aber bitte das ichn Neuling bin. Also wenn ihr mir i-welche Tipps noch geben wollte freue ich mich sehr aber dann bitte mit ner kleinen Erklärung was an eurer Idee dann so gut ist und wie genau sie abläuft.

    #include <iostream>
    #include <conio.h>
    #include <string>
    
    using namespace std;
    
    int set_Karten2(int, int);
    
    class Karten {
    
    private:
    
    public:
    
    	int ub;
    	int ub2;
    	int Klasse;
    	int Wert;
    	void set_Karten();
    	void get_Karten();
    
    }K[33];
    
    int main() {
    
    	int abfrage;
    	int timer=0;
    
    	for (int i=0;i<32;i++) {
    	timer=i-1;
    	do {
    	for (int c=0;c<32;c++) {
    	K[i].set_Karten();
    	cout<< i << endl;
    	abfrage = set_Karten2(i, timer);
    	}
    	}while(abfrage==1);
    
    	cout << "#######" << endl;
    	cout<< i << endl;
    	cout << "#######" << endl;
    	}
    
    	for (int i=0;i<32;i++) {
    
    	K[i].get_Karten();
    
    	}
    
    	_getch();
    
    }
    
    void Karten::set_Karten() {
    
    	ub2=1;
    
    	do {
    
    	ub=0;
    	Klasse = rand()%4+1;
    
    	Wert = rand()%13+1;
    
    	if (Wert==2 || Wert==3 || Wert==4 || Wert==5 || Wert==6) {
    
    		ub=1;
    
    	}
    
    	}while(ub==1);
    
    }
    
    void Karten::get_Karten() {
    
    	if (Klasse==1) {
    
    		cout << "Kreuz ";
    
    	}
    	else	{
    		if (Klasse==2) {
    
    			cout << "Pik ";
    
    		}
    		else	{
    			if (Klasse==3) {
    
    				cout << "Karo ";
    
    			}
    			else	{
    				cout << "Herz ";
    			}
    		}
    	}
    
    	cout << Wert << endl;
    
    }
    
    int set_Karten2(int t, int timer) {
    
    	int abfrage=0;
    
    	if (K[t].Wert==K[timer].Wert) {
    		cout << K[t].Wert;
    		if (K[t].Klasse==K[timer].Klasse) {
    
    			abfrage=1;
    
    		}
    	}
    
    	return abfrage;
    }
    


  • Hab den Quelltext nur überflogen.

    Mit wie vielen Karten spielst du Mau-Mau 😕
    Im Quelltext willst du einmal mit 32 und dann mit 52 Karten spielen 😕

    Dann, ich kann mich irren, entweder Zeile 64 oder 66 solltest du dir ansehen.
    Eine der beiden sollte anders aussehen?

    Nimm bei den Code-Tags statt Code => C++ 😉

    Viel Spass
    f.-th.



  • hmmmm wie kommst du auf 52 finde keine 52 im Quellcode ne also es sollen natürlich 32 sein.

    Was soll an Zeile 64 bzw. 66 falsch sein ist ja nur das Generieren von Zufallszahlen.

    Es tut mir leid aber mit:

    Nimm bei den Code-Tags statt Code => C++
    

    kann ich ich irgendwie Garnichts anfangen sorry.



  • Multipliziere mal 4 mit 13 😉

    Üblicherweise erstellt man ein zufälliges Set nach folgendem Muster:
    1. Initialisierung (d.h. Wertzuweisung mittels einer Schleife)
    2. Mischen (d.h. zufällig zwei Elemente tauschen - auch am besten in einer Schleife über alle Elemente).

    Damit hier im Forum dein Code als C++ erkannt wird, nimm statt der allgemeinen Code-Tags besser die C++-Tags.



  • Tut mir leid hatte einen anderen Kartenspiel-Quellcode mit einer anderen Lösung in Erinnerung. 😡
    Dein Quelltext "mischt" ja die 2 bis 6, ignoriert sie dann ja. Also okay.

    "C++" ist der Button unten rechts direkt neben "Code"


Anmelden zum Antworten