Код: Выделить всё
int dealer_drawing(vector& main_deck, vector& deck){
int total = total_value(deck);
while(true) {
for(Card& card : deck) {
while(total 21 && card.value == 11) { // Big aces
card.value = 1;
total = total_value(deck);
continue;
}
else if (total >= 21){ // Exits while loop in case of bust
break;
}
}
}
return total;
}
< /code>
[list]
[*]main_deck[*]
Код: Выделить всё
total_value()[*]
Код: Выделить всё
draw_card()[*] Я создал структуру с названием Card , а карта имеет костюм , face и значение . Значение является самообъяснением. card.face == 4 проверяет, является ли карта Ace.
[/list]
Я почти уверен, что все мои вспомогательные функции работают, как и ожидалось. Я обнаружил, что иногда дилер переживает туз, оцененный в 11 лет, но туз не понижается до 1. Иногда дилер проиграет игру, потому что у них низкий туз (например, они проиграли со значением 13), но их общая сумма составляла менее 16 лет, поэтому они должны были продолжать рисовать после чтения для туза. Я думаю, что дилер также иногда застрял в каком -то бесконечном цикле, где общее количество никогда не возвращается к основной функции, и программа просто ничего не делает.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... kjack-code
Мобильная версия