Diseño

Por María Fernanda Martínez 11176 José Rodrigo Morales 11608 Luis Daniel Muñoz 11105 **Diseño ** a) Los objetos a utilizar son el elevador y sus componentes básicos y las personas que se movilizarán por él. Las variables son la cantidad de personas que van en el ascensor y la cantidad de personas que subirán en él; el piso en el que el ascensor se encuentra y en el que la persona lo llama; y los pisos a los que las personas deseen ir. b) Proceso: se muestra la localización del ascensor y la persona debe ingresar el piso en el que se encuentra en ese momento. La computadora elige al azar cuántas personas van en el ascensor y dependiendo de eso cabrán o no la cantidad de personas que deseen subir. Después el usuario ingresa el/los peso/s de la/s persona/s que subirá/n y si se sobrepasa del límite, el ascensor no se moverá. Después la persona debe ingresar el/los piso/s al/los que se desee ir. El programa ordena los pisos, ya sea de mayor a menor o viceversa, dependiendo de su localización actual. Entonces las puertas se cierran y el ascensor se mueve. Tarda unos segundos en llegar a su destino para hacerlo más real. Al llegar ahí espera que la persona teclee algo para indicarle que puede cerrar las puertas. Continua este proceso hasta llegar al último piso de la lista. c) Las funciones desarrolladas (hasta el momento) son:  û historia: es la narración de la situación actual del usuario. En ella se describe que el usuario está en un edificio de 12 pisos y se encuentra muy cansado para utilizar las escaleras. Se indica al usuario el piso en el que se encuentra el ascensor y se despliega una imagen para mostrarle. No recibe parámetros. Regresa el valor del piso en que se encuentra el ascensor. û pisos: pregunta al usuario a qué piso desea trasladarse. Si el usuario ya se encuentra en el piso que marque, se le indica y no se agrega a la lista. En caso de que se agregue un piso diferente, el programa lo guarda en una lista. No recibe parámetros. Regresa el valor del piso ingresado. û estar: el usuario ingresa el piso en el que se encuentra en ese momento. Si es un piso que no existe en el edificio, el programa le despliega un mensaje de error. Además, se muestra una imagen que señala el piso en el que se encuentra. No recibe parámetros y regresa el valor del piso en el que se encuentra el usuario. û trayecto(H,estar): define el trayecto que seguirá el ascensor, es decir, un movimiento hacia arriba o hacia abajo. Si el usuario se encuentra en el piso 1, el ascensor subirá, si se encuentra en el 12, el ascensor bajará. Pero cuando se encuentra en cualquier otro piso el usuario decide si quiere bajar o subir. El ascensor siguen un solo trayecto, por lo que si el usuario ingresa un trayecto contrario al que lleva el ascensor, deberá esperar un poco. El parámetro H es el piso en el que se encuentra el ascensor; el parámetro estar es el piso en el que se encuentra el usuario. Regresa el trayecto que seguirá el ascensor. û personas(vienen): se refiere a la cantidad de personas que van en el ascensor. Como el ascensor tiene un límite de peso, este debe tomarse en cuenta al momento de que vayan a ingresar más personas. El parámetro vienen es la cantidad de personas que ya van en el ascensor cuando el usuario lo llama. Regresa el valor del peso de las personas que ya van en el ascensor. û peso_total(L,P,C): es el peso de las personas que ya van en el ascensor más el peso de las personas que se suben al ascensor. Para eso, el usuario debe ingresar el peso de las personas que subirán al ascensor. El parámetro L es la lista de los pesos ingresados, el parámetro P es el peso de las personas que ya van en el ascensor, el parámetro C es la cantidad de personas que subirán al ascensor. û sobrecarga(pe,L): indica cuando el peso máximo que soporta el ascensor ha sido excedido. Se solicita que alguna de las personas se retire, por lo que debe retirarse su peso de la lista. Cuando el ascensor ya soporta el peso, entonces continúa con su funcionamiento normal. El parámetro pe es el peso total, L es la lista de los pesos ingresados. Regresa el valor del peso que aguanta el ascensor. û luz(n,A): describe lo que sucede si se va la luz. Despliega una imagen de personas en la oscuridad y algunas palabras que dice el usuario y una voz en el altavoz. Solo puede ocurrir una vez ya que hay planta eléctrica. El parámetro n es el contador que define si puede o no haber apagón, y el parámetro A es la variable aleatoria que decide si hay apagón o no. No tiene valor de regreso. û imagen(n): es la imagen que muestra los pisos por los que pasa el ascensor. Recibe como parámetro n, que es el piso en el que el ascensor abre las puertas. No regresa ningún valor. û mover_ascensor(S,pi,E,k,u,A): es el movimiento que realizará el ascensor. Si el ascensor va para abajo, entonces los pisos ingresados por el usuario deben ser ordenados de una forma lógica para que el ascensor realice. En caso de que suba, de igual manera los pisos deben ordenarse de forma lógica (creciente). Por otro lado, la función también verifica que los pisos ingresados sean realmente del trayecto que eligió el usuario, de no ser así, no realiza ningún movimiento. Si el movimiento es el adecuado, verifica que los pisos no se repitan. En esta fase es que se invoca la función imagen(n) para mostrar el trayecto que sigue el ascensor. El parámetro S es el trayecto elegido por el usuario; pi es la lista de pisos a visitar; E es el piso en el que se encuentra el usuario; k es un contador; u es el contador para el apagón; A es la variable aleatoria que decide si habrá apagón o no. No hay valor de regreso. û funcionamiento(vienen,L,P,pi,PISO,s,E,u,A): describe el funcionamiento del ascensor; se pide que el usuario ingrese la cantidad de personas que subirán al ascensor y los suma a la cantidad de personas que ya van. Se invoca a la función peso_total(L,P,C), sobrecarga(PT,L), mover_ascensor(S,pi,E,k,u,A), pisos. Los parámetros son: vienen es la cantidad de personas que van en el ascensor; L es la lista de pesos ingresados; P es el peso de las personas que ya iban en el ascensor; pi es la lista de pisos que se desean visitar; PISO es lo que permite iniciar la repetición para ingresar pisos; s es un contador; E es el piso en el que se encuentra el usuario; u es el contador que permite el apagón o no; A es la variable que decide si habrá apagón o no. No hay valor de regreso. û <span style="font-family: Arial,sans-serif;">grafica(lp): es una gráfica de barras que muestra los pesos de las personas que ingresaron al ascensor. El parámetro lp es la lista de los pesos. No hay valor de regreso.
 * [[image:HOMESUB.png link="home"]] || [[image:analisissub.png link="Análisis"]] || [[image:DISEÑOSUB.png link="Diseño"]] || [[image:TEORIABASICASUB.png link="Teoría básica"]] || [[image:DESCARGASSUB.png link="Descargas"]] || [[image:CONTACTOSUB.png link="Contacto"]] ||

<span style="font-family: Arial,sans-serif; text-align: justify;">d) Módulos utilizados y sus funciones:

<span style="font-family: Arial,sans-serif;">pygame.display.set_mode((ancho ventana, alto ventana)) <span style="font-family: Arial,sans-serif;">pygame.display.set_caption(‘Titulo ventana’) <span style="font-family: Arial,sans-serif;">pygame.image.load(‘archivo.formato’).convert <span style="font-family: Arial,sans-serif;">screen.blit(imagen,(0,0)) <span style="font-family: Arial,sans-serif; font-size: 11pt;">pygame.display.flip || <span style="font-family: Arial,sans-serif; font-size: 11pt;">Mostrar las imágenes de la localización del ascensor y del usuario en el edificio; mostrar la imagen del apagón. || <span style="font-family: Arial,sans-serif;">xlocations <span style="font-family: Arial,sans-serif;">bar(xlocations,datos,width,color) <span style="font-family: Arial,sans-serif;">xticks(xlocations+width/2,labels) <span style="font-family: Arial,sans-serif;">title(‘Título’) <span style="font-family: Arial,sans-serif; font-size: 11pt;">show || <span style="font-family: Arial,sans-serif; font-size: 11pt;">Mostrar la gráfica de los pesos de las personas que ingresaron al ascensor. || <span style="font-family: Arial,sans-serif; font-size: 11pt;">box(pos=(0,0,0),size=(10,12,0),color=color.white [esta varió para cada piso] || <span style="font-family: Arial,sans-serif; font-size: 11pt;">Mostrar los pisos en que el ascensor se detuvo. || **Conclusiones** <span style="font-family: Arial,sans-serif;">Las aplicaciones de la programación son muy diversas, como en este edificio que sirve para representar el sistema interno de su funcionamiento. <span style="font-family: Arial,sans-serif;">Los beneficios adquiridos durante la elaboración de este proyecto fueron el poder combinar diferentes carreras en un solo tema para mejorar el funcionamiento del elevador.
 * **Módulo** || **Funciones** || **Utilización** ||
 * <span style="font-family: Arial,sans-serif; webkitborderhorizontalspacing: 0px; webkitborderverticalspacing: 0px;">random || <span style="font-family: Arial,sans-serif; font-size: 11pt;">random.randint(intervalo) || <span style="font-family: Arial,sans-serif; font-size: 11pt;">El programa elige el piso al azar en el que se encuentra el ascensor, así como la cantidad de personas que ya van en el ascensor. ||
 * time || <span style="font-family: Arial,sans-serif; font-size: 11pt;">time.sleep(segundos) || <span style="font-family: Arial,sans-serif; font-size: 11pt;">El programa espera la cantidad de segundos que recibe como parámetro la función para indicar el tiempo que el usuario espera a que el ascensor llegue a su destino. ||
 * pygame || <span style="font-family: Arial,sans-serif;">pygame.init
 * pylab || <span style="font-family: Arial,sans-serif;">labels
 * visual || <span style="font-family: Arial,sans-serif;">frame