Educación 3.0 | Homepage
El Proyecto Scratch de los Viernes (XXVIII): los números aleatorios y la aleatoriedad

El Proyecto Scratch de los Viernes (XXVIII): los números aleatorios y la aleatoriedad

1 Comentario 🕔02.Jun 2017

Cuando programamos un ordenador muchas veces es necesario darle un comportamiento aleatorio. En Scratch existe un generador de números al azar que puede dar mucho juego y que hoy, con nuestro Proyecto Scratch de los Viernes, queremos ayudarte a descubrir: así podemos crear comportamientos aleatorios en Scratch.

Los números aleatorios

Dentro de la categoría de Operadores de Scratch encontramos una instrucción que permite simular un comportamiento muy habitual en el mundo de la programación: la generación de números aleatorios (técnicamente es pseudo-aleatorio, pero esto no tiene mayor importancia en estos momentos). Scratch Número al azarA efectos prácticos, cada vez que ejecutemos esa instrucción nos devolverá un número diferente entre un rango dado. Por defecto entre 1 y 10, pero por supuesto podemos alterar estos valores para utilizar los que nosotros prefiramos.

A efectos prácticos es algo muy parecido a lanzar un dado o una moneda, y ver su resultado. Si generamos números aleatorios entre 1 y 2 estaremos simulando el comportamiento de lanzar una moneda (cara o cruz); si ponemos entre 1 y 6 estaremos emulando un dado de seis caras, y así con el rango que queramos. Si por ejemplo no ponemos rango (número al azar entre 1 y 1) siempre nos generará el mismo número (1); esto funciona con cualquier rango de números, incluso con negativos.

Una de las claves de utilizar los números aleatorios en Scratch es que, generalmente, hay que acompañarlos con una variable que ‘guarde’ el valor para luego poder jugar con él. Es precisamente lo que vamos a hacer hoy a través de un ejemplo muy sencillo que os presentamos a continuación.

Caminando ‘aleatoriamente’ al borde

Para demostrar cómo funcionan los números aleatorios en Scratch hemos ideado un sencillo programa cuyo funcionamiento podemos definir con los siguientes puntos:

  • El gato (por supuesto aquí podéis poner el elemento que queráis) partirá del centro del escenario, es decir, la posición X: 0; Y: 0.
  • Una vez en el centro, elegirá una dirección aleatoria (entre derecha, izquierda, arriba o abajo) y luego se moverá 10 pasos en esa dirección. Después volverá a elegir dirección (aleatoria) y se volverá a mover; así sucesivamente hasta que toque el borde.

Puede parecer que este sencillo programa no tenga demasiado sentido, si bien la realidad es que con él podemos trabajar conceptos de matemáticas o estadística si lo ampliamos ligeramente. Sin embargo, aquí nos centraremos solo en la parte de la aleatoriedad.

Así pues, lo primero que debemos hacer es colocar el objeto en el centro con un ir a x: 0, y: 0, y comenzar el bucle. Como queremos que se mueva hasta que toque el borde, aquí la mejor opción es un repetir hasta que tocando borde:

Scratch repetir

Dentro de este bucle hemos dicho que tenemos que generar ese comportamiento aleatorio que permita al programa determinar una de las cuatro direcciones y moverse hacia ella. Como tenemos cuatro direcciones, vamos a ‘tirar’ un dado de 4 caras y guardar su resultado en una variable que en mi caso he llamado resultado_dado:

Scratch número al azar

Si ejecutáis ahora el programa veréis cómo la variable resultado_dado va tomando valores diferentes, entre 1 y 4. Como va muy rápido podéis añadir un esperar (0.5) segundos para ver su comportamiento.

Y aquí es donde enlazamos la generación de números aleatorios con el comportamiento ‘real’ de nuestro gato. Teníamos cuatro direcciones y los valores generados van entre 1 y 4, de forma que tenemos que asignar un comportamiento (dirección + movimiento) a cada uno de esos valores. Tan sencillo como sentencias si… entonces para cada uno de los valores. Si el valor es 1, nos moveremos a la derecha; si es 2, hacia arriba; si es 3, hacia la izquierda, y si es 4, hacia abajo:

Scratch dirección aleatoria

Y hemos terminado, por ahora.

Pinta el camino que realiza el gato

Pero parece que nuestro protagonista simplemente se vuelve loco y camina. Vamos a añadir un poco de cordura a su movimiento a través de una representación visual, como en este caso es añadir el lápiz para que trace el recorrido que realiza.

Tan sólo necesitarás los habituales borrar, bajar lápiz y subir lápiz de la categoría de instrucciones de Lápiz. Colócalos como creas conveniente y pruébalo; nuestro resultado el siguiente:

Scratch aleatorio

Pero si volvemos a ejecutar el código, el resultado es diferente. Es lo que tienen usar códigos cuyo comportamiento es azaroso.

Resultados Scratch aleatorio 2

Y de nuevo, otro ejemplo:

Resultados Scratch aleatorio

Aunque posible, estadísticamente es muy poco probable que se repitan dos ‘dibujos’ iguales, ya que los números que se generan son, precisamente, aleatorios. Esto nos puede servir por ejemplo para trabajar el arte y ver las diferentes creaciones que realiza el ordenador.

Hasta el infinito… y más allá

Este ejemplo sin mayor trascendencia nos permite comprender y trabajar los números aleatorios. Y pensando un poco también podemos crear pequeñas grandes cosas, a través de las siguientes ampliaciones e ideas que os proponemos a continuación.

  • Dale color al lápiz, que cambie cada vez que tenga que decidir el siguiente movimiento. Puedes hacerlo ordenado (el mismo color para cada dirección) o también aleatorio, ¡como prefieras!
  • Prueba a contar el número de veces que tardas. Programa el proyecto para que de forma automática lo haga por ejemplo 100 veces. ¿Cuál es la media de ‘movimientos’ que necesita para alcanzar el borde? ¿Y si en vez de mover 10 pasos movemos menos? ¿Y más?
  • ¿Has pensado en cuál de los cuatro lados del escenario es en el que termina más veces? ¿Hay un 25% de probabilidad de terminar en cada uno de ellos? ¿Por qué? Si quieres, puedes dejar un comentario en esta entrada con la respuesta a esta pregunta 🙂
  • ¿Hay alguna diferencia entre usar al gato o utilizar otro objeto, por ejemplo una circunferencia?
  • Puedes plantear utilizar diferentes objetos que se comporten aleatoriamente en ambos casos. ¿Cuál llegará antes al borde? O mejor aún: que uno solo vaya hacia arriba, y el otro solo hacia abajo.

El Proyecto Scratch de los viernes es la sección en la que, cada primer viernes de mes, proponemos una idea de proyecto y damos algunas pistas para llevarlo a cabo. Hemos hablado de movimientos, figuras geométricas, historias, juegos de preguntas y respuestas, relojes, videojuegos… ¿Quieres saber más? Échale un vistazo a las ideas recopiladas en este enlace o al estudio Educación 3.0 en la comunidad de Scratch donde estamos incluyendo nuestros proyectos de los Viernes. Y por supuesto, ¡cualquier propuesta o sugerencia que tengas será bienvenida!

Artículos similares

5 libros para aprender a programar (y enseñar a tus alumnos)

5 libros para aprender a programar (y enseñar a tus alumnos) 0

La programación es uno de los campos educativos con mayor crecimiento en los últimos años,

El Proyecto Scratch de los viernes (XXIX): cazando al ratón

El Proyecto Scratch de los viernes (XXIX): cazando al ratón 0

¿Quién no se ha jugado alguna vez al juego del gato que caza al ratón?

Apps y juegos para aprender a programar

Apps y juegos para aprender a programar 4

¿Alguna vez has pensado en aprender a programar jugando a un videojuego? Se puede, claro

Robótica, ¿por dónde empezar? Los mejores kits para iniciarse

Robótica, ¿por dónde empezar? Los mejores kits para iniciarse 13

La robótica es una materia que a muchos les da auténtico pánico. Piensan en las

Las mejores plataformas para programar Arduino con Scratch

Las mejores plataformas para programar Arduino con Scratch 0

Cuando hablamos de programación en el entorno educativo hay dos plataformas que surgen rápidamente en

Sobre el autor

Pablo Espeso

Pablo Espeso

Ingeniero Informático, coordinador del Club de Jóvenes Programadores de la Universidad de Valladolid (CJP @ UVa) y apasionado por la docencia de las nuevas tecnologías, de la informática y, en particular, de la programación.

Ver más artículos 🌎Ver web Enviar un e-mail

1 Comentarios

  1. 🕔 21:38, 24.Jul 2017

    anonimo

    Aquí podéis encontrar un curso de scratch que está genial. http://programamos.es/curso-de-scratch

    Responder comentario

Escribe un comentario

Tu email no será publicado. Los campos obligatorios están marcados *

Nº 27 Educación 3.0

Publicidad

Publicidad

Categorías

Publicidad

Uso de cookies

El sitio web de Educación 3.0 utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies