2011-01-17 30 views
0

Ich folgte einige der Antworten hier auf der Website, aber ich habe immer noch ein Problem: nachdem ich meinen Vektor von Karten erzeugen, wenn ich das Programm ausführen, sind die Kartennummern völlig aus: erste Karte: 100 zweite Karte: 22 dritte: 0 vierte: 0 fünfte: 28 usw.BlackJack Karten Vektor C++/Zufallszahlen

Dies ist mein Code:

enum numar {AS=11 ,DOI=2, TREI=3, PATRU=4, CINCI=5, SASE=6, SAPTE=7, OPT=8, 
NOUA=9, ZECE=10, VALET=10, DAMA=10, REGE=10, 
PrimulNumar=AS, UltimulNumar=REGE}; 
enum culoare {INIMA, CAROU, NEGRU, TREFLA, PrimaCuloare=INIMA, 
UltimaCuloare=TREFLA}; 



int k=0; 
     for (int r = PrimulNumar; r <= UltimulNumar; ++r) { 
       for (int s = PrimaCuloare; s <= UltimaCuloare; s++) { 
         pc[k]= new Carte((numar)r, (culoare)s, false); 
         k++; 

Was soll ich tun?

+0

Der Code ist auf Rumänisch, aber ich denke, Sie werden es verstehen. –

+0

Zunächst bin ich mir nicht sicher, ob es Sinn macht, 2 Einträge im Enum mit dem gleichen Wert zu erstellen. Könnten Sie bitte erklären, was Sie zu tun versuchen? – Elalfer

+1

@Elalfer: 'enum numar' enthält Kartenränge. Ace = 11, two = 2 usw. Zehn == jack == queen == king == 10. –

Antwort

5

So ... ersetzen Aufzählungen mit Werten:

int k = 0; 
for (int r = 11; r <= 10; ++r) 
    for (int s = 0; s <= 3; ++s 
    { 
    } 

das Problem?

+0

Ja, ich sehe das Problem. Wie kann ich das trotzdem machen? Ich nahm die ideea von hier: http://stackoverflow.com/questions/2941890/c-enum-in-foreach –

+0

Beachten Sie, dass sie keine Werte für ihre enums festgelegt haben. Das ist ein wichtiges Detail, das das Ergebnis total verändert. Wenn Sie Probleme haben, warum zu erkennen, überprüfen Sie die Enums in C++: http://enel.ucalgary.ca/People/Norman/enel315_winter1997/enum_types/ –

+0

Aber ich verstehe nicht, wie Sie zehn Jack Queen und den gleichen Wert geben der König ... Deshalb habe ich versucht, Werte zu geben. –