Bucle while - Ejercicios (3)

Estos ejercicios corresponden a lo explicado en la lección sobre el bucle while.

Estos ejercicios están divididos en cuatro apartados (A, B, C y D). En cada apartado, el objetivo es escribir un programa que simule un juego. Para conseguirlo, se proponen varios ejercicios, que se van acercando progresivamente al objetivo. Cada ejercicio se puede hacer a partir del anterior.

Se pueden consultar unas posibles soluciones.

A. Juego de los veinte

En este apartado se pretende escribir un programa que simule un juego similar al juego de cartas "Las siete y media". En vez de pedir cartas, los jugadores tirarán unos dados cuantas veces quieran y el valor límite es el 20 (gana el que obtiene la puntuación más alta sin superar el límite).

Bucle ej-while (3) - A-1

Escriba un programa que muestre números al azar del 1 al 6 mientras lo pida el usuario.

LOS 20 (1)
Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Tirada: 3

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Tirada: 6

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar: x
Programa terminado.

Bucle ej-while (3) - A-2

Amplíe el programa anterior, haciendo que el programa muestre la suma de los números anteriores.

LOS 20 (2)
Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Tirada: 2 - Suma: 2

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Tirada: 5 - Suma: 7

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Tirada: 4 - Suma: 11

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar: z
Programa terminado.

Bucle ej-while (3) - A-3

Amplíe el programa anterior creando dos jugadores que tiran sus dados simultáneamente. El programa declarará ganador al jugador que haya obtenido más puntos.

LOS 20 (3)
Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar: x
No se ha lanzado ningún dado.
LOS 20 (3)
Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Jugador 1 - Tirada: 2 - Suma: 2
Jugador 2 - Tirada: 2 - Suma: 2

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar: x
¡Empate!
LOS 20 (3)
Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Jugador 1 - Tirada: 6 - Suma: 6
Jugador 2 - Tirada: 3 - Suma: 3

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Jugador 1 - Tirada: 2 - Suma: 8
Jugador 2 - Tirada: 4 - Suma: 7

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:
Jugador 1 - Tirada: 4 - Suma: 12
Jugador 2 - Tirada: 1 - Suma: 8

Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar: a
Ha ganado el jugador 1.

Bucle ej-while (3) - A-4

Amplíe el programa anterior de manera que cada jugador indique de forma independiente si quiere tirar el dado de nuevo.

LOS 20 (4)
Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:

Jugador 1: z
Jugador 2: z

Jugador 1 - Suma: 0
Jugador 2 - Suma: 0
Programa terminado.
LOS 20 (4)
Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:

Jugador 1:
Jugador 2:
Jugador 1 - Tirada: 2 - Suma: 2
Jugador 2 - Tirada: 5 - Suma: 5

Jugador 1:
Jugador 2:
Jugador 1 - Tirada: 4 - Suma: 6
Jugador 2 - Tirada: 3 - Suma: 8

Jugador 1:
Jugador 2: x
Jugador 1 - Tirada: 5 - Suma: 11
Jugador 2 - Suma: 8

Jugador 1:
Jugador 1 - Tirada: 3 - Suma: 14
Jugador 2 - Suma: 8

Jugador 1: a

Jugador 1 - Suma: 14
Jugador 2 - Suma: 8
Programa terminado.

Bucle ej-while (3) - A-5

Amplíe el programa anterior, de manera que el programa declare ganador al jugador que haya obtenido más puntos sin superar 20 puntos.

LOS 20 (5)
Pulse Intro para lanzar el dado. Pulse otra tecla e Intro para terminar:

Jugador 1:
Jugador 2:
Jugador 1 - Tirada: 6 - Suma: 6
Jugador 2 - Tirada: 5 - Suma: 5

Jugador 1:
Jugador 2:
Jugador 1 - Tirada: 4 - Suma: 10
Jugador 2 - Tirada: 6 - Suma: 11

Jugador 1:
Jugador 2:
Jugador 1 - Tirada: 3 - Suma: 13
Jugador 2 - Tirada: 6 - Suma: 17

Jugador 1:
Jugador 2: x
Jugador 1 - Tirada: 2 - Suma: 15
Jugador 2 - Suma: 17

Jugador 1:
Jugador 1 - Tirada: 6 - Suma: 21
Jugador 2 - Suma: 17

Jugador 1: a

Jugador 1 - Suma: 21
Jugador 2 - Suma: 17
Ha ganado el jugador 2.

B. Tragaperras

Bucle ej-while (3) - B-1

Escriba un programa que muestre tres números al azar del 1 al 6.

Tirada: 1 6 4
Pulse Intro para volver a jugar, otra tecla e Intro para terminar:

Tirada: 3 2 3
Pulse Intro para volver a jugar, otra tecla e Intro para terminar: X

Programa terminado.

Bucle ej-while (3) - B-2

Amplíe el programa anterior, haciendo que el programa indique si hay dos o tres números iguales.

Tirada: 1 6 4
No hay números iguales
Pulse Intro para volver a jugar, otra tecla e Intro para terminar:

Tirada: 5 2 5
Hay dos números iguales
Pulse Intro para volver a jugar, otra tecla e Intro para terminar:

Tirada: 3 3 3
Hay tres números iguales
Pulse Intro para volver a jugar, otra tecla e Intro para terminar: X

Programa terminado.

Bucle ej-while (3) - B-3

Amplíe el programa anterior, haciendo que el programa entregue premios y lleve la cuenta del resultado.

Empieza la partida con 1 moneda.

Tirada: 3 3 1
Ha ganado 2 monedas. Ahora tiene 2 monedas.
Pulse Intro para volver a jugar, otra tecla e Intro para terminar:

Tirada: 6 6 6
Ha ganado 5 monedas. Ahora tiene 6 monedas.
Pulse Intro para volver a jugar, otra tecla e Intro para terminar: X

Programa terminado.
Empieza la partida con 1 moneda.

Tirada: 2 1 3
No ha ganado nada. Ahora tiene 0 moneda(s).
Pulse Intro para volver a jugar, otra tecla e Intro para terminar:

Tirada: 6 2 5
No ha ganado nada. Ahora tiene -1 moneda(s).
Pulse Intro para volver a jugar, otra tecla e Intro para terminar: z

Programa terminado.

Bucle ej-while (3) - B-4

Amplíe el programa anterior, de manera que se parezca más al funcionamiento real de una máquina tragaperras.

TRAGAPERRAS
En cada tirada, se le cobrará una moneda.
¿Con cuántas monedas quiere empezar? 3

Empieza la partida con 3 moneda(s).

Tirada: 3 3 1
Ha ganado 2 monedas. Ahora tiene 4 monedas.
Pulse Intro para volver a jugar, otra tecla e Intro para terminar:

Tirada: 6 6 6
Ha ganado 5 monedas. Ahora tiene 8 monedas.
Pulse Intro para volver a jugar, otra tecla e Intro para terminar: X

Ha acabado la partida con 8 moneda(s).
Ha ganado 5 moneda(s).
Programa terminado.
TRAGAPERRAS
En cada tirada, se le cobrará una moneda.
¿Con cuántas monedas quiere empezar? 2

Empieza la partida con 2 moneda(s).

Tirada: 2 1 3
No ha ganado nada. Ahora tiene 1 moneda(s).
Pulse Intro para volver a jugar, otra tecla e Intro para terminar:

Tirada: 5 5 5
No ha ganado nada. Ahora tiene 0 moneda(s).

Ha acabado la partida con 0 moneda(s).
Ha perdido 2 moneda(s).
Programa terminado.
TRAGAPERRAS
En cada tirada, se le cobrará una moneda.
¿Con cuántas monedas quiere empezar? 2

Empieza la partida con 2 moneda(s).

Tirada: 6 6 1
Ha ganado 2 monedas. Ahora tiene 3 moneda(s).
Pulse Intro para volver a jugar, otra tecla e Intro para terminar:

Tirada: 6 5 1
No ha ganado nada. Ahora tiene 2 moneda(s).
Pulse Intro para volver a jugar, otra tecla e Intro para terminar: q

Ha acabado la partida con 2 moneda(s).
No ha perdido ni ganado monedas.
Programa terminado.

C. Operaciones

Bucle ej-while (3) - C-1

Escriba un programa que proponga sumas de números positivos (dos números entre 1 y 100) al usuario y compruebe la respuesta. El programa continuará hasta que se acierten cinco sumas.

OPERACIONES (1)
Escriba el resultado de las siguientes operaciones:
32 + 47 = 79
¡Respuesta correcta!

65 + 42 = 107
¡Respuesta correcta!

6 + 71 = 77
¡Respuesta correcta!

80 + 15 = 95
¡Respuesta correcta!

31 + 95 = 127
¡Respuesta incorrecta!

41 + 27 = 68
¡Respuesta correcta!

Programa terminado.

Bucle ej-while (3) - C-2

Amplíe el programa anterior, haciendo que el programa pida cuántas operaciones se deben acertar para terminar el programa. Al terminar, el programa indicará cuántos intentos han sido necesarios.

OPERACIONES (2)
¿Cuántas operaciones correctas debe contestar para terminar el programa? 0
El número de operaciones debe ser mayor que cero.
¿Cuántas operaciones correctas debe contestar para terminar el programa? 1

Escriba el resultado de las siguientes operaciones:
7 + 78 =  86
¡Respuesta incorrecta!

91 + 63 = 154
¡Respuesta correcta!

Ha acertado 1 operación en 2 intentos.
Programa terminado.
OPERACIONES (2)
¿Cuántas operaciones correctas debe contestar para terminar el programa? 2

Escriba el resultado de las siguientes operaciones:
7 + 78 =  86
¡Respuesta incorrecta!

91 + 63 = 154
¡Respuesta correcta!

78 + 21 = 99
¡Respuesta correcta!

Ha acertado 2 operaciones en 3 intentos.
Programa terminado.

Bucle ej-while (3) - C-3

Amplíe el programa anterior, haciendo que el programa indique cuántos segundos ha tardado en contestar correctamente las operaciones.

OPERACIONES (3)
¿Cuántas operaciones correctas debe contestar para terminar el programa? 2

Escriba el resultado de las siguientes operaciones:
20 + 24 = 44
¡Respuesta correcta!

89 + 89 = 178
¡Respuesta correcta!

Ha tardado 7.0 segundos en acertar 2 operaciones en 2 intentos.
Programa terminado.

Bucle ej-while (3) - C-4

Amplíe el programa anterior, haciendo que el programa permita repetir las operaciones e indique al final el tiempo mínimo que se ha conseguido.

OPERACIONES (4)
¿Cuántas operaciones correctas debe contestar para terminar el programa? 1

Escriba el resultado de las siguientes operaciones
99 + 15 = 114
¡Respuesta correcta!

Ha tardado 5.7 segundos en acertar 1 operación en 1 intento.
¿Quiere probar otra vez? (S/N): s

60 + 7 = 67
¡Respuesta correcta!

Ha tardado 3.3 segundos en acertar 1 operación en 1 intento.
¿Quiere probar otra vez? (S/N): n

Su tiempo mínimo ha sido 3.3 segundos.
Programa terminado.

En construcciónLos ejercicios siguientes están pendientes de revisar.

D. Adivinar números

Bucle ej-while (3) - D-1

Escriba un programa para jugar a adivinar un número (el ordenador "piensa" el número y el usuario tiene que adivinarlo). El programa empieza pidiendo entre qué números está el número a adivinar, se "inventa" un número al azar y después el usuario va probando valores y el programa va diciendo si son demasiado grandes o pequeños.

Valor mínimo: 0
Valor máximo: 100
Intente adivinar un número entero entre 0 y 100.
Escriba un número: 20
¡Demasiado pequeño! Inténtelo de nuevo: 30
¡Demasiado grande! Inténtelo de nuevo: 27
¡Acertó! Le ha costado 3 intentos.

Bucle ej-while (3) - D-2

Escriba un programa para jugar a adivinar un número (el usuario piensa un número y el programa tiene que adivinarlo). El programa empieza pidiendo entre qué números está el número a adivinar y después intenta adivinar de qué número se trata. El usuario va diciendo si el número que ha dicho el programa es menor, mayor o igual al buscado.

Valor mínimo: 0
Valor máximo: 100
Piense un número entre 0 y 100 a ver si lo adivino.
¿Es 50?: mayor
¿Es 75?: menor
¿Es 62?: menor
¿Es 56?: mayor
¿Es 59?: igual
Gracias por jugar conmigo

Puede perfeccionar este programa haciendo: