adina numero

16
GUÍA Desarrollo de Videojuegos –Lógica de Programación Instructor: Ing. Leonardo Javier Bastidas Moreno Popayán, Cauca (Colombia) 2012

Upload: leonardobastidas

Post on 31-Jul-2015

142 views

Category:

Documents


2 download

DESCRIPTION

programa sentencia if juego en python

TRANSCRIPT

Page 1: Adina Numero

GUÍADesarrollo de Videojuegos –Lógica de Programación

Instructor: Ing. Leonardo Javier Bastidas Moreno

Popayán, Cauca (Colombia)2012

Page 2: Adina Numero

ADIVINA EL NÚMERO.

El Juego Adivina un número

Temas a Tratar:

Importar estamentos (declaraciones) Modulos Argumentos La Sentencia While Condiciones Bloques Boleanos Operadores de comparación La diferencia entre = y == La Sentencia if La palabra clave break Las funciones str() y int()

El juego de “Adivine el Numero”Vamos a crear un juego “Adivine el numero” En este juego la computadora “pensara” un numero del 1 al 20, y tu deberás responder hasta adivinar la respuesta. Tu solamente tienes 6 oportunidades para adivinar, pero el computador te ayudara diciéndote si tu respuesta es mayor o menor a el numero a adivinar. Si respondes correctamente antes que se terminen las 6 oportunidades tú ganaras.

Este es un buen juego para empezar porque usa “números aleatorios” (random numbers), ciclos (loops) y la entrada del usuario en un programa bastante corto.

Cuando tu escribas el código de este juego, aprenderas a convertir valores a diferentes tipos de datos (y el porqué tu necesitarías hacer esto)

Como este programa es un juego, el usuario se podría llamar player, pero la palabra usuario también podría ser correcta.

Page 3: Adina Numero

Ejemplo de cómo se vería el juego “Adivina el numero” al correrloEn el siguiente cuadro veremos cómo se miraría el juego, el texto resaltado en negrita son las entradas de datos que realizar el usuario.

Fig. 1 Interfaz de juego “Adivina el número”

Bien, ahora vamos a empezar a introducir el código, cerciórate de escribirlo de la misma forma en que aparece aquí. Después de escribirlo guardarlo danto clic en el menú FILESAVE AS lo guardas como Adivina.py, para correrlo tú debes presionar la tecla F5, no te preocupes sino entiendes el código este será explicado más tarde paso a paso.

Mire el código en la imagen de la siguiente pagina:

Page 4: Adina Numero

Para introducir el código anterior usted utilizo una ventana nueva en el editor, puede regresar al Shell y entrar las instrucciones individuales línea por línea, recuerde que el Shell interactivo es una herramienta muy buena para experimentar con diferentes instrucciones que hacen parte de un programa, tu puedes regresar al Shell dando clic en el botón RUN y luego escoger la opción Python Shell

EXPLICACION DEL CODIGO.Echemos un vistazo a cada línea de código para ver cómo funciona este programa:

Línea 1:

La primera línea que vemos es un comentario, como observamos anteriormente Python utiliza el carácter especial # para poner comentarios, esto significa cada

Page 5: Adina Numero

vez que se coloca un # lo que va después de este es ignorado por el interprete y solo sirve como guía para el programador.

Línea 2:

Importar Estamentos (declaraciones)

Las declaraciones no son funciones solo, miren que después de la palabra clave import va la palabra sin punto y coma ni paréntesis.Las declaraciones ejecutan algunas acciones pero no son variables con valor o sirven para evaluar algún valor.El import es una declaración que permite importar una palabras clave seguida por el nombre del modulo. En este caso nosotros importamos el modulo random que contienen varias funciones relacionadas con números aleatorios (random numbers) Estas funciones las vamos a utilizar para obtener un números que el computador “pensara” para que usted lo adivine.

Linea 4:

Esta línea crea una variable llamada oportunidadesAdivinar=0 donde se irá guardando el número de veces que el jugado adivina. Como vemos esta inicializada con un valor entero 0.

Estas líneas son las mismas que las que utilizamos en el programa holaSENA, en programación frecuentemente re-usaremos código de otros programas para ejecutar acciones parecidas.

La línea 6 es una llamada a la función print(). Recuerda que esta función es como un miniprograma que permite en desplegar en pantalla las oraciones, cadenas (strings) que le pasas.

Cuando estas dos líneas se ejecutan, un string con el nombre del jugador es mostrado en la pantalla. Este es el valor guardado en la variable myNombre que viene siendo el valor que usted escribe cuando digita en el teclado.

Page 6: Adina Numero

La función random.randint()

En la línea 9 nosotros llamamos a una nueva función llamada randint() que almacenara un valor aleatorio entre 1 y 20 en la variable numero.

La función randint() devuelve un numero aleatorio que está entre el rango de valores que coloquemos entre paréntesis , en este caso (1,20) ósea que me de un numero del 1 al 20. Para observar que escoge un numero distinto cada vez que se ejecuta pruebe copiando estas sentencias en el prompt del IDLE

Page 7: Adina Numero

Observe este ejemplo con números aleatorios del 1 al 100

Igual podría probar con diferentes rangos:

Podriamos cambiar la dificultad del juego cambiando el rango de números aleatorios en las líneas 9 y 10, miremos:

Ahora el número a adivinar seria entre 1 y 100, miremos como quedaría:

Page 8: Adina Numero

Llamadas a Funciones que están dentro de funcionesCuando estamos programando es necesario cerciorase que escribamos las funciones de manera correcta, por ejemplo para utilizar las funciones de random lo primero que hicimos fue importarla, ahora para crear el random de 20 numeros utilizamos random.randint(1,20) y si ya importamos random entonces por que no solo utilizamos randint(1,20).

NO, esto no es correcto porque el ponerlo de esta forma randint no sabe de dónde viene o si es una función nueva, al contrario cuando utilizamos random.randint(1,2) estamos diciendo que randint es un modulo de random. Por eso después de random se pone un punto que las une.

Recuerde que cuando necesite Módulos como Random debe importarlos al inicio del programa, para luego ser utilizados.

Bienvenida al juego.En la línea 10 la función print() hace la bienvenida al juego llamándote por tu nombre y expresando que el computador ha pensado en un número aleatorio.

En esta línea tu miras que hay unos signos + que sirven para unir las oraciones. También debes darte cuenta que la oraciones van entre comillas simples. ‘ ’

Loops o Ciclos

En la línea 12 esta la palabra clave while que significa mientras, este es un ciclo o loop; esto lo que permite es que una acción se repita varias veces, en este caso se repetirá la oportunidad de adivinar como máximo 6 veces. Por eso está el operador < (menor que) 6.

Page 9: Adina Numero

BloqueUn bloque es una o más líneas de código que se agrupan juntas y que tienen una identación (numero de espacios en frente de la linea), en este caso la identacion es de 4 espacios para las líneas que van después del loop while miremos:

Otro ejemplo de la identación :

En este ejemplo la identación de la línea 12 es de 0 espacios en cambio en la línea 13 es de 4 espacios.

Hay

4

e

spac

ios

Page 10: Adina Numero

El tipo de dato BooleanoLos booleanos son un tipo de dato especial que tiene dos valores: True (verdadero) o False(falso) usamos los booleanos para hacer comparaciones utilizando operadores de comparación y estructuras condicionales.

Operador de comparaciónVolvemos a la línea 12 en la cual vemos que hay un operador de comparación < (menor que)

Esta línea se leería “Mientras oportunidades de Adivinar sea menor que seis haga:” Los otros operadores de comparación con que contamos son los siguientes:

Entonces si tú quisieras que el jugador solo tenga 4 oportunidades es en esta línea donde podrían cambiar esa sentencia.

Page 11: Adina Numero

Entrando datos por parte del jugador para adivinarEn la línea 14 se observa la función input() que permite capturar los datos desde teclado y lo guarda en la variable adivina, en la línea 15 se llama a la función int() que permite convertir lo que digito desde teclado, es decir que hasta este momento lo que entra no se ha estipulado como un numero entero, hasta utilizar la conversión con esta función.

Si intentaramos convertir otro valor diferente como un string a un numero entero nos generara un error. Ejemplo.

Page 12: Adina Numero

Es la respuesta del jugador muy baja con respeto al número pensado por el computador.Como se observa en la siguiente figura en la línea 19 se compara el numero adivina dado por el jugador y se compara con el valor de el numero pensado por el computador que está guardado en la variable numero. Si adivina es menor que numero entonces en la pantalla del computador sale un mensaje como: Tu respuesta es muy baja, da un número más alto.

La Sentencia IF: Como te abras dado cuenta en la sentencia 19 encontramos la palabra clave IF que permite evaluar condiciones con operadores de comparación.

Page 13: Adina Numero

SALIR DE LOS CICLOS CON LA SENTENCIA breakObservemos que si el numero ingresado es igual al pensado entonces el juego termina esto lo hacemos “rompiendo” la secuencia con la sentencia break

Si adivino el número gano el juegoEntonces si el numero que ingresa el usuario (adivina) es igual al número pensado entonces tenemos que mostrarle al usuario el mensaje de que gano como se ve en la línea 30

Verificando si el jugador PerdióSi después de todos los intentos el jugador no acerto con el numero se verifica y se le da un mensaje de que perdió o no adivino.

Ejercicios

1. Modifique el programa para que solo de 3 oportunidades de ganar2. Modifique el programa para que los números a adivinar estén en los rangos

de (20,40) (100, 200)3. Modifique el programa para que ahora en vez de adivinar números, adivine

las vocales (a,e,i,o,u)4. Investigue que otras funciones existen en el modulo Random

Page 14: Adina Numero

BIBLIOGRAFIAAl Sweigart, Invent Your Own Computer Games with Python, 2nd Edition