jueves, 30 de octubre de 2014

Descripción de los programas


Multiplicación

El programa toma dos números al azar, digamos X y Y. Calcula el resultado correcto =X*Y. Pregunta al jugador "Cuanto es X*Y?". Compara la respuesta del jugador con el resultado correcto. Sí el jugador respondió correctamente entonces se incrementa en uno el número de respuestas correctas. Si no se incrementa en 1 el numero de respuestas incorrectas. El proceso se repite hasta que se llega a 10 respuestas correctas, en tal caso el jugador gana, o bien hasta que se llega a 4 respuestas incorrectas, en tal caso el jugador pierde. Añade cosas creativas al juego, por ejemplo, un escenario y una reacción del personaje a una respuesta correcta o a una respuesta incorrecta en términos del escenario que hayas elegido.

Retos:
1. Incorporar también sumas, restas y divisiones entre los números X y Y. 
2. Incorporar dos jugadores y una dinámica para ganar o perder que los incluya.

Pendiente

Dados dos puntos (x1, y1) y (x2, y2) la pendiente se define como
\[pendiente=\frac{y_2-y_1}{x_2-x_1}.\]
Escribe un programa que pregunta cuatro valores de entrada x1, y1, x2, y2. Con el personaje de tu elección dibuja el segmento de línea que va desde (x1, y1) hasta (x2, y2), calcula y muestra la pendiente por 4 segundos. 
¿Cual es la pendiente de una línea vertical? Intenta con (50,0) (50,100). Utiliza el bloque "Si-Entonces-Si no" para considerar las líneas verticales y evitar que la pendiente mostrada sea "Infinita".

Primos

Escribe un programa que pregunta por un valor de entrada n. Determina si el numero es o no es primo. Si el numero no es primo entonces el programa muestra el texto "El numero no es primo" por 2 segundos. Si el numero es primo entonces el programa muestra el texto "El numero SI es primo" por dos segundos.
No olvides añadir algo creativo a tu programa, un escenario y una historia.
Tips
-Un número n es primo si es divisible por 1 y por si mismo, y no es divisible por números intermedios entre ellos. 
-Si n es divisible por m entonces el resultado de la división n/m da un numero entero y el residuo es cero. En Scratch en la categoría de operadores podemos encontrar la función Modulo  "_ mod _" el cual nos proporciona el residuo de la división entre dos números.
-Si n es divisible por m entonces ya sabemos que n no es primo, sin embargo para saber si es primo tenemos que hacer todas las verificaciones.

Retos:
1. Convertir el programa en un juego que pregunte por números primos consecutivos sin repetición.
2. Extender el programa para que cuando un número no sea primo calcule la descomposición en números primos de dicho número.

Musical

  1. Elegir el instrumento que se desea tocar.
  2. Asignar cada una de las 25 notas musicales que vienen en Scratch a una tecla del teclado de la computadora, para que al presionar esa tecla suene la nota asignada y se muestre el disfraz correspondiente.
  3. Dibujar un disfraz asociado a cada nota, tal como aparece cuando eliges la nota musical.
  4. Hacer que el personaje "baile" cada que tocas una nota.
Retos:  
1. Crear una variable asociada al numero de instrumento y dos teclas que al presionarlas cambie al siguiente instrumento o al anterior. Con esto logramos tener todos los instrumentos a la mano, solo con presionar una tecla :D
2. Agregar también los otros instrumentos que solo tienen un sonido al considerar teclas que no habían sido consideradas.

Parabólico

Piensa en un mariscal de campo que se ubica en una posición (x,y) y lanza un objeto con un angulo A de lanzamiento y una velocidad inicial $V_0$. El cambio de posición en el tiempo se calcula como:
\[dx=\cos{A}*V_0*t,\\
dy=\sin{A}*V_0*t - \frac{g*t^2}{2}.\]
El angulo A es medido en grados, donde 0 es la horizontal, 90 es hacia arriba y 45 es la mitad. Considerar que la gravedad vale 9.81. Cuando el disparo no se hace desde las coordenadas (0,0) sino desde otras coordenadas (x_ini, y_ini) entonces la posición en cada instante del tiempo es dado por la posición inicial mas el cambio en x y en y debido al disparo  (x_ini + dx, y_ini +dy).
  1. En el juego el jugador tiene que proporcionar el angulo y la velocidad. 
  2. El tiempo inicia en 0 justo cuando se realiza el disparo.
  3. La posición se calcula a cada instante del tiempo hasta que el objeto toque el borde del escenario.
  4. Usamos el lápiz para dibujar la trayectoria que sigue el objeto lanzado.
  5. Del lado derecho del escenario ponemos un objeto u objetos al cual le queremos pegar o llegar.
Tips
-Si el personaje no sigue una trayectoria parecida a una piedra cuando tu la arrojas, entonces algo esta mal programado.
-Se debe considerar que el escenario esta limitado por los bordes, por lo que se deben considerar velocidades entre 0 y 100, después de ese valor el lanzamiento puede verse "extraño" en el programa.
-Ser muy cuidadoso de como se realizan las operaciones con los bloques de "operadores". Las operaciones se deben separar con los bloques tal como se harían con paréntesis usando una calculadora. No es lo mismo (2*3)-1 que 2*(3-1).

Carreras

Se tratar de un juego de carreras, contra otro oponente tratando de completar el recorrido lo antes posible sin salirse del camino, porque de lo contrario deberemos volver a empezar.
  1. Lo primero que vas a hacer es dibujar el circuito. Lo lógico para que el juego sea parejo es que el circuito sea el mismo.
  2. Tendremos dos corredores, elijan los personajes de su agrado. El primero lo controlaremos con flecha derecha (para cambiar un poco de dirección hacia la derecha), flecha izquierda (para cambiar de dirección hacia la izquierda) y flecha arriba (para avanzar un número de pasos mientras esté presionada).
  3. Si se sale de la pista tendrá que comenzar de nuevo y el que llegue al final del circuito primero gana. 
  4. En el escenario dibujar dos disfraces, uno para cuando gana el primer corredor y el otro para cuando gana el segundo corredor.
El programa es una pequeña variante del ejercicio que viene en este link .

Reto: Agregar una variable correspondiente a la velocidad con la que se mueve el corredor. Para ello considerar que debe haber una velocidad máxima (por ejemplo 4) que puede alcanzar y una velocidad mínima (cero)

Invasores

Considérese el juego de invasores espaciales donde hay una pequeña nave que dispara balas o proyectiles a unos marcianos que se acercan a la nave.

  1. Dibujar el escenario adecuado, el personaje que disparará los proyectiles (defensor) y los personajes que hacen el papel de atacar (invasores).
  2. Programar que tipo de movimiento sigue el defensor. Usualmente se mueven de lado a lado del escenario, en la parte baja.
  3. Programar lo correspondiente a los proyectiles hay dos opciones: primera, los proyectiles son visibles en todo momento, y van pegados al defensor hasta que este los dispara; segundo, los proyectiles se "esconden" y aparecen hasta que se hace el disparo, entonces salen del defensor y se mueven hacia arriba.
  4. Programar lo correspondiente a los invasores. Estos se mueven todos igual, de lado a lado del escenario y poco a poco se acercan hacia la parte baja del mismo. Cuando una bala los toca, cambian de disfraz a una donde explotan y luego se "esconden".
  5. Hay una variable que me cuenta cuantos invasores han explotado. Si explotaron todos antes de tocar al defensor entonces el defensor salio victorioso. Si algún invasor logra tocar al defensor, el defensor pierde la batalla.

Reto: Ahora el reto es programar que los invasores también pueden disparar, pero con menor frecuencia a la que puede disparar el defensor.

Pacman



No hay comentarios:

Publicar un comentario