Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
SECCIÓN “A”
2018-I
PROYECTO FINAL
Caso 1: Adivinar número de 4 dígitos
Autores:
Docente:
Nehil Muñoz Casildo
Lima, 2018
ÍNDICE
1. PRESENTACIÓN 2
PROGRAMA 2
3. MARCO TEÓRICO 3
4. REGLAS DE NEGOCIO 4
1
1. PRESENTACIÓN
2.1. Funcionalidades
Este programa está diseñado para adivinar un número de 4 dígitos de una manera práctica y
sencilla. Su estructura facilita la manipulación del usuario ya que consta de mensajes que lo
ayudan a entender lo que se pide hasta llegar al resultado deseado.
2.2. Alcances
2.3. Limitaciones
2
3. MARCO TEÓRICO
❖ listas=[ ]
❖ while:
❖ for:
Este bucle sirve para generar una repetición del programa un número predeterminado de
veces. No presenta necesidad de definir las variables con anterioridad al bucle, aunque se
puede utilizar una variable definida antes también.
❖ len():
❖ def:
La palabra def es la encargada de definir una función creada por el programador. Luego de
usar esta instrucción, se le debe colocar un nombre que describa la función, y una lista de
parámetros o variables a usar seguida por los dos puntos de cierre (:). Si dicha función no es
llamada por su nombre, esta no será invocada y no podrá ser ejecutada.
❖ if:
Este permite que se ejecute un bloque de órdenes cuando cumple las condiciones usadas al
lado del if. Debe terminar la condición con dos puntos (:) para que el bloque de instrucciones
sea reconocido y el programa funcione.
❖ else:
❖ range():
3
Lista de números enteros en sucesión aritmética que no se pueden modificar. Para poder
visualizar los datos dentro de range es necesario convertirlo a lista a través de la función list().
Existen 3 tipos:
❖ break:
Solo es usado en los bucles for y while cuando se desea romper el ciclo.
❖ random():
Debe ser importado con anterioridad a su uso. Este proporciona un generador de números
aleatorios.
❖ shuffle():
Al igual que random, esta también se tiene que importar para que pueda ser utilizada. Este
método aleatoriza los números presentes en una lista propuesta.
REGLAS DE NEGOCIO
Las reglas de negocio son los parámetros, procedimientos e instrucciones del programa:
- Si el número tiene 4 dígitos, entonces estos deben encontrarse en el rango de 1 al 9.
- Si el número tiene más de 4 dígitos el programa emitirá un mensaje de error.
- La cantidad de preguntas es ilimitada.
- El programa puede ser usado cuantas veces el usuario lo desee.
- Las instrucciones del juego se presentan según la decisión del usuario.
- Las preguntas se repetirán hasta encontrar el número.
4
CÓDIGO FUENTE OO EN PYTHON
DOCUMENTADO
from random import shuffle
as s #se importa una funcion de la libreria random
print("Piense en un numero de 4 cifras con digitos del 1 al 9")
#se le dice las instrucciones
print("------------------------------------------------------")
a=input("¿Desea un ejemplo?:") #se le pregunta si quiere un
ejemplo
if a=="si" or a=="Si" or a=="SI": #se le muestra un ejemplo si
lo requiere
print("Número: 1234")
print("1111" + "\n" + "¿Cuántos dígitos son correctos pero
están en lugares incorrectos?" + "\n" + "El número 1 es correcto
entonces 3 son correctos" + "\n" + "y se encuentran en el lugar
incorrecto")
print("--------------------------------------------------")
print("COMENCEMOS")
lista1=[1,2,3,4,5,6,7,8,9] #posibles digiitos que esten en el
numero
s(lista1)
lista2=[] # lista de los digitos que integran el numero
A="¿Cuantos dígitos son correctos pero están en lugares
incorrectos? \nRespuesta: "
B="¿Cuantos dígitos son correctos y están en lugares correctos?
\nRespuesta: "
a=0 #respuesta a la pregunta A
b=0 #respuesta a la pregunta B
while (len(lista2))<4:
if len(lista1)==0: # si se acbaa la lista 1
print("No hay más digitos posibles") # solo se aceptan
esos numeros, el 0 no
break
n=lista1[0]
N=n*1000+n*100+n*10+n #crear numero que se va a lanzar
print(N)
a=int(input(A)) #preguntas y respuestas
b=int(input(B))
if a>4 or b>4:
print("Fuera de rango, prueba nuevamente")
while a>4 or b>4: # se responde las preguntas una vez más
a = int(input(A))#preguntas y respuestas
5
b = int(input(B))
for i in range (b):#añadir digitos del numero en la lista 2
lista2.append(n)
lista1.remove(n) #remover el digito mostrado de la lista 1
if b==4:#se adivino el numero pensado por el usuario, numero
formato "aaaa"
print("Tu numero es ", N) #el programa le dice al usuario
su numero
break
7
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
elif b==2: #el numero propuesto por el programa tiene 2
digitos en los lugares correctos
numero=d1*1000+d3*100+d2*10+d4 #se crea un numero en
base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b==4: print("Tu numero es ", numero) #programa
descubrio el numero, se lo dice al usuario
elif b==2:#el numero propuesto por el programa tiene
2 digitos en los lugares correctos
numero=d1*1000+d3*100+d4*10+d2 #se crea un numero
en base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b==4: print("Tu numero es ", numero) #programa
descubrio el numero, se lo dice al usuario
if b==0: # el numero propuesto por el programa no
tiene ningun numero en el lugar correcto
numero=d4*1000+d1*100+d2*10+d3 #se crea un
numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
elif b==0: # el numero propuesto por el programa no
tiene ningun numero en el lugar correcto
numero = d4 * 1000 + d1 * 100 + d3 * 10 + d2 #se
crea un numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
8
numero=d4*1000+d3*100+d1*10+d2 #se crea un numero
en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
elif b==2: #el numero propuesto por el programa tiene dos
numeros en los lugares correctos
numero=d1*1000+d3*100+d2*10+d4 #se crea un numero en
base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b==4: print("Tu numero es ", numero) #programa
descubrio el numero, se lo dice al usuario
if b==0: #el numero propuesto por el programa no tiene
ningun numero en el lugar correcto
numero=d4*1000+d1*100+d3*10+d2 #se crea un numero
en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
elif b==1: #el numero propuesto por el programa tiene
un digito en el lugar correcto
numero = d1 * 1000 + d2 * 100 + d4 * 10 + d3 #se
crea un numero en base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b == 4: print("Tu numero es ", numero)
#programa descubrio el numero, se lo dice al usuario
if b==1: #el numero propuesto por el programa
tiene un digito en el lugar correcto
numero=d1*1000+d4*100+d3*10+d2 #se crea un
numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
elif b==2: #el numero propuesto por el programa tiene
dos numeros en los lugares correctos
numero=d3*1000+d1*100+d2*10+d4 #se crea un numero
en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
elif b==1:#el numero propuesto por el programa tiene un
digito en el lugar correcto
numero = d1 * 1000 + d3 * 100 + d4 * 10 + d2 #se crea
un numero en base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
9
b = int(input(B))
if b == 4: print("Tu numero es ", numero) #programa
descubrio el numero, se lo dice al usuario
if b == 2: #el numero propuesto por el programa tiene
dos numeros en los lugares correctos
numero = d3 * 1000 + d1 * 100 + d4 * 10 + d2 #se
crea un numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
if b==0: #el numero propuesto por el programa no tiene
ningun numero en el lugar correcto
numero = d4 * 1000 + d1 * 100 + d2 * 10 + d3 #se
crea un numero en base a las anteriores respuestas
print("Tu numero es ", numero)#no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
if b == 1: #el numero propuesto por el programa tiene
un digito en el lugar correcto
numero = d1 * 1000 + d4 * 100 + d2 * 10 + d3 #se
crea un numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
12
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
elif b==1: #el numero propuesto por el programa tiene
un digito en el lugar correcto
numero = d2 * 1000 + d1 * 100 + d3 * 10 + d4 #se
crea un numero en base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b==4:print("Tu numero es ", numero) #programa
descubrio el numero, se lo dice al usuario
if b==1: #el numero propuesto por el programa
tiene un digito en el lugar correcto
numero=d3*1000+d2*100+d1*10+d4 #se crea un
numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
elif b==1: #el numero propuesto por el programa tiene un
digito en el lugar correcto
numero = d2 * 1000 + d3 * 100 + d4 * 10 + d1 #se crea
un numero en base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b == 4: print("Tu numero es ", numero) #programa
descubrio el numero, se lo dice al usuario
if b == 2:#el numero propuesto por el programa tiene
dos numeros en los lugares correctos
numero = d2 * 1000 + d3 * 100 + d1 * 10 + d4 #se
crea un numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
if b==0: #el numero propuesto por el programa no tiene
ningun numero en el lugar correcto
numero = d4 * 1000 + d1 * 100 + d2 * 10 + d3 #se
crea un numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
if b == 1: #el numero propuesto por el programa tiene
un digito en el lugar correcto
numero = d4 * 1000 + d1 * 100 + d3 * 10 + d2 #se
crea un numero en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
13
if d1!=d2 and d3==d4 and d3==d2: #el primer numero lanzado
tiene la estructura "abbb"
numero = d2 * 1000 + d1 * 100 + d3 * 10 + d4 #se crea un
numero en base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b==4: print("Tu numero es ", numero) #programa
descubrio el numero, se lo dice al usuario
elif b==2: #el numero propuesto por el programa tiene dos
numeros en los lugares correctos
numero = d2 * 1000 + d3 * 100 + d1 * 10 + d4 #se crea
un numero en base a las anteriores respuestas
print(numero) #se muestra el numero al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b == 4: print("Tu numero es ", numero) #programa
descubrio el numero, se lo dice al usuario
elif b == 2: #el numero propuesto por el programa
tiene dos numeros en los lugares correctos
numero=d2*1000+d3*100+d4*10+d1 #se crea un numero
en base a las anteriores respuestas
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
14
print("Tu numero es ", numero) #no hay mas
posibilidades de un numero con las respuestas anteriores, el
programa descubre el numero del usuario
Prueba 1
15
16
Prueba 2
17
6. REFERENCIAS BIBLIOGRÁFICAS
Marzal, A., & Gracia, I. (s.f.). Introducción a la programación con Python. Publicacions de la
Universitat Jaume .
18