Вы должны использовать генераторы Python. Кроме того, печать замедляет процесс.
Ниже приведено несколько примеров использования генераторов:
Просто относитесь к каждому тузу как 11. Затем, когда значение больше 21, вычтите 10 из вашей суммы для каждого туза в вашей руке.
No matter what every ace should be counted to sum value as 11, then when the total sum has reached over 21 subtract 10 from hand, but the thing is you must make sure you keep a count of how many times you subtract 10 and how many times you add 11( an ace),
add 11 >= subtract 10 -must always be satisfied
alorithm example:
int sum=0;
int ace=0;
int subtract=0;
while(!busted or !stay)
{
Hitme(value);
if(value=11)ace++;
sum+=value;
if(sum>21)
{
if(ace>=1)
{
if(ace>=subtract)
{
sum-=10
subtract++;
}
else
{
busted;
}
}
else
{
busted;
}
}
else
{
hit or stay;
//of course if sum== 21 then force stay
}
}
Проблема в том, что он не определен: вы можете считать (как я понимаю правила) туза как 1 или 11. Но вы знаете, что вы не будете считать его как 11 каждый раз, потому что вы будете бюст.
Единственное решение, которое я думаю, состоит в том, чтобы вычислить оценку для каждого возможного значения туза, где сумма <= 21.
Вы будете использовать только 1 туз для 11 очков. Таким образом, все, кроме последнего туза, рассчитываются как 1, и если набрано 10 или меньше очков, последний туз считается как 10.