Bien, resulta que el formato de salida debe ser algo como:
"BLACK JACK
Tus cartas: 1 3 J 2 8
Valor total: 25
Deseas otra carta?"
Según este ejemplo, la primera jugada debe mostrar las dos primeras cartas, el valor total y la pregunta de coger otra carta, y al decir que sí, lo mismo, pero con la siguiente. En definitiva, que mientras aparece el texto de alrededor, primero se muestran dos cartas y luego de una en una.
Mi idea al hacer el código fue poner el primer texto de modo forzado, directamente con printf y punto, y las siguientes cartas ya en un do while. Esto es lo que tengo hecho de momento:
Código
if(baraja[0]==11){ val=10; }else if(baraja[0]==12){ val=10; }else if(baraja[0]==13){ val=10; }else{ val=baraja[0]; } cartas=cartas+val; for(i=1;cartas<21;i++){ if(baraja[i]==11){ val=10; }else if(baraja[i]==12){ val=10; }else if(baraja[i]==13){ val=10; }else{ val=baraja[i]; } cartas=cartas+val; }
La teoría es buena, obviando el hecho de que de este modo no se muestre el resto del texto, sin embargo, lo que me sale es algo como:
"BLACK JACK
Tus cartas: 1 3
J lor total: 4
2 lor total: 14
Valor total: 16"
Es decir, que sobreescribe la línea de valor total de la anterior tirada.
Una cosa que se me ocurrió fue meter todo el texto en un for o un do while, que borrase todo y lo volviera a escribir, aunque se me presentaban dos problemas: el primero, no saldrían las dos primeras cartas de golpe, y el segundo, que probablemente sólo saliera la última carta, pese a que cambie el valor total.