我幾乎完成了我的二十一點遊戲,但我在添加整數卡時遇到了問題。正如你所看到的,我打印這些卡片並顯示卡片的價值,第二個值是兩張卡片的總和。我只是想打印總和,但由於某種原因,我無法擺脫第一張牌的價值。而且經銷商沒有得到他的卡片,爲什麼?我不知道如何添加整數並在我的二十一點遊戲中打印它們,C
我遇到的第二個問題是,當其中一名球員獲得一張新牌時,我希望將該新牌值添加到該球員的第一筆總和中。
void deal(const Card * const Deck, int value, int size, int size_1, int size_2){
int i, j, length;
char anotherCard[2];
char name1[30];
char name2[30];
int valueName1 = 0, valueName2 = 0, valueDealer = 0;
printf("Name player one > ");
scanf("%s", name1);
printf("Name player two > ");
scanf("%s", name2);
printf("\nWelcome %s and %s, lets begin!\n\n", name1, name2);
getchar();
printf("%s's card:\n", name1);
for (i = 0; i < size; i++){
printf("%5s of %-8s%c", Deck[i].decks, Deck[i].suits, (i + 1) % 2 ? '\t' : '\n');
valueName1 += Deck[i].value;
printf("\nvalue > %d", valueName1);
}
//Name2 deleted
//Dealer deleted
printf("\nDo %s want another card? Y/N > ", name1);
fgets(anotherCard, sizeof(anotherCard), stdin);
fflush(stdin);
printf("\n");
length = strlen(anotherCard);
for (j = 0; j < length; j++){
if (strcmp(anotherCard, "Y") == 0 || strcmp(anotherCard, "y") == 0){
for (i = 6; i < 7; i++){
printf("%5s of %-8s%c", Deck[i].decks, Deck[i].suits, (i + 1) % 2 ? '\t' : '\n');
valueName1 = Deck[i].value;
printf("value > %d", valueName1);
}
}
else
break;
}
return;
}
「擺脫第一張牌的價值」。這是什麼意思,爲什麼需要這樣做?另外,請不要將輸出內容顯示爲圖像,而應將其作爲您問題中的文本。如果您明確指出該輸出的錯誤(例如預期輸出是什麼),這將有所幫助。 – kaylum
你應該在'\ nvalue>%d'後面加'\ n',這樣下一張卡片就可以打印在它自己的一行上。 – Barmar
我覺得現在看起來好多了?如果我們以馬庫斯的卡爲例。 六顆心有價值6,但我不希望它被打印。當馬庫斯得到一張新牌時,只有總和值> 16 ,三個鑽石我要那個值> 3加到第一個值上,(值> 16) – Mallom