Sunteți pe pagina 1din 14

GUA Desarrollo de Videojuegos Lgica de Programacin

Instructor: Ing. Leonardo Javier Bastidas Moreno

Popayn, Cauca (Colombia) 2012

ADIVINA EL NMERO.
El Juego Adivina un nmero

Temas a Tratar: Importar estamentos (declaraciones) Modulos Argumentos La Sentencia While Condiciones Bloques Boleanos Operadores de comparacin 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 debers responder hasta adivinar la respuesta. Tu solamente tienes 6 oportunidades para adivinar, pero el computador te ayudara dicindote 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 nmeros aleatorios (random numbers), ciclos (loops) y la entrada del usuario en un programa bastante corto. Cuando tu escribas el cdigo de este juego, aprenderas a convertir valores a diferentes tipos de datos (y el porqu tu necesitaras hacer esto) Como este programa es un juego, el usuario se podra llamar player, pero la palabra usuario tambin podra ser correcta.

Ejemplo de cmo se vera el juego Adivina el numero al correrlo En el siguiente cuadro veremos cmo se mirara el juego, el texto resaltado en negrita son las entradas de datos que realizar el usuario.

Fig. 1 Interfaz de juego Adivina el nmero

Bien, ahora vamos a empezar a introducir el cdigo, cercirate de escribirlo de la misma forma en que aparece aqu. Despus 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 cdigo este ser explicado ms tarde paso a paso.

Mire el cdigo en la imagen de la siguiente pagina:

Para introducir el cdigo anterior usted utilizo una ventana nueva en el editor, puede regresar al Shell y entrar las instrucciones individuales lnea por lnea, 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 botn RUN y luego escoger la opcin Python Shell EXPLICACION DEL CODIGO. Echemos un vistazo a cada lnea de cdigo para ver cmo funciona este programa: Lnea 1:

La primera lnea que vemos es un comentario, como observamos anteriormente Python utiliza el carcter especial # para poner comentarios, esto significa cada

vez que se coloca un # lo que va despus de este es ignorado por el interprete y solo sirve como gua para el programador. Lnea 2: Importar Estamentos (declaraciones)

Las declaraciones no son funciones solo, miren que despus de la palabra clave import va la palabra sin punto y coma ni parntesis. Las declaraciones ejecutan algunas acciones pero no son variables con valor o sirven para evaluar algn valor. El import es una declaracin 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 nmeros aleatorios (random numbers) Estas funciones las vamos a utilizar para obtener un nmeros que el computador pensara para que usted lo adivine. Linea 4:

Esta lnea crea una variable llamada oportunidadesAdivinar=0 donde se ir guardando el nmero de veces que el jugado adivina. Como vemos esta inicializada con un valor entero 0.

Estas lneas son las mismas que las que utilizamos en el programa holaSENA, en programacin frecuentemente re-usaremos cdigo de otros programas para ejecutar acciones parecidas. La lnea 6 es una llamada a la funcin print(). Recuerda que esta funcin es como un miniprograma que permite en desplegar en pantalla las oraciones, cadenas (strings) que le pasas. Cuando estas dos lneas 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.

La funcin random.randint()

En la lnea 9 nosotros llamamos a una nueva funcin llamada randint() que almacenara un valor aleatorio entre 1 y 20 en la variable numero. La funcin randint() devuelve un numero aleatorio que est entre el rango de valores que coloquemos entre parntesis , 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

Observe este ejemplo con nmeros aleatorios del 1 al 100

Igual podra probar con diferentes rangos:

Podriamos cambiar la dificultad del juego cambiando el rango de nmeros aleatorios en las lneas 9 y 10, miremos:

Ahora el nmero a adivinar seria entre 1 y 100, miremos como quedara:

Llamadas a Funciones que estn dentro de funciones Cuando 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 dnde viene o si es una funcin nueva, al contrario cuando utilizamos random.randint(1,2) estamos diciendo que randint es un modulo de random. Por eso despus de random se pone un punto que las une. Recuerde que cuando necesite Mdulos como Random debe importarlos al inicio del programa, para luego ser utilizados.

Bienvenida al juego. En la lnea 10 la funcin print() hace la bienvenida al juego llamndote por tu nombre y expresando que el computador ha pensado en un nmero aleatorio.

En esta lnea tu miras que hay unos signos + que sirven para unir las oraciones. Tambin debes darte cuenta que la oraciones van entre comillas simples. Loops o Ciclos

En la lnea 12 esta la palabra clave while que significa mientras, este es un ciclo o loop; esto lo que permite es que una accin se repita varias veces, en este caso se repetir la oportunidad de adivinar como mximo 6 veces. Por eso est el operador < (menor que) 6.

Bloque Un bloque es una o ms lneas de cdigo que se agrupan juntas y que tienen una identacin (numero de espacios en frente de la linea), en este caso la identacion es de 4 espacios para las lneas que van despus del loop while miremos:

Otro ejemplo de la identacin :

En este ejemplo la identacin de la lnea 12 es de 0 espacios en cambio en la lnea 13 es de 4 espacios.

Hay

espacios

El tipo de dato Booleano Los 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 comparacin y estructuras condicionales. Operador de comparacin Volvemos a la lnea 12 en la cual vemos que hay un operador de comparacin < (menor que)

Esta lnea se leera Mientras oportunidades de Adivinar sea menor que seis haga: Los otros operadores de comparacin con que contamos son los siguientes:

Entonces si t quisieras que el jugador solo tenga 4 oportunidades es en esta lnea donde podran cambiar esa sentencia.

Entrando datos por parte del jugador para adivinar En la lnea 14 se observa la funcin input() que permite capturar los datos desde teclado y lo guarda en la variable adivina, en la lnea 15 se llama a la funcin 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 conversin con esta funcin.

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

Es la respuesta del jugador muy baja con respeto al nmero pensado por el computador. Como se observa en la siguiente figura en la lnea 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 nmero ms 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 comparacin.

SALIR DE LOS CICLOS CON LA SENTENCIA break Observemos 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 nmero gano el juego Entonces si el numero que ingresa el usuario (adivina) es igual al nmero pensado entonces tenemos que mostrarle al usuario el mensaje de que gano como se ve en la lnea 30

Verificando si el jugador Perdi Si despus 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 ganar 2. Modifique el programa para que los nmeros a adivinar estn en los rangos de (20,40) (100, 200) 3. Modifique el programa para que ahora en vez de adivinar nmeros, adivine las vocales (a,e,i,o,u) 4. Investigue que otras funciones existen en el modulo Random

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

S-ar putea să vă placă și