Ecco il mio questo è il codice che gettano un errore che dice Cannot convert type "int" to Cards.Suits
e Cannot convert type "int" to Cards.Rank
Come convertire int in enum value?
private Card[] cards;
public Deck()
{
cards = new Card[52];
for (int suitVal = 0; suitVal < 4; suitVal++)
{
for (int rankVal = 0; rankVal < 14; rankVal++)
{
cards[suitVal * 13 + rankVal - 1] = new Card((Suits)suitVal, (Rank)rankVal);
}
}
}
il costruttore carte è
public readonly Suits suit;
public readonly Rank rank;
public Card(Suits newSuit, Rank newRank)
{
suit = newSuit;
rank = newRank;
}
Ora la Suits enum e Rank enum sono come un normale mazzo di carte a partire da ACE = 1 e così via e abiti sono DIAMANTI, CLUB, CUORI, SPADE. Qualcuno può dirmi perché sto ottenendo l'errore di cui sopra. Il seguente codice stava prendendo da un libro. Grazie!
* EDIT
public enum ranks
{
ACE = 1,
TWO,
THREE,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT,
NINE,
TEN,
JACK,
QUEEN,
KING,
}
public enum Suit
{
DIAMOND,
CLUB,
HEART,
SPADE,
}
si può mostrare la definizione per '' Suits' e Rank'? –
Non è un duplicato come tale metodo viene utilizzato e restituisce ancora un errore – MikaAK
Stai usando '(Suits) suitVal' ma l'enum che hai postato è in realtà chiamato' Suit'. –