Hier ist mein Code, der einen Fehler mit Cannot convert type "int" to Cards.Suits
und
Cannot convert type "int" to Cards.Rank
Der Kartenkonstruktor ist
%Vor%Nun sind die Anzüge enum und Rank enum wie ein reguläres Kartenspiel, beginnend bei ACE = 1 usw. und Anzüge sind DIAMANTEN, CLUBS, HEARTS, SPADES. Kann mir jemand sagen, warum ich den obigen Fehler bekomme. Der folgende Code entnahm einem Buch. Danke!
* BEARBEITEN
%Vor%Entsprechend Ihrer Enum-Deklaration liegt Suit im [0..3] -Bereich, während Ränge im [1..13] -Bereich liegen (achten Sie darauf, dass Ränge nicht auf Null basieren), also die innere for-Schleife sollte korrigiert werden:
%Vor%Ich werde sehen, es wird einen anderen Fehler bekommen "Index war außerhalb der Grenzen des Arrays"
Wenn suitVal = 0 und rankVal = 0, Karten [suitVal * 13 + rankVal - 1] = -1, die außerhalb des Array-Index liegen.
Das läuft gut aber korrigiere das
%Vor%Hier
%Vor%in Karten [suitVal * 13 + rankVal - 1]
[suitVal * 13 + rankVal - 1] = [0 * 13 + 0-1] = [-1]! Hoppla!
und in Ihrem prgm:
%Vor%