Привет, я работаю над программой, в которой мне нужно инициализировать колоду карт. Я использую структуру для представления карты. Однако я не заполняю это правильно, поскольку я получаю кучу нулей, когда я показываю колоду карт. Я считаю, что моя ошибка в этой строке, но я не уверен:
struct card temp = {"Clubs", value, false};
код:
void initCards(){
int count = 0;
int location = 0;
const int hand = 12;
//add hearts
int value=2;
while( count < hand ){
struct card temp = {"Hearts", value, false};
cards[location] = temp;
value++;
count++;
}
count = 0;
//add diamonts
value = 2;
while( count < hand ){
struct card temp = {"Diamonds", value, false};
cards[count] = temp;
value++;
count++;
}
//add spades
count = 0;
value = 2;
while( count < hand ){
struct card temp = {"Spades", value, false};
cards[count] = temp;
value++;
count++;
}
//add clubs
count = 0;
value = 2;
while( count < hand ){
struct card temp = {"Clubs", value, false};
cards[count] = temp;
value++;
count++;
}
//print the deck
for(int i=0; i<52; i++){
cout << cards[i].type << " " << cards[i].rank << endl;
}
}
Не могу поверить, что я использовал count в качестве итератора ... местоположение было тем, что я намеревался использовать. И поскольку я начал считать с 2, раздача должна быть 13. Иногда вам просто нужно сделать перерыв и вернуться, чтобы поймать ошибки. Это отлично работает:
void initCards(){
int count = 0;
int location = 0;
const int hand = 13;
//add hearts
int value=2;
while( count < hand ){
struct card temp = {"Hearts", value, false};
cards[location] = temp;
value++;
location++;
count++;
}
count = 0;
//add diamonts
value = 2;
while( count < hand ){
struct card temp = {"Diamonds", value, false};
cards[location] = temp;
value++;
location++;
count++;
}
//add spades
count = 0;
value = 2;
while( count < hand ){
struct card temp = {"Spades", value, false};
cards[location] = temp;
value++;
location++;
count++;
}
//add clubs
count = 0;
value = 2;
while( count < hand ){
struct card temp = {"Clubs", value, false};
cards[location] = temp;
value++;
location++;
count++;
}
for(int i=0; i<52; i++){
cout << cards[i].type << " " << cards[i].rank << endl;
}
}