Proy1Sec30+Grupo+No.+8

=__//Proyecto No. 1 Fundamentos de Programación//__ =

__Integrantes__
Otto Hurtarte Carné: 09159 Sergio Perdomo Carné: 09371

__Video Tutorial:__
Enlace a video tutorial: [] = = == =Programa:= Este es el archivo en el cual se encuentra el programa:

= __Manual del Usuario__ =

Bienvenido al Programa tresnumeros desarrollado en lenguaje python, esperamos que sea de su agrado; a continuacion usted encontrara instrucciones sencillas para utilizar de mejor manera el programa y descubrir asi todo lo que tiene por brindarle.


 * Instalacion del Juego**

1) Para que usted pueda hacer uso de este programa, primero debe descargarlo y guardarlo en su computador

2) El requerimiento principal para que el juego pueda ser usado es que usted tenga el editor del Programa python en su version 2.6.2, usted pued obtenerlo accediendo a la siguiente pagina http://www.python.org/download/

3) Ya con Python actualizado podrá abrir el archivo. Para esto deberá buscar el archivo y luego hacer click derecho sobre el y se desplegarán varias opciones, seleccione Editar con IDLE para abrir el programa.

4) Se dará cuenta que se abriran dos ventanas, debe seleccionar la que lleva el nombre del programa.

5) Presionar F5 estando en la ventana indicada y el juego se podra utlizar.


 * Como funciona el programa**

1) Al correr el programa, se dará cuenta que se ha desplegado el menu y se le presentarán varias opciones. Se despliegan las opciones de dificultad, ayuda e informacion sobre el programa. Para seleccionar una de estas, debe de ingresar el numero asignado a cada una.

2)Si ingresa la dificultad 1 el programa automaticamente le dara las condiciones que debe cumplir el numero al ingresarlo. Tome en cuenta que en esta dificultad adivinará tres numeros y dispondrá de ocho oportunidades para adivinar el numero.

3) Si usted ingresa el numero correcto, podrá avanzar a adivinar las otras unidades del numero completo y las nuevas condiciones para ese numero seran indicadas; En caso de que el numero ingresado no sea el correcto se desplegara un mensaje indicandole que no es el numero correcto y le pedira que ingrese otro numero.

4)Si adivina finalmente todos los digitos en cualquiera que sea la dificultad el programa desplegará un mensaje indicandole que ha adivinado exitosamente el numero.

5)En caso de que usted no logre adivinar los numeros con las 8 oportunidades que se le han dado, automaticamente perderá el juego y un mensaje indicandole esto se desplegará

6) Si desea jugar en el segundo nivel de dificultad, debe ingresar 2 en el programa y luego apachar la tecla ENTER.

7) En esta dificultad se le pediran que ingrese 4 numeros, en vez de los tres de la dificultad 1. Esta dificultad tiene la misma metodologia, usted ingresará un numero en base a varias condiciones que el programa determina.

8) Si el numero ingresado es correcto, el programa desplegara ese digito y le indicara que es el correcto. Si su numero es incorrecto, el programa le indicará que no es el digito correcto y le restará una oportunidad. Debe de tomar en cuenta que tiene el mismo numero de oportunidades para cada dificultad.

9) Si finalmente logra adivinar las 4 cifras, el programa le desplegerá un mensaje indicandole que ha ganado el juego, si este no es el caso le indicará que ha perdido.

10) Si desea jugar en la máxima dificultad, ingrese 3 y presione la tecla ENTER.

11) En esta dificultad se le solicitara que adivine un total de 5 digitos los cuales formaran un solo numero. Posee la misma metodologia que las demas, usted debe ingresar un numero en base a ciertas condiciones.

12)Si el primer numero ingresado es correcto, podra seguir avanzando en sus intentos, si no es correcto, deberá ignresar otro numero y se le restará una oportunidad. Si finalmente logra adivinar los 5 digitos, habra ganado el juego en la máximo dificultad, si este no es el caso, usted habrá perdido.

13) Si desea mas informacion sobre el programa puede ingresar el numero 4 para solicitar ayuda o si desea no seguir jugando puede ingresar el numero 6 para finalizar la ejecucion del juego

14) Si desea alguna informacio adicional puede escribir un correo con sus dudas a Sergio Perdomo (chunche080@hotmail.com) o a Otto Hurtarte (ohurtarte8@hotmail.com)

15) Si nota algun error, o su programa no ha corrido de la manera indicada tambien puede mandar sus consultas a los correos anteriormente indicados.

Esperamos que disfrute este entretenido juego diseñado en Python. = = =
 * Descargar:**

= = =** __Investigacion Corta__ **=

__Preguntas insustituibles__

1) ¿ Cual es la meta ?

R- La meta en este proyecto es que mediante el uso de python se obtengan pistas sobre los digitos de cada numero, en todas las dficultades que se le asignaran a nuestro juego. Las pistas estan idiseñadas de forma que representen un intervalo dado, es decir, indicaran entre que numeros se encuentra el digito que el usuario debe encontrar para lograr ganar el juego. Al ingresar correctamente el numero, el programa seguira dando pistas, si no se ingresa el numero deseado, el programa no las dara, hasta quqe finalmente se peirda el juego.

2) ¿ Cuales son los datos ?

R- Se nos dan pocos datos. Los unicos son los numeros que el usuario deberá ingresar. Estos numeros pueden representar varias cosas, ya sean los numeros que el programa solicita para que ell usuario gane, o pueden usarse para asignarselos a alguna opcion o dificultad de nuestro programa.

3) ¿ Cuales son las condiciones ?

R- El jugador dispondrá de ocho oportunidades en total para poder adivinar cada digito que se le solicite. Independientemente de la dificultad, el numero de intentos siempre debe de ser ocho. Todos los digitos deben de ser adivinados antes de que se acaben los intentos del usuario. En caso de que este falle, se le restará una oportunidad, en el caso contrario, se le darán nuevas pistas para que logre encontrar los digitos faltantes. La dificultad no cambiara ninguna de estas condiciones, deben de ser constantes durante todo el proceso que lleva el juego.

4) ¿ Que procesos necesito ?

R- Primero debemos desplegar las instrucciones para que nuestro usuario logre saber que es lo que debe de hacer. Al obtener el menu con las opciones, el usuario podrá elegir el nivel de dificultad que guste si este elige jugar el juego. Si este no deea jugar el juego deberá seleccionar la opcion de salir del juego. Si elige jugar el juego se le dará la primera pista, la cual sera un intervalo y deberá ingresar un numero entre ese intervalo para poder adivinar el primer digito del numero. Si el usuario logra adivinar de manera correcto el digito que se le solicita, este podrá continuar adivinando los demas ya que se le dara otra condicion para que pueda adivinar el siguiente digito. En caso de que este no logre adivinar el digito que se le pide en cierto intervalo, se le indicará que el digito ingresado no es correcto y que dispone ahora de menos oportunidades para adivinar digitos, lo cual hace mas dificil ganar el juego. Si el usuario se queda sin oportunidades este ya no podra seguir jugando y perderá automaticamente el juego.

Diseño

1) ¿ Como llevará a cabo la solucion ?

R- Para esto se llevarán a cabo la creacion de varias funciones las cuales contendran una asignacion de valores, repeticiones, o condiciones. Estas funciones se utilizarán para desarrollar el programa segun los tres niveles de dificultad que le han sido asignados al juego. Independiemente de en cual nivel de dificultad el usuario se encuentre este siempre tendrá un total de 8 oportunidades para adivinar todos los digitos pertenencientes al numero que debe adivinar en su totalidad. Para esto se podria asignar uan variable global, ya que el valro estará presente en todo el programa. Tambien se puede usar alguna otra variable para que el numero elegido al azar sea almacenado en nuestro programa.

2) Descripcion del curso logico de nuestro programa

R- Primero se presenta las instrucciones de lo que tendra que hacer el jugador para poder jugar el juego. Luego, se desplegará el menu de donde el jugador podrá elegir los niveles de dificultad que el quiera, solocitar ayuda o informacion acerca del juego, o terminar la ejecucion de dicho programa. Si elige la opcion Salir, este terminará el juego, y la ejecucion de dicho programa. Si eligio jugar, la primera pista para adivinar el primer digito del numero aparecerá. El jugador debera de seguir la condicion que se le presenta, ya que si no la cumple el numero ingresado sera automaticamente rechazado y perderá una oportunidad para ganar el juego de forma definitiva. En total el jugador tendra ocho oportunidades para lograr adivinar el digito, si este no logra adivinar el digito habrá perdido de forma definitva el juego y no podra seguir jugando.En caso de que el jugador logre adivinar el numero que ha sido elegido al azar, este podrá continuar jugando ya que se le presentará una nueva pista que será una condicion y nuevamente deberá cumplirla para que el numero ingresado sea correcto, si el numero que ingresó esta equivocado, se le restan oportunidades, si es correcto, nuevamente se le presentará una nueva condicion para que finalmente logre adivinar el ultimo digito del numero(esto es en el caso de la primera dificultad). Ya habiendo advinado los tres digitos del primer numero, el jugador finalmente habrá ganado el juego y se desplegará un mensaje indicandole que ha logrado ganar el juego. Se debe de tomar en cuenta que este proceso es el mismo para cada dificultad. El proceso se mantendra constante a pesar de que el jugador quisiera jugar a una dificultad mas elevada.

3 ) Modulos de Python utilizados y como seran utilizados en nuestro programa

R- Los modulos utilizados en este programa fueron los siguientes. El modulo random se uso para poder utilizar la funcion random.randint(100,99) y para que neustra computadora fuera capaz de elegir un numero de tres digitos totalmente al azar. Como se lográ observar en la funcion indicada el numero que se elegira sera mayor o igual a 100 pero será menor a 999. Tambien fue usado el doc.test el cual nos sirvio para probar cada funcion asignada en nuestro programa de manera individual para cada una de ellas.

4) Funciones desarrolladas por el programador. Para que se usan, parametros esperados.

decenademil : Se usará para definir la decena del numero elegido al azar, su parametro es la decena del numero elegido

unidaddemil : Se usará para definir el primer digito del numero elegido al azar, su parametro es el primer digito del numero elegido

centena: Se usará para definir el tercer digito del numero elegido al azar, su parametro es el tercer digito del numero elegido

decena: Lleva el digito de la decena del numero elegido: Su parametro es el digito de la decena de los numeros

unidad: Lleva el digito de la decena del numero elegido: su parametro es el digito de unidad de los numeros

juego1: Se utiliza para hacer el menu del juego: Parametro es la primer dificultad

juego2: Se utiliza para hacer el menu del juego: Parametro es la segunda dificultad.

juego3: Se utiliza para crear el menu del juego: Parametro es la tercera dificultad.


 * Conclusiones**


 * En este proyecto se apr endio a hacer uso correcto de las funciones de python
 * Si se hace un diseño prev io del programa será mas facil elaborarlo en nuestra computadora
 * Mediante el uso de funciones nos evitamos repeticiones en nuestro programa y logramo hacerlo lo mas corto posible

**Bibliografía**__
 * Downey, A. (2008). // Think Python: How to Think Like a Computer Scientist. // Massachusetts: Green Tea Press. ISBN 13:9780521898119. [].
 * González, R. (n.d.). // Python para todos. // Web: [].
 * TechSmith Corporation. (2009). // Jing. // Adquirida en agosto 17, 2009, from TechSmith Corporation Web page. Web site: [].
 * Descargar:**

= = = Pruebas Unitarias: = = = El archivo no contiene pruebas docstring por lo que solo muestra con la ayuda "help". A continuacion se muestra el archivo conteniendo las pruebas unitarias (doctest) en el programa: = =