Tack för svar, tänker du att jag ska göra i en array? förstår inte riktigt hur det ska fungera...
Ja du, förstår vad koden gör men inte hur den fungerar... Blir så sjukt besviken på att jag inte fattar...
struct Card* createDeck() {
struct Card* deck = NULL;
deck = (struct Card*)malloc(sizeof(struct Card) * 52);
int currentColor = 0;
for (int i = 0; i < 52; i++) {
deck[i].rank = (enum value)(i % 13);
//färgbyte
if (i != 0 && i % 13 == 0) {
currentColor++;
}
deck[i].color = (enum suite)
currentColor;
}
return deck;
Så ser createDeck ut just nu, fick hjälp av läraren för att få ihop det där. Men jag förstår mig inte på "enum"
Jag har programmerat C/C++ i 15 år och den där loopen gjorde mig lite förvirrad också, så känn dig inte dålig om du inte förstår. Jag hade nog gjort så här istället:
int cardIndex = 0;
for(int c = 0; c < 4; c++)
{
for(int r = 0; r < 13; r++, cardIndex++)
{
deck[cardIndex].rank = (enum value)r;
deck[cardIndex].color = (enum suite)c;
}
}
Rent allmänt är det svårt att läsa andras kod eftersom man tappar så mycket information som personen som skrev koden hade i huvudet.
Läs tex här om vad en enum är.
Och ja, du kan returnera en struct i stil med:
struct Card giefcardplx(struct Card* deck, int index) {
return deck[index];
}