korrektor
-
hallo zusamen
ich habe versucht , eine aufgabe zulösen ,,aber ich komme nicht ganz klar damit ,
es ist ganz nett von ihnen ,,wenn was falsches gibt in mein quellecode :Erstellen Sie eine Windows-Konsolenanwendung in C, die mindestens folgende Funktionalität besitzt:
Der Anwender bekommt aus einem Kartenspiel 5 Kartenwerte und einen Kartenwert des Stapels, die alle per „Zufall“ aus einem Kartenspiel mit 32 Karten gezogen wurden, angezeigt.
Der Anwender kann nun die Nummer einer seiner Kartenwerte zum „Auslegen“ eingeben oder durch Eingabe einer 0 eine weitere Karte „aufnehmen“.
Verstößt der Anwender bei seiner Eingabe gegen die Spielregeln wird diese nicht akzeptiert.
Per „Zufall“ werden nun die nächsten Karten des Stapels und gegebenenfalls die aufgenommene Karte aus dem restlichen Kartenspiel ermittelt.
Der neue Kartenwert des Stapels und die verbleibenden/hinzugekommenen Kartenwerte des Anwenders werden angezeigt.
Der Vorgang wird so lange wiederholt bis der Anwender seine letzte Karte ausgelegt hat (gewonnen!) oder die letzte Karte des Kartenspiels gezogen wurde (verloren!).Spielregeln „Mau Mau“ (einfache Form):
Mau-Mau ist ein Auslegespiel. Gewonnen hat, wer zuerst alle seine Karten abspielen konnte. Der Gewinn wird mit einem Ausruf „Mau-Mau!“ kundgetan. Die übrigen Spieler spielen meist das Spiel zu Ende. Zu Beginn erhält jeder Spieler die gleiche Anzahl Karten (oft fünf oder sechs), die er verdeckt – als Kartenfächer – auf seine Hand nimmt. Die restlichen Karten werden verdeckt als Talon (Stapel) abgelegt. Die oberste Karte des Talons wird offen danebengelegt.
Reihum legt nun jeder Spieler eine seiner Karten offen auf die nebenliegende Karte – wenn dies möglich ist. Möglich ist dies, wenn die abzulegende Karte in Kartenwert oder Kartenfarbe mit der obersten offen liegenden Karte übereinstimmt. Auf die Pik 10 darf also entweder eine andere Pik-Karte oder eine andere 10 gelegt werden. Kann oder will ein Spieler keine Karte ablegen, so muss er eine Karte vom Talon ziehen und muss warten, bis er erneut an der Reihe ist. Ist der Talon irgendwann aufgebraucht, so werden die abgelegten Karten, außer der obersten sichtbaren, erneut als Talon ausgelegt. Sie werden vorher noch gemischt.
Auf den Grundregeln aufbauend wird Mau-Mau immer mit weiteren Regeln gespielt. In jeder Mau-Mau-Variante gibt es Kartenwerte von besonderer Bedeutung für den Spielverlauf.
7: Nächste Person muss 2 Karten ziehen oder selber eine 7 legen (wird eine weitere 7 gelegt, muss der nächste Spieler dann 4 Karten aufnehmen, der übernächste 6 etc.).
ASS: Nächste Person setzt aus (anstatt auszusetzen darf ein weiteres Ass gelegt werden und der nächste Spieler setzt aus).
BUBE: Kartenfarbe wünschen (kann auf jede andere Farbe gelegt werden, aber nicht auf einen anderen Buben, „Bube auf Bube stinkt“).
-
/*
* File: Kartenspiel.cpp
* Author: d0zer
*
* Created on 18. Juni 2011, 12:15
*/#include "Kartenspiel.h"
using namespace std;Kartenspiel::Kartenspiel() {
for (int reihe = 0; reihe <= 3; reihe++) //Schleife durch Reihe
{
for (int zeile = 0; zeile <= 7; zeile++) //Schleife durch Zeile der jeweiligen Reihe
{
Deck[reihe][zeile] = 0; //Setze Slot auf 0
}
}
srand(time(0)); //Zufallsgenerator für die Zahlen
}//Methode zum Karten mischen
void Kartenspiel::mischen() {int reihe;
int zeile;
//Karten mischen
for (int card = 1; card <= 32; card++) {
do {
reihe = rand() % 4;
zeile = rand() % 8;
} while (Deck[reihe][zeile] != 0);
Deck[reihe][zeile] = card;
} cout << endl << "Karten gemischt!" << endl;//gemischte Karten ausgeben
string farbe[4] = {"Herz", "Pik", "Kreuz", "Karo"};
string wert[8] = {"Sieben", "Acht", "Neun", "Zehn", "Bube", "Dame", "Koenig", "Ass"};//gemischte Karten ausgeben
for (int card = 1; card <= 32; card++) {
for (int reihe = 0; reihe <= 3; reihe++) {
for (int zeile = 0; zeile <= 7; zeile++) {
if (Deck[reihe][zeile] == card) {
cout << setw(5) << right << wert[zeile] << " von " << setw(8) << left << farbe[reihe] << ( card % 2 == 0 ? '\n' : '\t' );
}
}
}
}
}Kartenspiel::~Kartenspiel() {
}
-
sam11007 schrieb:
hallo zusamen
hallo
wen zusamen?
*SCNR*sam11007 schrieb:
es ist ganz nett von ihnen ,,wenn was falsches gibt in mein quellecode :
ja, so sind wir nun einmal, durch und durch nett.(von der einen oder anderen ausnahme abgesehen :D, will mal keinen namen nennen, jeder weiß wer gemeint ist
)
mit was falsches in deine quellcode hamwa aber keine schuld dranne, du.
-
ich wollte fragen ob mein quellecode stimmt wie oben gegeben ,
-
Es wäre auch ganz nett von dir, wenn du den Code in Code-Tags packst.
Geht ganz einfach: Code mit der Maus markieren und dann auf den C-Button unter demklicken.
Du als Mitglied kannst deine alten Beiträe auch editieren.
Und nutze ruhig mal die Vorschau.
-
Welche Sprache soll das denn sein? C oder C++?
Laut Aufgabe soll es C sein.
Da gibt es kein using, cout und ::
-
in c
-
Kartenspiel::mischen()
das ist aber c++ syntax.
also schon mal falsch, wenn der code in c sein soll.
-
sam11007 schrieb:
string farbe[4] = {"Herz", "Pik", "Kreuz", "Karo"}; string wert[8] = {"Sieben", "Acht", "Neun", "Zehn", "Bube", "Dame", "Koenig", "Ass"};
ich würde eine andere datenstruktur wählen, z.b. sowas in der art:
typedef enum Kartenfarbe { karo=7, herz, pik, kreuz } kartenfarbe; typedef struct tagKarte { char* name; int wert; // 7, 8, 9, 10, 10(Dame, König), 20(Bube), 11(Ass) kartenfarbe farbe; } karte_t; int main ( void ) { karte_t talon[32] = { { "sieben", 7, karo, }, { "sieben", 7, herz, }, { "sieben", 7, pik, }, { "sieben", 7, kreuz, }, { "acht", 7, karo, }, { "acht", 7, herz, }, { "acht", 7, pik, }, { "acht", 7, kreuz, }, // ... usw. }; return 0; }
ist zwar anfangs ein wenig mehr arbeit wegen der initialisierung, später aber
lässt sich damit einiges einfacher handhaben, wie z.b. mischen, eine karte per 'zufall' ziehen, etc.