Resumen de la segunda evaluación

Antes de comenzar he de comentar que esto no incluye todo el segundo trimestre, pero sí aquello de lo que no hay constancia en anteriores entradas o el propio Drive. Dicho esto, empecemos.

Python:

  • Finalizado el curso de introducción a las ciencias de la computación en CodeCombat:
  • Mitad del curso de Python 2 en CodeCademy:
Sin problemas en esta parte
Algo de dificultad en funciones, también en el uso de for argument1 in argument2
Debo repasar las listas y los diccionarios antes de continuar
  • A pesar de todo, este nivel adquirido en Python me permitió dar los primeros pasos en el diseño de programas. Para orientarme algo en los videojuegos utilicé este curso: http://programarcadegames.com/index.php?lang=es De momento solo he terminado las 4 primeras lecciones. Pero espero continuar con esta página y con codecademy.
  • El primer proyecto es el de adivinar un número al azar:
A pesar de que se explica como hacerlo en la lección 4 de la página mencionada, decidí hacerlo antes de ver la solución. De ahí las pequeñas diferencias, como el usar radint que me parece una función mucho mejor para esto.

-El funcionamiento del programa es sencillo. Primero exportamos la función randint de random. Luego establecemos una variable contadora de intentos (que por motivos lógicos es 1 al principio). A continuación generamos un número al azar con la función randint del 1 al 100 y lo guardamos en otra variable. Ahora pedimos introducir un número para tratar de adivinar y lo almacenamos en una tercera variable . Se realiza un bucle while de manera que hasta que no acertemos el número no podamos salir. (En caso de que hayamos acertado al principio, nunca entraremos en él)

-El bucle da una pista al jugador indicando si el número que tiene que adivinar es mayor o menor al que ha puesto, le deja volver a introducir un número y aumenta el número de intentos en uno. Cuando por fin salgas del bucle obtendrás un mensaje de victoria y se te dirá el número de intentos que necesitaste.

  • El segundo proyecto se basa en crear un juego de piedra papel o tijeras. Para este en concreto no he utilizado fuentes externas.

-Primero importamos la función randint (me encanta esa función). Ahora introducimos un típico mensaje de comienzo del juego. Declaramos seguir como verdadero, esto cobra sentido un poco más adelante. También declaramos i = 0 que será el número de partidas. También cobra sentido después.

-Hacemos un while que diga que seguirá mientras seguir sea equivalente a true. Esto sirve para que el usuario pueda jugar más de una partida. Declaramos que pc será un número del 1 al 3, esto lo hacemos después del while para que cada partida sea distinta. Lo siguiente sigue para darle un valor a pc1 que será la elección del ordenador según el número al azar.

-Ahora es el jugador quien elige. Hacemos un input dándole a escoger entre 6 opciones «piedra» «papel» «tijeras» «pi» «pa» «t». Para evitar problemas con la mayúscula creamos una variable que coja ese input y con la función lower lo ponga en minúsuculas. A continuación comenzamos un if que haga que cuando coincidan los dos valores, ponga un mensaje concreto.

-Los elif contemplan las distintas posibilidades en el juego. Elegí que fuesen elif para poder utilizar un else como mensaje de error en caso de que no se cumpliesen ninguno de estos, porque significaría que el jugador no hizo lo que se le mandó en el input.

-A continuación crearemos otro while para saber si el jugador quiere seguir en la partida. El motivo de que sea un while es el de prever errores y hacer más sencillo el programa. Le preguntamos si quiere o no seguir jugando. Si quiere seguir solo pasamos respuesta a verdadero para salir del bucle. Si es no, hacemos que respuesta sea verdadero para salir de ese bucle y seguir falso para poder salir del primer bucle y finalizar el programa.

-Ahora explicaremos que hace esa i en el medio. Como ya dijimos, representa el número de partidas jugadas. Se añade una al final de cada partida y tiene una función de optimización. Cuando el número de partidas sea superior a 3, para ahorrar tiempo al usuario, dejaremos de preguntarle si quiere seguir jugando. Pero a partir de 10 le volveremos a preguntar y le diremos que ya ha jugado bastante.

Esto es todo lo que he hecho durante este trimestre. La mayoría ha sido formación y teoría lo cual me prepara para hacer juegos básicos actualmente y más complejos en un futuro.

Extra: Para el juego de pares y nones tengo pensado hacer lo siguiente:

  • Al igual que en el de piedra papel y tijeras y adivina el número usaré la función randint para seleccionar un número del 0 al 5 y asignárselo al pc.
  • Se colocará un input() para que el usuario introduzca un número del 0 al 5. Si es diferente saltará un mensaje de error y se le obligará a volver a introducir.
  • Se preguntará al jugador si elige pares o nones introduciendo «p» o «n».
  • Se suman los valores de la elección del pc y la del jugador. Al estar en valores numéricos no hay que convertirlos.
  • Buscaré una función para crear un if que de la condición de nones en caso de que la suma sea impar un else que diga que entonces serán pares. Sospecho que se puede lograr con la función for ___ in___ mencionada anteriormente.
  • Finalmente creo un if que diga que si la elección del jugador es igual al resultado (equivalente) nos de un mensaje de victoria y un else que de un mensaje de derrota. Finalmente al igual que en el piedra papel y tijeras puedo implementar un while o dos para seguir jugando.

Actualización: Hoy sábado 14 hice el juego de pares y nones. En lugar de la función for __ in __ definí yo mismo una para saber si era par o impar.

Deja un comentario