【发布时间】:2020-04-26 21:28:29
【问题描述】:
我正在尝试为我正在制作的游戏创建一副纸牌。为什么我在这里得到错误的结果?该代码应该输出一副 52 张牌中的每张牌。我是结构的新手,但我认为到目前为止我在这段代码上做得很好。是的,我知道有更好的方法来做同样的事情,但我是初学者,所以不要评判我。
int main()
{
struct Card
{
int value;
char suit;
};
Card cards[52]; //Declaring each unique card
for (int i = 0; i < 52; i++)
{
cards[i].value = i % 13; // 13 values
if (cards[i].value == 1) {
cards[i].value = 1;
}
if (cards[i].value == 2) {
cards[i].value = 2;
}
if (cards[i].value == 3) {
cards[i].value = 3;
}
if (cards[i].value == 4) {
cards[i].value = 4;
}
if (cards[i].value == 5) {
cards[i].value = 5;
}
if (cards[i].value == 6) {
cards[i].value = 6;
}
if (cards[i].value == 7) {
cards[i].value = 7;
}
if (cards[i].value == 8) {
cards[i].value = 8;
}
if (cards[i].value == 9) {
cards[i].value = 9;
}
if (cards[i].value == 10) {
cards[i].value = 10;
}
if (cards[i].value == 11) {
cards[i].value = 10;
}
if (cards[i].value == 12) {
cards[i].value = 10;
}
if (cards[i].value == 13) {
cards[i].value = 10;
}
cards[i].suit = i / 13;// 4 suits
if (cards[i].suit == 1) {
cards[i].suit = 'D';
}
if (cards[i].suit == 2) {
cards[i].suit = 'H';
}
if (cards[i].suit == 3) {
cards[i].suit = 'C';
}
if (cards[i].suit == 4) {
cards[i].suit = 'S';
}
}
for (int count = 0; count < 52; count++) {
cout << cards[count].value;
cout << cards[count].suit;
cout << endl;
}
return 0;
}
编辑:
int main()
{
struct Card //struct is a way to store many values on 1 array for example
{
int value;
char suit;
};
Card cards[52]; //Declaring each unique card
for (int i = 0; i < 52; i++)
{
cards[i].value = i % 13; // 13 values
if (cards[i].value == 0) {
cards[i].value = 1;
}
else if (cards[i].value == 1) {
cards[i].value = 2;
}
else if (cards[i].value == 2) {
cards[i].value = 3;
}
else if (cards[i].value == 3) {
cards[i].value = 4;
}
else if (cards[i].value == 4) {
cards[i].value = 5;
}
else if (cards[i].value == 5) {
cards[i].value = 6;
}
else if (cards[i].value == 6) {
cards[i].value = 7;
}
else if (cards[i].value == 7) {
cards[i].value = 8;
}
else if (cards[i].value == 8) {
cards[i].value = 9;
}
else if (cards[i].value == 9) {
cards[i].value = 10;
}
else if (cards[i].value == 10) {
cards[i].value = 10;
}
else if (cards[i].value == 11) {
cards[i].value = 10;
}
else if (cards[i].value == 12) {
cards[i].value = 10;
}
cards[i].suit = i / 13;// 4 suits
if (cards[i].suit == 0) {
cards[i].suit = 'D';
}
else if (cards[i].suit == 1) {
cards[i].suit = 'H';
}
else if (cards[i].suit == 2) {
cards[i].suit = 'C';
}
else if (cards[i].suit == 3) {
cards[i].suit = 'S';
}
}
for (int count = 0; count < 52; count++) {
cout << cards[count].value;
cout << cards[count].suit;
cout << endl;
}
return 0;
}
【问题讨论】: