 En este vídeo vamos a aprender el concepto de variable. Vamos a ver para qué sirven las variables en un programa. Y vamos a ver cómo utilizarlas para conseguir realizar un pequeño proyecto que vamos a utilizar a lo largo de este vídeo. Las variables no son más que un contenedor, un lugar en el que podemos recordar un valor. Pensemos en un post-it o una nota que pongo en la nevera para acordarme de la lista de la compra. Una variable cumple ese objetivo en un programa. Me permite apuntar en la variable cierto valor, pongamos un número y posteriormente puedo recordar el valor que he apuntado consultando el valor de la variable. Variable por lo tanto lo vamos a asimilar en esta analogía la nota que pego en la nevera para acordarme de la lista de la compra. Vamos a crear un proyecto en el que queremos que cada vez que pulsemos con el ratón sobre un objeto, sobre nuestro gato, aparezca un mensaje diciendo el número de veces que hemos pulsado sobre el objeto. De forma que queremos que Scratch y el gato cada vez que pulsamos sobre él diga me has pulsado una vez. Si pulsamos otra vez con el ratón sobre él diga me has pulsado dos veces y así. ¿Cómo podemos resolver este problema? Bueno, lo que vamos a hacer es en primer lugar detectar que estamos pulsando o con el ratón sobre el gato. Para eso vamos a utilizar una instrucción de las de la carpeta de eventos que es al clicar este objeto. Digamos que es un sombrero o al presionar bandera verde o al presionar la tecla espacio. En este caso es al clicar este objeto y aquí vamos a poner la instrucción que le haga al gato, estamos escribiendo código para el gato, decir el mensaje de cuántas veces nos han clicado. Para que pueda decir algo ya sabemos que tenemos esta instrucción. Por ahora vamos a escribir simplemente el texto que queremos que diga. Me has pulsado el número de veces que sea, por ahora no sabemos cómo hacer eso, pues me has pulsado una vez y hacemos que esto lo diga durante dos segundos. Este programa tan simple ya hace algo, vamos a verlo. Si lo rencamos cada vez que pulsamos al clicar sobre este objeto el gato dice esto. Bueno, ya tenemos una parte del programa. Vemos que se comporta bien porque si pinchamos en otra zona que no es el gato no ocurre nada, puesto que este sombrero quiere decir al clicar sobre este objeto. Si pinchamos sobre él vemos que vuelve a sacar el mensaje. Bien, en realidad nosotros queremos que diga cuántas veces se ha pulsado sobre el objeto. Para eso vamos a echar mano de las variables. Lo que vamos a hacer entonces es cada vez que pulsemos sobre el gato vamos a apuntarnos en una variable que nos ha pulsado una vez más. Para eso necesitamos la variable, necesitamos la nota de la compra que pegamos en la nevera. En la sección de datos podemos crear nuevas variables. También podemos crear listas, pero no vamos a trabajar ahora con listas. Una lista sería una variable en la que hay varios datos. La lista de la compra sería un buen ejemplo. Nosotros solamente necesitamos una variable en la que haya un número apuntado, que es el número de veces que han pulsado sobre el gato. Pulsamos sobre crear una variable y vemos que nos sale esta ventana en la que podemos darle un nombre a la variable. No le vamos a llamar lista de la compra, le vamos a llamar número de veces, que se yo, número de veces. Esta variable va a estar accesible, por defecto vemos que está seleccionada esta opción para todos los objetos, solo hay un objeto en nuestro programa. Si hubiera varios objetos podemos decir que la variable la puede usar todos los objetos o que solo la puede usar un objeto que tengamos seleccionado. Además podemos tener variables que se guardan en la nube y se guardan en el servidor de scratch. De forma que el programa, tras terminar, si vuelve a arrancar, puede mantener conservar el valor de la variable. Veremos que eso en ocasiones nos puede interesar y en ocasiones no. Luego volveremos sobre ello. De momento dejamos seleccionar esta opción. Digamos ok, y nada más darle ok, vemos que nos aparecen aquí unas cuantas instrucciones relacionadas con nuestra nueva variable numbvces. Una de ellas es un monitor. Ya hemos visto monitores, ahora tenemos un monitor de la variable numbvces. Lo seleccionamos para, por ahora, tener aquí el valor de nuestra variable mientras que hacemos nuestro programa. Fijaos que nuestro problema ahora, una vez que tenemos la variable, cada vez que hacemos clic sobre el objeto, queremos que se incremente en 1 el número de veces que hemos pulsado. Es decir que la variable no ponga 0 sino que ponga 1 y luego 2 cada vez que pulsemos aquí. Por otro lado, queremos utilizar el valor que haya en la variable para que el mensaje no diga que me ha expulsado una vez sino que diga que me ha expulsado 1, 2, 3 o el número de veces que haya apuntado en la variable numbvces. Para poder hacer estas acciones con la variable, tenemos estas instrucciones. La instrucción, fijar nombre de variable numbvces a un valor, hacer un este caso, hace que apuntemos en la variable cierto valor. Pensamos en la variable, recordemos la analogía como un postito o una nota en la nevera. Pues fijar numbvces a un valor es apuntar ese valor en el postito de la nevera, en la variable. Esta otra instrucción, cambiar numbvces por 1, lo que hace es incrementar en el valor que pongamos aquí el valor de la variable, de forma que si nuestra instrucción es cambiar numbvces por 6 y le ejecutamos, hará que se incremente en 6 unidades el valor de la variable numbvces. Vamos a ejecutarla pulsando sobre esta instrucción. Le he dado dos veces y vemos que ha pasado a valer 6 y luego 12 y si le vuelvo a dar 18. Cambiar numbvces le suma este valor a la variable. También admite número negativo, así ahora le pongo menos 18, como aquí tenemos el valor 18. Cambiar numbvces por menos 18 será 18 menos 18, 0. Te volvemos a esta instrucción. Por último, tenemos esta instrucción que sirve para que el monitor aparezca o desaparezca. Mostrar y esconder, si le damos, aparece el monitor, como ahora ya ha estado, pues no pasa nada, si le damos, lo esconde, le damos, aparece. No nos interesa ahora esta instrucción ni esta otra. Vamos entonces a modificar nuestro programa para, en primer lugar, que haga uso de la instrucción cambiarnos numbvces, de forma que cada vez que damos click sobre el objeto, se incremente en 1 el valor de numbvces y como hemos visto que esta instrucción es la que nos sirve para esto, pues la ponemos aquí. Ahora cada vez que hagamos click sobre el objeto se va a cambiar numbvces por 1 y va a salir nuestro mensaje que luego tendremos que hacer algo para que funcione como queremos. Vamos a comprobar cómo se comporta el programa después de añadir esta instrucción. Arrancamos el programa y ahora vemos que cada vez que pinchamos se incrementa en 1 la variable, ha pasado a valer 1 y se muestra el mensaje. Luego si vuelvo a pinchar, otra vez se va a cambiar por 1, como ahora vale 1, pues 1 más 1, 2 y saldrá el mensaje. Vemos que ahora vale 2 y si vuelvo a pinchar vemos que vale 3 porque cada vez que pincho aquí, que pincho en el objeto, se ejecuta este programa al clickar este objeto, se incrementa en 1 la variable y sale el mensaje. Pues ya tenemos una buena parte de nuestro programa terminada porque ya la variable va guardando el número de veces que hemos pulsado o que hemos hecho click sobre este objeto. Que nos faltaría pues únicamente modificar este texto para que en lugar de escribir siempre, me has pulsado una vez, lo que es mentira, pues que muestre el texto de me has pulsado lo que digan 1 veces, veces. ¿Cómo hacemos eso? Tenemos en la carpeta de operadores una instrucción que nos sirve para concatenar o unir un texto y otro texto. Nosotros queremos que salga siempre, me has pulsado, me has pulsado y ahora que aquí en lugar de poner esto, ponga el número de veces, pero el número de veces es lo que diga la variable, para eso lo usamos, para apuntar. ¿Cuántas veces nos han pulsado? Si nos vamos a datos tenemos aquí este monitor que podemos arrastrar y colocar aquí. La instrucción unir va a pegar, va a juntar, me has pulsado con lo que haya apuntado en nuestro post-it en la nevera, o sea, nuestra variable en 1 veces. Y una vez que tenemos esto, es un texto unido a este otro texto, lo sustituimos aquí en lugar de que diga esto el gato, que diga esto otro, decir, me has pulsado el número que sea durante dos segundos. Nuestro programa está terminado, vamos a ejecutarlo. He dado la bandera verde y ahora cada vez que pulsamos me has pulsado lo que diga 7 y si le doy otra vez me has pulsado 8 y 9, porque siempre cada vez que pulsamos aquí se ejecuta este programa que incrementa en 1 la variable y ahora une el texto se ha pulsado con lo que haya en la variable en 1 veces. Aquí vamos modificando el valor de la variable en 1 veces, aquí lo vamos consultando, leyendo, vamos a la nevera y leemos lo que dice la variable. Ahora ya que hemos terminado el programa podríamos quitar de aquí el monitor, lo deseleccionamos y nuestro programa funciona casi, casi perfectamente. ¿Por qué digo casi, casi perfectamente? ¿Qué ocurre ahora si paramos la ejecución del programa y lo volvemos a arrancar? Imaginemos que han pasado 3 días, lo hemos parado, lo hemos vuelto a arrancar y pinchamos sobre el gato y que dice me has pulsado 10 veces. Pero si habíamos parado el programa quizás nos interesa en este caso que cuando paramos el programa y lo volvemos a arrancar. Si pinchamos una primera vez en esta nueva ejecución el número de veces que nos diga que se ha pulsado el gato sea 1 y sin embargo pinchamos y dice me has pulsado 11 veces. ¿Se acuerda de el valor que tiene la variable? ¿Por qué es esto? Habíamos visto que cuando creamos la variable podíamos guardar su valor en la nube aunque paramos el programa y luego lo volvemos a arrancar el valor de la variable en 1 vez sigue en la nube y por eso se acuerda de cuántas veces lo hemos pulsado desde que se arrancó el programa la primera vez. ¿Qué es lo que le faltaría a este programa para que cuando paremos el programa y lo volvemos a arrancar siempre empieza inicializado a cero el número de veces que lo hemos pulsado? Pues precisamente la inicialización. Vamos a hacer que cada vez que arranquemos el programa utilizando el sombrero bandera verde el valor de la variable en 1 vez se inicialice a cero. Fijamos el valor de 1 vez a cero. Ahora cada vez que paremos el programa y lo volvemos a arrancar se va a ejecutar al personal bandera verde. Se va a iniciarizar una vez se va a fijar su valor a cero y entonces cuando cliquemos por primera vez en la nueva ejecución del programa se sumará 1 a cero y por lo tanto pasará a valer 1 la variable en 1 vez y el mensaje dirá me has pulsado 1. Vamos a comprobarlo como ahora tras haber hecho esto si paro el programa y lo ejecuto y pincho me dice me has pulsado una vez. Vemos con el monitor que lo que hay en 1 veces es 1. Si paro el programa y lo arranco vemos que al iniciarizarse 1 veces pasa a valer cero. Finalmente para concluir vamos a hacer que el mensaje que da el gato no diga me has pulsado y el número sino el que queríamos inicialmente y es me has pulsado el número y ahora veces. Ya hemos aprendido que unir nos sirve para concatenar juntar un texto y otro texto en este caso lo que haya en la variable en 1 veces. Podemos hacer que además se le una el texto detrás que diga veces sencillamente con otro unir en el primer parámetro ponemos esto y aquí ponemos veces. Unimos primero me has pulsado con el número de veces y ahora lo unimos con el texto veces. Vamos a dejar un espacio en blanco para que el número no nos aparezca pegado a este texto. Lo devolvemos a decir y comprobamos que ahora efectivamente el mensaje es me has pulsado una veces 2 veces, 3 veces. Este programa todavía tendría un problema y es que la primera vez que pulsamos nos dice me has pulsado una veces. En breve vamos a aprender cómo solucionar este problema con las sentencias condicionales.