[ Foro de Python ]

tarea

14-May-2021 03:10
Invitado (nahuel)
1 Respuestas

Buenos-Malos-Regulares:
Hacer un programa que permita el ingreso de un número de 4 digitos no repetidos en una
cadena de caracteres, para ser utlizado como número a adivinar.

El programa deberá ahora solicitarle al usuario que ingrese un número de 4 dígitos y deberá
devolver la información sobre los números ingresados y su estado. Ejemplo:

Número a Adivinar: 1234

Número a verificar: 1357
1 Bueno
1 Regular
2 Malos

Donde El “Bueno” indica que hay un número correcto en la posición correcta. El “Regular”
indica que el número está pero no en la posición correcta, y los "Malos" indican que los
números no están,

Hacer una función que verifique los números y su posición devolviendo una cadena de
caracteres con el siguiente formato para el ejemplo anterior: 181R2M

El programa debe permitir intentar 10 veces la búsqueda del número.
Modificar el programa, como para que el número a adivinar, se genere al azar con los
números distintos.


26-May-2021 02:07
oscar mena

Buenas, este te puede servir, es un numero al azar de 4 digitos
import random
numeros = (1, 2, 3, 4, 5, 6, 7, 8, 9)
num = random.sample(numeros, 4)     # obtenemos 4 numeros sin repetir

for i in range(10):
   adi = input('Adivine el número ')
   an0 = int(adi[0])
   an1 = int(adi[1])
   an2 = int(adi[2])
   an3 = int(adi[3])                  # dividimos el numero en sus digitos

   # Buscamos los buenos 'B'
   b = 0
   if an0 == num[0]:
       b+=1
   if an1 == num[1]:
       b+=1
   if an2 == num[2]:
       b+=1
   if an3 == num[3]:
       b+=1

   # Buscamos los regulares 'R'
   r=0
   if an0 == num[1] or an0 == num[2] or an0 == num[3]:
       r+=1
   if an1 == num[0] or an1 == num[2] or an1 == num[3]:
       r+=1
   if an2 == num[0] or an2 == num[1] or an2 == num[3]:
       r+=1
   if an3 == num[0] or an3 == num[1] or an3 == num[2]:
       r+=1

   # Buscamos los malos 'M' restandolos de los demas
   m = 4-b-r   # Esto es porque la suma de los buenos con regulares y malos siempre es 4
   if b == 4:
       print(f'Ese es el número, felicidades y lo hiciste en {i+1} intentos')
       break
   else:
       print(f'{b}B{r}R{m}M')
if b<4:
   print(f'Lastima, no lo adivinaste, era el {num[0]}{num[1]}{num[2]}{num[3]}')






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)