Está en la página 1de 19

UNIVERSIDAD DEL PACÍFICO

FACULTAD DE INGENIERÍA
SECCIÓN “A”
2018-I

PROYECTO FINAL
Caso 1: Adivinar número de 4 dígitos

Autores:

Arianne Nieto Otero


Carla Sofía Valderrama Camacho
Mirella Melisa Jiménez Saravia
Paola Stany García Vásquez
Rafaela Belén Sierra Valencia

Docente:
Nehil Muñoz Casildo

Trabajo para el curso de Herramientas Informáticas para Ingenieros

Lima, 2018
ÍNDICE

1. PRESENTACIÓN 2

2. RESUMEN DE FUNCIONALIDADES, ALCANCES Y LIMITACIONES DEL

PROGRAMA 2

3. MARCO TEÓRICO 3

4. REGLAS DE NEGOCIO 4

5. DIAGRAMA DE CLASES UML 4

6. CÓDIGO FUENTE OO EN PYTHON DOCUMENTADO 5

7. PRUEBA DEL PROGRAMA 15

8. REFERENCIAS BIBLIOGRÁFICAS Error! Bookmark not defined.

1
1. PRESENTACIÓN

El presente proyecto detalla minuciosamente el Caso número 1 propuesto en el curso de


Herramientas Informáticas para Ingenieros. El curso antes mencionado nos incentiva a
pensar de una manera diferente ante un problema conocido ya que usamos herramientas
nuevas como es el caso de la programación en el lenguaje de Python. La sintaxis de Python
permite la escritura de programas cuya lectura resulta más fácil que si utilizáramos otros
lenguajes de programación, además posee un rico juego de estructuras de datos que se
pueden manipular de modo sencillo (Marzal & Gracia).

2. RESUMEN DE FUNCIONALIDADES, ALCANCES Y LIMITACIONES DEL


PROGRAMA

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

Este programa no cumple la función de abastecer las necesidades de algún grupo de


personas, sino que tiene como misión el entretenimiento. Esta aplicación es apta para todas
las personas de diferentes edades.

2.3. Limitaciones

El presente programa presenta las siguientes limitaciones operativas:

- Si es que el usuario presiona una tecla no numérica no podrá borrarlo. Lo ideal es


volver a reiniciar el programa.

- Si el usuario escribe un número fuera del rango permitido, el programa emitirá un


mensaje “Fuera de rango, pruebe nuevamente” y volverá a lanzar las preguntas hasta
que se responda correctamente.

- Si el usuario contesta de forma incorrecta las preguntas solicitadas, el programa no


podrá identificar el número correcto.

2
3. MARCO TEÓRICO

❖ listas=[ ]

Conjunto ordenado de elementos representado entre corchetes y separados por comas.


Estos elementos pueden ser del mismo tipo o distintos entre sí. En el caso que se aplique el
uso de palabras, estas deben ir entre comillas y también entre comas.

❖ while:

Al momento de llegar a un bucle while, Python se encarga de verificar si se cumplen las


condiciones mencionadas para que luego este bucle permite repetir el conjunto de
instrucciones. Si la condición lanza falso como resultado, el bucle no podrá ejecutarse y el
programa seguirá. El bucle while puede llegar a ser infinito.

❖ 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():

Retorna el número de elementos de una lista.

❖ 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:

En el caso que las instrucciones no se cumplan, el programa ejecuta instrucciones dadas


después del else. El uso del else es opcional y solo se puede utilizar una vez seguido de un
if.

❖ 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:

- Un argumento range(n): Comienza en 0 y termina en n-1.


- Dos argumentos(m,n): Comienza en m y termina en n-1
- Tres argumentos (m,n,p): Comienza en m y termina antes de igualar o superar a n,
los valores que lanza aumentan de p en p.
❖ \n:

Abreviatura para pasar a la siguiente línea.

❖ 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. DIAGRAMA DE CLASES UML

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

def hallando_orden(lista2,A,B): #funcion que halla el orden de


los digitos del numero
d1 = lista2[0] #1 numero de la lista 2
d2 = lista2[1] #2 numero de la lista 2
d3 = lista2[2] #3 numero de la lista 2
d4 = lista2[3] #4 numero de la lista 2
numero = d1 * 1000 + d2 * 100 + d3 * 10 + d4 #se crea el
numero que el programa va a lanzar
print(numero) #se imprime el numero
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
while (a+b)!=4: # se responde las preguntas una vez más
a = int(input(A))
b = int(input(B))
if b == 4: #todos los digitos estan en su sitio correcto
print("Tu numero es ", numero) # programa detecta que ese
es el numero pensado por el usuario

if d1!=d2 and d2!=d3 and d3!=d4: #tipo de numero con los 4


digitos diferentes
while b==0 or b==1: #el numero propuesto por el programa
solo tiene un digito o ningun digito en el lugar correcto
ayuda=d1 #se cambian de posisicion los digitos
d1=d4
d4=d3
d3=d2
d2=ayuda
numero=d1*1000+d2*100+d3*10+d4 #se mueven a la
derecha los digitos y se crea otro numero
print(numero) #se imprime el numero
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
if b==4: print("Tu numero es ", numero) #todos los
digitos estan correctos, el programa adivido el numero usuario
if b==2: #el numero propuesto tiene 2 digitos en su lugr
correcto
numero=d2*1000+d1*100+d3*10+d4 #se crea otro numero
print(numero) #se muestra al usuario
a = int(input(A)) # preguntas y respuestas
b = int(input(B))
6
if b==4: print("Tu numero es ", numero)#todos los
digitos estan correctos, el programa adivido el numero del
usuario
elif b==0: #el numero propuesto por el programa no
tiene ningun digito en su posicion correcta
numero=d1*1000+d2*100+d4*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==1: #el numero propuesto por el programa tiene
un digito en su posicion correcta
numero=d3*1000+d2*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)
if b==0: # el numero propuesto por el programa no
tiene ningun numero 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
if b==1: #el numero propuesto por el programa
tiene un digito en su posicion correcta
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
else: #solo queda una posibilidad de numero
numero=d4*1000+d2*100+10*d3+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

if d1==d2 and d3==d4 and d2!=d3: #el primer numero lanzado


tiene la estructura "aabb"
if b==0: #el numero propuesto por el programa no tiene
ningun numero en el lugar correcto
numero=d3*1000+d4*100+d1*10+d2 #se crea un numero en
base a las anteriores respuestas

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

if d1==d2 and d3!=d4 and d2!=d3: #el primer numero lanzado


tiene la estructura "aabc"
if b==0: #el numero propuesto por el programa no tiene
ningun numero en el lugar correcto
numero=d3*1000+d4*100+d1*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==2: #el numero propuesto por el programa tiene
2 digitos en los lugares correctos

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

if d1!=d2 and d3!=d4 and d2==d3: #el primer numero lanzado


tiene la estructura "abbc"
if b==0:#el numero propuesto por el programa no tiene
ningun numero en el lugar correcto
numero=d2*1000+d1*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==2:#el numero propuesto por el programa tiene
dos numeros en los lugares correctos
numero=d2*1000+d4*100+d1*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==2: #el numero propuesto por el programa tiene dos
numeros en los lugares correctos
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))
10
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=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
elif b==0: #el numero propuesto por el programa no
tiene ningun numero en el lugar correcto
numero=d2*1000+d1*100+d3*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 + 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==1: #el numero propuesto por el programa
tiene un digito en el lugar correcto
numero=d4*1000+d2*100+d3*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
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 = d3 * 1000 + d4 * 100 + d2 * 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
if b==0: #el numero propuesto por el programa no tiene
ningun numero en el lugar correcto
11
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 + 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

if d1!=d2 and d3==d4 and d2!=d3: #el primer numero lanzado


tiene la estructura "abcc"
if b==0: #el numero propuesto por el programa no tiene
ningun numero en el lugar correcto
numero=d3*1000+d4*100+d1*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
elif b==2: #el numero propuesto por el programa tiene
dos numeros en los lugares correctos
numero=d4*1000+d3*100+d2*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
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==2: #el numero propuesto por el programa tiene
dos numeros en los lugares correctos
numero=d1*1000+d3*100+d4*10+d2 #se crea un numero
en base a las anteriores respuestas
print("Tu numero es ", numero)
elif b==0: #el numero propuesto por el programa no
tiene ningun numero en el lugar correcto
numero=d4*1000+d2*100+d3*10+d1 #se crea un numero
en base a las anteriores respuestas

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

if d1==d2 and d3!=d4 and d3==d2: #el primer numero lanzado


tiene la estructura "aaab"
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
elif b == 2: #el numero propuesto por el programa tiene
dos numeros en los lugares correctos
numero = d1 * 1000 + d4 * 100 + d2 * 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
elif b == 2: #el numero propuesto por el programa
tiene dos numeros en los lugares correctos
numero=d4*1000+d1*100+d2*10+d3 #se crea un numero
en base a las anteriores respuestas

14
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!=4: #si el numero del usuario no tiene el formato "aaaa"


hallando_orden(lista2,A,B) #se proceda a hallar el numero del
usuario

5. PRUEBA DEL PROGRAMA

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 .

Rossum, G. v. (2017). El tutorial de Python.

Sintes, B. (20 de Febrero de 2017). Introducción a la programación con Python. Obtenido de


http://www.mclibre.org/consultar/python/lecciones/python-range.html

Sintes, B. (04 de Abril de 2017). Introducción a la Programación con Python. Obtenido de


http://www.mclibre.org/consultar/python/lecciones/python-while.html

Sintes, B. (19 de febrero de 2018). Introducción a la programación con Python. Obtenido de


http://www.mclibre.org/consultar/python/lecciones/python-if-else.html

18

También podría gustarte