). El nuevo archivo aparecerá en la lista de archivos en el lado izquierdo del área de trabajo.\n- Cambia el nombre del archivo, ya sea haciendo clic con el botón derecho del ratón y eligiendo \"Renombrar\", o haciendo clic en él cuando ya esté resaltado. **Asegúrate de que el nombre es único, descriptivo y termina en \".html \"**.\n- Utiliza HTML para rellenar tu nueva página. (Puedes utilizar el contenido de la página principal).\n- Enlaza con tu nueva página desde \"index.html\"\n- Enlaza con el índice desde tu nueva página.",
"CSD U2 classes haikus_2021": "\n\n::: detalles [**¿Cómo funciona el código?**]\nPara que el código funcione, necesitas una clase, un conjunto de reglas y elementos añadidos a la clase.\n\nLa clase img-top se crea en la hoja de estilo, e incluye tres reglas de clase en su conjunto de reglas.\n\n .top-img {\n height: 50px;\n border-radius: 5px;\n margin: 10px;\n }\n\nEl código en el archivo HTML añade elementos a las clases usando atributos dentro de las etiquetas. Por ejemplo, el código para añadir una imagen a la clase `img-top` es `
![\"Parakupá](\"angelfalls.jpeg\")
`. Este patrón se puede utilizar en la mayoría de las etiquetas.\n:::\n\n::: detalles [**¿Qué reglas se pueden añadir a un conjunto de reglas de clase?**]\n\nUn conjunto de reglas de clase puede tener las mismas reglas que cualquier otro tipo de selector. Si una regla no se aplica al contenido de la clase (por ejemplo, usar `font-size` en un elemento sin texto), entonces el equipo ignorará esa regla, pero seguirá usando las reglas que sí funcionan.\n:::\n\n::: detalles [**¿Por qué el selector tiene un punto delante?]\nEn CSS, un punto delante de un selector significa que el selector es el nombre de una clase. Si no hay punto, significa que el selector es el nombre de una etiqueta HTML.\n:::\n\n::: detalles [**¿Por qué un desarrollador web utiliza clases?**]\n\nUn desarrollador web utiliza las clases cuando algunos elementos deben tener un estilo diferente a otros, incluso si son la misma etiqueta. Las clases también se pueden utilizar para dar el mismo estilo a los elementos que tienen diferentes etiquetas .\n\n:::\n\n
\n\n# ¡Haikus!\n\nEsta página tiene varios haikus diferentes.\n\n# Haz esto\n\n- Elige un haiku y dale un aspecto especial creando una clase para sus etiquetas de párrafo y cabecera. Utiliza al menos tres propiedades CSS.\n\n¿Qué hace la <br> etiqueta?
\n\nLa etiqueta \\
se utiliza aquí para iniciar una nueva línea dentro del mismo párrafo. En el código siguiente, cada poema se sigue tratando como un párrafo grande. Sin embargo, la etiqueta \\
pone cada línea del haiku en su propia línea. No necesitas añadir ningún CSS o clase a las \\
etiquetas.\n\n ",
"CSD U2 classes music_2021": "\n\n::: detalles [**¿Cómo funciona el código?**]\nPara que el código funcione, necesitas una clase, un conjunto de reglas y elementos añadidos a la clase.\n\nLa clase img-top se crea en la hoja de estilo, e incluye tres reglas de clase en su conjunto de reglas.\n\n```\n.top-img {\n height: 50px;\n border-radius: 5px;\n margin: 10px;\n}\n```\n\nEl código en el archivo HTML añade elementos a las clases usando atributos dentro de las etiquetas. Por ejemplo, el código para añadir una imagen a la clase `img-top` es `
![\"Parakupá](\"angelfalls.jpeg\")
`. Este patrón se puede utilizar en la mayoría de las etiquetas.\n:::\n\n::: detalles [**¿Qué reglas se pueden añadir a un conjunto de reglas de clase?**]\n\nUn conjunto de reglas de clase puede tener las mismas reglas que cualquier otro tipo de selector. Si una regla no se aplica al contenido de la clase (por ejemplo, usar `font-size` en un elemento sin texto), entonces el equipo ignorará esa regla, pero seguirá usando las reglas que sí funcionan.\n:::\n\n::: detalles [**¿Por qué el selector tiene un punto delante?]\nEn CSS, un punto delante de un selector significa que el selector es el nombre de una clase. Si no hay punto, significa que el selector es el nombre de una etiqueta HTML.\n:::\n\n::: detalles [**¿Por qué un desarrollador web utiliza clases?**]\n\nUn desarrollador web utiliza las clases cuando algunos elementos deben tener un estilo diferente a otros, incluso si son la misma etiqueta. Las clases también se pueden utilizar para dar el mismo estilo a los elementos que tienen diferentes etiquetas.\n\n\n:::\n
\n\n# Identificadores Únicos\n\nTambién se puede utilizar el atributo `id` para seleccionar un solo elemento para un conjunto de reglas. \n\n# Haz esto\n\n* Mira el elemento de la imagen con la etiqueta, `
` y fíjate en el atributo `id`.\n* En `style.css`, mira el conjunto de reglas con el selector `#notes`. Fíjate en que utiliza un `#` en lugar de un punto.\n* Añade una nueva imagen en la página desde los archivos disponibles, y dale su propio estilo.\n",
- "CSD U2 external links_2021": "Vinculando Páginas Externas\n\n\n\nTambién puedes crear vínculos que lleven a otros sitios web como Google usando la etiqueta ``.\n\n# Haz esto:\n* Mira el código que vincula a Google y observa cómo funciona\n* Vincula tus sitios web favoritos y ¡cuéntanos por qué te gustan!\n\n",
- "CSD U2 image links_2021": "# Imágenes como Vínculos\n\n\n\nHas aprendido que el texto que escribes entre las etiquetas `` y `` es lo que los visitantes de tu página verán y sobre lo que pulsarán cuando usen los vínculos. En realidad, también puedes añadir otras etiquetas y contenidos, como imágenes, en este espacio de tu código.\n\n# Haz esto:\n* Mira el código que convierte las dos primeras imágenes de la página `index.html` en vínculos.\n* Utiliza ese mismo patrón de código para convertir las dos segundas imágenes en vínculos, también.\n\n",
+ "CSD U2 external links_2021": "Enlazando Páginas Externas\n\n\n\nTambién puedes crear enlaces que lleven a otros sitios web como Google usando la etiqueta ``.\n\n# Haz esto:\n* Mira el código que enlaza a Google y observa cómo funciona\n* Enlaza tus sitios web favoritos y ¡cuéntanos por qué te gustan!\n\n",
+ "CSD U2 image links_2021": "# Imágenes como Enlaces\n\n\n\nHas aprendido que el texto que escribes entre las etiquetas `` y `` es lo que los visitantes de tu página verán y sobre lo que pulsarán cuando usen los enlaces. En realidad, también puedes añadir otras etiquetas y contenidos, como imágenes, en este espacio de tu código.\n\n# Haz esto:\n* Mira el código que convierte las dos primeras imágenes de la página `index.html` en enlaces.\n* Utiliza ese mismo patrón de código para convertir las dos segundas imágenes en enlaces, también.\n\n",
"CSD U2 link demo_2021": "# Creando un Sitio Multipágina\n\n\n\nUn sitio web debe incluir más de una página web, y éstas deben conectarse entre sí. Este es un ejemplo de un proyecto con múltiples páginas que están conectadas por hipervínculos (las palabras subrayadas en azul que te llevan a otra página cuando haces clic en ellas).\n\n# Haz esto\n\n- Utiliza la herramienta de inspección para ver el código que crea los hipervínculos en la parte superior de index.html.\n- Comenta con tu compañero cómo crees que funciona ese código.",
- "CSD U2 making links_2021": "# Añadiendo Vínculos\n\n\n\nEsta página está casi funcionando, pero una de las páginas no está vinculada.\n\n# Haz esto\n\n- Mira los vínculos que funcionan y comprueba cómo funcionan.\n- Añade el código que vinculará a la página del índice con la página del Puente de Carlos.\n- Añade el código que vinculará a la página del Puente de Carlos con la página del índice.",
- "CSD U2 naming links_2021": "# Nombrando Vínculos\n\n\n\nAl igual que las imágenes y los archivos, los vínculos deben tener nombres claros que ayuden a entender a qué página están vinculados.\n\n# Haz esto\n\n- Lee el código o haz clic en los vínculos para ver a dónde van.\n- Cambia los nombres de los vínculos para que quede claro a dónde te llevarán.",
- "CSD U2 naming pages_2021": "# Nombrando Nuevas Páginas\n\n\n\nNecesitarás seguir las mismas reglas para nombrar las páginas html que para nombrar las imágenes. Esta página tiene algunos problemas causados por archivos HTML mal nombrados.\n\n# Haz esto\n\n- Haz clic en los vínculos de \"index.html\" y comprueba cuáles están rotos.\n- Cambia los nombres de los archivos y los atributos `href` de los vínculos para que sigan unas buenas normas de nomenclatura como: \n - Evita caracteres especiales como `&`, `?`, `%`, `/`, etc.\n - Asegúrate de que el nombre tenga un significado específico que ayude a saber de qué página se trata.\n - Utiliza guiones (`-`) o guiones bajos (`_`) en lugar de espacios.\n - Escribe los nombres lo más cortos posible y que tengan un significado claro.",
- "CSD U2 nav bar_2021": "# Barra de Navegación\n\n\n\nLa mayoría de los sitios web utilizan barras de navegación que te ayudan a desplazarte por el sitio. Deben ser las mismas en todas las páginas.\n\n# Haz esto\n\n- Revisa la barra de navegación en \"index.html\".\n- Añade la misma barra de navegación a las otras tres páginas.",
+ "CSD U2 making links_2021": "# Añadiendo Enlaces\n\n\n\nEsta página está casi funcionando, pero una de las páginas no está enlazada.\n\n# Haz esto\n\n- Mira los enlaces que funcionan y comprueba cómo funcionan.\n- Añade el código que enlazará a la página del índice con la página del Puente de Carlos.\n- Añade el código que enlazará a la página del Puente de Carlos con la página del índice.",
+ "CSD U2 naming links_2021": "# Nombrando Enlaces\n\n\n\nAl igual que las imágenes y los archivos, los enlaces deben tener nombres claros que ayuden a entender a qué página están vinculados.\n\n# Haz esto\n\n- Lee el código o haz clic en los enlaces para ver a dónde van.\n- Cambia los nombres de los enlaces para que quede claro a dónde te llevarán.",
+ "CSD U2 naming pages_2021": "# Nombrando Nuevas Páginas\n\n\n\nNecesitarás seguir las mismas reglas para nombrar las páginas html que para nombrar las imágenes. Esta página tiene algunos problemas causados por archivos HTML mal nombrados.\n\n# Haz esto\n\n- Haz clic en los enlaces de \"index.html\" y comprueba cuáles están rotos.\n- Cambia los nombres de los archivos y los atributos `href` de los enlaces para que sigan unas buenas normas de nomenclatura como: \n - Evita caracteres especiales como `&`, `?`, `%`, `/`, etc.\n - Asegúrate de que el nombre tenga un significado específico que ayude a saber de qué página se trata.\n - Utiliza guiones (`-`) o guiones bajos (`_`) en lugar de espacios.\n - Escribe los nombres lo más cortos posible y que tengan un significado claro.",
+ "CSD U2 nav bar_2021": "# Barra de Navegación\n\n\n\nLa mayoría de los sitios web utilizan barras de navegación que te ayudan a desplazarte por el sitio. Deben ser las mismas en todas las páginas.\n\n# Haz esto\n\n- Revisa la barra de navegación en \"index.html\".\n- Añade la misma barra de navegación a las otras tres páginas.",
"CSD U3 - conditionals - transition_2021": "# Booleanos\n\nEl programa dibuja un coche de carreras y una línea de meta. Vamos a averiguar cuándo cruza la línea de meta el coche de carreras . Los sprites han sido preparados para ti.\n\n# Haz esto\n\n- Añade una declaración `console.log` dentro del bucle de dibujo. ( [Muéstrame dónde](#triggercallout=callout) )\n- Añade una expresión booleana dentro del `console.log` que pregunte \"¿Es la posición x del coche de carreras menor que la posición x de la línea de meta?\"\n- Observa la salida del programa mientras el coche se mueve. ¿Cuándo cambia la salida? ¿Por qué?",
- "CSD U3 Boolean Modify_2021": "# Expresiones Booleanas\n\nLas expresiones booleanas más simples son preguntas que el ordenador puede responder con verdadero o falso. \nOtra forma de decir esto es que las expresiones booleanas se **evalúan** a `verdadero` o `falso`.\n\n# Haz esto\n¿Puedes modificar los valores de las propiedades de los sprites para que cada una de las expresiones booleanas se evalúe como `verdadero`?\n\n- Lee todo el programa para ver cómo se crean `sprite1` y `sprite2` y qué propiedades se comparan.\n- Para cada una de las expresiones booleanas, identifica las propiedades del sprite que se comparan.\n- Cambia el código _sólo en las primeras **11** líneas_ para que cada una de las sentencias `console.log()` imprima `cierto`.\n",
+ "CSD U3 Boolean Modify_2021": "# Expresiones Booleanas\n\nLas expresiones booleanas más simples son preguntas que el ordenador puede responder con verdadero o falso. \nOtra forma de decir esto es que las expresiones booleanas se **evalúan** como `verdadero` o `falso`.\n\n# Haz esto\n¿Puedes modificar los valores de las propiedades de los sprites para que cada una de las expresiones booleanas se evalúe como `verdadero`?\n\n- Lee todo el programa para ver cómo se crean `sprite1` y `sprite2` y qué propiedades se comparan.\n- Para cada una de las expresiones booleanas, identifica las propiedades del sprite que se comparan.\n- Cambia el código _sólo en las primeras **11** líneas_ para que cada una de las sentencias `console.log()` imprima `cierto`.\n",
"CSD U3 Conditionals Apple 2_2021": "# Cambiando la Fruta\n\nAhora que sabemos cómo usar las sentencias _if_, puedes hacer algo más que comprobar si la manzana ha alcanzado la escala 2. La conviertes en pera una vez que sucede.\n\n# Haz esto\n\nUsa una condicional en el bucle de dibujo para comprobar si `fruit.scale` es mayor que 2. Si lo es, cambia la animación de la fruta a \"pera\".",
- "CSD U3 Diagonal Movement_2021": "
\n\n# Movimiento Diagonal\n\n
\n\nActualizar las propiedades `x` o `y` de un sprite puede hacer que se mueva en diagonal. Puedes usar los \"vigilantes\" bajo el área de código para ver cómo cambia cada propiedad.\n\n# Haz esto\n\n- Lee el código que mueve el ratón hacia abajo.\n- Ejecuta el programa y mira los \"vigilantes\" para ver qué pasa con las propiedades `mouse.x` y `mouse.y`.\n- Añade una línea más de código que haga al ratón moverse en diagonal.\n- Ejecuta tu código de nuevo y mira los \"vigilantes\".\n\n\\*\\*Desafío: Establece la propiedad `rotation` del sprite para que esté orientado en la dirección en la que se está moviendo.",
+ "CSD U3 Diagonal Movement_2021": "
\n\n# Movimiento Diagonal\n\n
\n\nActualizar las propiedades `x` o `y` de un sprite puede hacer que se mueva en diagonal. Puedes usar los \"vigilantes\" bajo el área de código para ver cómo cambia cada propiedad.\n\n# Haz esto\n\n- Lee el código que mueve el ratón hacia abajo.\n- Ejecuta el programa y mira los \"observadores\" para ver qué pasa con las propiedades `mouse.x` y `mouse.y`.\n- Añade una línea más de código que haga al ratón moverse en diagonal.\n- Ejecuta tu código de nuevo y mira los \"observadores\".\n\n\\*\\*Desafío: Establece la propiedad `rotation` del sprite para que esté orientado en la dirección en la que se está moviendo.",
"CSD U3 Draw Loop Plugged orange and green_2021": "
\n\n# Usando el Bucle de Dibujo\n\nAhora es tu turno de trabajar con el bucle de dibujo. Recuerda que el código dentro del bucle de dibujo es ejecutado por el Laboratorio de Juegos una y otra vez.\n\n# Haz esto\n\n- Añade código a este programa para que tu dibujo también tenga círculos naranjas dibujándose.\n- Continúa cuando tu programa se parezca a la imagen de la derecha.",
"CSD U3 Draw Loop Plugged update your scene_2021": "# Amplía tu Escena\n\nEsta es la escena de sprites que hiciste en la última lección. Ahora la actualizarás un poco para utilizar el bucle de dibujo y las propiedades del sprite.\n\n
\n\n# Haz esto\n\n* Añade un bucle de dibujo a tu programa (sólo deberías tener uno).\n* Usa el selector de lazo (haz clic, mantén y arrastra) para seleccionar el código que se actualizará cada vez y colócalo dentro de tu bucle de dibujo. Ctrl-Z te permitirá deshacer cualquier error que cometas.\n* Añade código a tu programa para actualizar las propiedades `sprite.x`, `sprite.y` o `sprite.rotation` de tus sprites para que se muevan. Tendrás que actualizarlas con `randomNumber()`.\n",
"CSD U3 Draw Loop Plugged wiggle sprite rotation_2021": "
\n\n# Actualizando Propiedades\n\nEste nivel combina algunas de las habilidades que ya has visto. Está dibujando elipses en el fondo y también actualizando las propiedades del sprite. Esta vez está cambiando la propiedad `sprite.rotation` del sprite.\n\n# Haz esto\n\nEsta animación ya está actualizando la propiedad de rotación de un sprite para que parezca que está en movimiento\n\n* Ejecuta el programa para ver cómo funciona.\n* Añade código a este programa para hacer que el otro alienígena se mueva igual que el primero.\n* Sigue adelante cuando tu programa se parezca a la imagen de la derecha.",
@@ -5099,22 +5099,22 @@
"CSD U3 L5 Freeplay_2021": "# Juego Libre\n\nUtiliza lo que has aprendido para crear lo que quieras. Cuando hayas terminado, puedes hacer clic en ![](https://images.code.org/2fd36aba2af21d292932b77fb0b9fd0e-image-1498689573973.36.43 PM.png) para enviar tu creación a un amigo, o ![](https://images.code.org/1ddae93513aff160349643f1909590e8-image-1498689597186.36.50 PM.png) para enviarlo a tu Galería de Proyectos.\n\n\n\n",
"CSD U3 L7 Freeplay_2021": "# Juego Libre\n\nUtiliza lo que has aprendido para crear lo que quieras. Cuando hayas terminado, puedes hacer clic en ![](https://images.code.org/2fd36aba2af21d292932b77fb0b9fd0e-image-1498689573973.36.43 PM.png) para enviar tu creación a un amigo, o ![](https://images.code.org/1ddae93513aff160349643f1909590e8-image-1498689597186.36.50 PM.png) para enviarlo a tu Galería de Proyectos.",
"CSD U3 L9 Freeplay_2021": "# Juego Libre\n\nUtiliza lo que has aprendido para crear lo que quieras. Cuando hayas terminado, puedes hacer clic en ![](https://images.code.org/2fd36aba2af21d292932b77fb0b9fd0e-image-1498689573973.36.43 PM.png) para enviar tu creación a un amigo, o ![](https://images.code.org/1ddae93513aff160349643f1909590e8-image-1498689597186.36.50 PM.png) para enviarlo a tu Galería de Proyectos.",
- "CSD U3 Movement Fish challenge2_2021": "# Burbujas\n\nTambién puedes utilizar el patrón de contador para animar formas, como rectángulos y elipses. Como esta es una escena submarina, vamos a intentar crear una burbuja que flote en la parte superior de la pantalla utilizando una forma de elipse. Si usamos el patrón de contador para actualizar el valor `y` de la elipse, podemos hacer que parezca que está flotando hacia la parte superior de la pantalla.\n\n## Haz esto:\n* Crea al menos una nueva variable para llevar la cuenta del cambio de la posición `y` de las burbujas.\n* Establece el valor a 400, u otro número cercano a la parte inferior de la cuadrícula.\n* Utiliza `noFill()`, `stroke()`, `strokeWeight()`, y `ellipse()` para dibujar al menos una burbuja.\n* Utiliza la variable que has creado para especificar la posición *y* de la elipse.\n* Utiliza el patrón de contador con resta en la variable para hacer que la elipse suba lentamente.\n\n¿Qué código va por encima del bucle de dibujo?
\n\nSólo la variable que tu creas. \n\nPor ejemplo: `var bubble = 400;`\n \n\n¿Qué código va dentro del bucle de dibujo?
\n\nLos bloques utilizados para dibujar la burbuja y el patrón de contador.\n\nPor ejemplo: \n```\nellipse(200, bubble, 25, 25);\nbubble = bubble - 2;\n```\n\n ",
+ "CSD U3 Movement Fish challenge2_2021": "# Burbujas\n\nTambién puedes utilizar el patrón de contador para animar figuras, como rectángulos y elipses. Como esta es una escena submarina, vamos a intentar crear una burbuja que flote en la parte superior de la pantalla utilizando una forma de elipse. Si usamos el patrón de contador para actualizar el valor `y` de la elipse, podemos hacer que parezca que está flotando hacia la parte superior de la pantalla.\n\n## Haz esto:\n* Crea al menos una nueva variable para llevar la cuenta del cambio de la posición `y` de las burbujas.\n* Establece el valor a 400, u otro número cercano a la parte inferior de la cuadrícula.\n* Utiliza `noFill()`, `stroke()`, `strokeWeight()`, y `ellipse()` para dibujar al menos una burbuja.\n* Utiliza la variable que has creado para especificar la posición *y* de la elipse.\n* Utiliza el patrón de contador con resta en la variable para hacer que la elipse suba lentamente.\n\n¿Qué código va por encima del bucle de dibujo?
\n\nSólo la variable que tu creas. \n\nPor ejemplo: `var bubble = 400;`\n \n\n¿Qué código va dentro del bucle de dibujo?
\n\nLos bloques utilizados para dibujar la burbuja y el patrón de contador.\n\nPor ejemplo: \n```\nellipse(200, bubble, 25, 25);\nbubble = bubble - 2;\n```\n\n ",
"CSD U3 Movement Fish challenge_2021": "# ¡Más peces!\n\nAntes de aprender el patrón de contador, aprendiste a establecer las propiedades de los sprites, como la rotación con valores aleatorios para animarlos. Estableciendo la rotación de los peces a un número aleatorio, puedes hacer que parezcan moverse ligeramente. Esto hará que su animación de movimiento sea más realista.\n\n## Haz esto:\n* Para cada pez, establece su rotación aleatoriamente dentro del bucle de dibujo.\n * Para que parezca lo más realista posible, elige un pequeño rango de valores negativos y positivos.",
- "CSD U3 Movement Gears_2021": "
\n\n# Dirección de Rotación\n\nCuando usas el patrón de contador para la propiedad `rotation` con la suma, el objeto siempre girará en el sentido de las agujas del reloj. Sin embargo, a veces necesitarás que tu sprite gire en el sentido contrario. Para hacer esto puedes usar la resta.\n\n# Haz esto\n\nHay tres engranajes preparados para ti. Necesitas hacer que todos los engranajes parezcan estar girando sincronizados entre sí.\n\n* Haz que los engranajes giren para que parezca que están trabajando como un solo sistema.\n* **Pista: No todos girarán en la misma dirección**.",
+ "CSD U3 Movement Gears_2021": "
\n\n# Sentido de Giro\n\nCuando usas el patrón de contador para la propiedad `rotación` con la suma, el objeto siempre girará en el sentido de las agujas del reloj. Sin embargo, a veces necesitarás que tu sprite gire en el sentido contrario. ¡Para hacer esto puedes usar la resta!\n\n# Haz esto\n\nHay tres engranajes preparados para ti. Necesitas hacer que todos los engranajes parezcan estar girando sincronizados entre sí.\n\n* Haz que los engranajes giren para que parezca que están trabajando como un solo sistema.\n* **Pista: No todos girarán en la misma dirección**.",
"CSD U3 Plotting Shapes Shape Lab_2021": "# Dibujando Figuras\n\nExplora utilizando esta herramienta que te permite dibujar figuras de diferentes colores. \n\n- Elige un color para cambiar el color de las figuras\n- Haz clic en una figura CADA VEZ que quieras dibujar una figura nueva\n- Prueba a activar la cuadrícula marcando la casilla que hay debajo del botón \"Ejecutar\" en la parte inferior.\n\nAsegúrate de pulsar \"Ejecutar\" para iniciar el programa.",
- "CSD U3 Random add_2021": "Simetría\n\nHas aprendido a hacer cosas aleatorias, pero ¿qué pasa si quieres que dos formas aleatorias estén relacionadas de alguna manera? Utilizar una variable y experimentar con las operaciones matemáticas (+, -, *, /) puede permitirte crear efectos como la simetría en tu trabajo. Los patrones de las alas de las mariposas son naturalmente simétricos. Las manchas rojas de este dibujo están colocadas de forma aleatoria, pero la segunda mancha está siempre a la misma distancia del lado derecho de la pantalla que la primera del izquierdo.\n\n# Haz esto\n\n* Estudia cómo se dibujan los puntos rojos (líneas 23-24). Observa cómo se utiliza la sustracción.\n* Utiliza este patrón de nuevo para crear una segunda mancha amarilla para dar a la mariposa una mejor simetría.\n* Como desafío, crea una variable spot3, y luego añade dos elipses más a las alas de la mariposa.",
- "CSD U3 Random arc_2021": "# Arcos Aleatorios\n\nEn la escena de abajo lo único que hay es un montón de arcos que se parecen. No es muy emocionante.\n# Haz esto\n\n* ¡Haz esta escena más divertida! Ahora sabes cómo hacer aleatorias cosas como la posición y el ángulo, pero no te olvides de cosas como el color de relleno, el color del trazo y el grosor del trazo. ¡Diviértete!\n\n",
+ "CSD U3 Random add_2021": "Simetría\n\nHas aprendido a hacer cosas aleatorias, pero ¿qué pasa si quieres que dos formas aleatorias estén relacionadas de alguna manera? Utilizar una variable y experimentar con las operaciones matemáticas (+, -, *, /) puede permitirte crear efectos como la simetría en tu trabajo. Los patrones de las alas de las mariposas son naturalmente simétricos. Las manchas rojas de este dibujo están colocadas de forma aleatoria, pero la segunda mancha está siempre a la misma distancia del lado derecho de la pantalla que la primera del izquierdo.\n\n# Haz esto\n\n* Estudia cómo se dibujan los puntos rojos (líneas 23-24). Observa cómo se utiliza la resta.\n* Utiliza este patrón de nuevo para crear una segunda mancha amarilla para dar a la mariposa una mejor simetría.\n* Como desafío, crea una variable spot3, y luego añade dos elipses más a las alas de la mariposa.",
+ "CSD U3 Random arc_2021": "# Arcos Aleatorios\n\nEn la escena de abajo lo único que hay es un montón de arcos que se parecen. No es muy emocionante.\n# Haz esto\n\n* ¡Haz esta escena más divertida! Ahora, ya sabes hacer cosas aleatorias como la posición y el ángulo, pero no te olvides de otras cosas como el color de relleno, el color del trazo y el grosor del trazo. ¡Diviértete!\n\n",
"CSD U3 Random free play_2021": "# Juego Libre\n\nUtiliza lo que has aprendido para crear lo que quieras. Cuando hayas terminado, puedes hacer clic en ![](https://images.code.org/2fd36aba2af21d292932b77fb0b9fd0e-image-1498689573973.36.43 PM.png) para enviar tu creación a un amigo, o ![](https://images.code.org/1ddae93513aff160349643f1909590e8-image-1498689597186.36.50 PM.png) para enviarlo a tu Galería de Proyectos.\n\n\n\n",
- "CSD U3 Random line_2021": "# Líneas Aleatorias\n\nEn la escena de abajo todo es un montón de líneas rectas. No es muy emocionante.\n# Haz esto\n\n* ¡Haz esta escena más divertida! Ahora sabes cómo hacer aleatorias cosas como la posición, pero no te olvides de cosas como el color y el grosor de los trazos. ¡Diviértete!\n",
- "CSD U3 Random multiply_2021": "# Hacer dos Figuras Juntas Aleatorias\n\nA veces quieres hacer aleatorias partes de un dibujo, pero que las formas sigan funcionando juntas. A menudo se puede hacer esto utilizando variables y operaciones matemáticas (+, -, *, /). Este dibujo de un árbol utiliza \"height\" para controlar la altura del tronco y la posición vertical de las hojas. Utiliza `width` para establecer la anchura del tronco. Otra variable `leavesWidth` controla el tamaño de las hojas.\n\n# Haz esto\n\n* Observa los rangos de las variables `width` y `leavesWidth`. ¿En qué se diferencian?\n* Ejecuta el programa repetidamente hasta que notes qué es lo que a veces falla.\n¿Qué es lo que falla?
A veces `leavesWidth` es menor que `width` lo que hace que la elipse sea demasiado pequeña. \n* Edita el código para que la anchura de las hojas sea siempre exactamente el doble de la anchura del tronco del árbol.",
+ "CSD U3 Random line_2021": "# Líneas Aleatorias\n\nEn la escena de abajo todo es un montón de líneas rectas. No es muy emocionante.\n# Haz esto\n\n* ¡Haz esta escena más divertida! Ahora, ya sabes hacer cosas aleatorias como la posición, pero no te olvides de otras cosas como el color y el grosor de los trazos. ¡Diviértete!\n",
+ "CSD U3 Random multiply_2021": "# Crear dos Figuras Juntas Aleatorias\n\nA veces quieres hacer aleatorias partes de un dibujo, pero que las formas sigan funcionando juntas. A menudo se puede hacer esto utilizando variables y operaciones matemáticas (+, -, *, /). Este dibujo de un árbol utiliza \"height\" para controlar la altura del tronco y la posición vertical de las hojas. Utiliza `width` para establecer la anchura del tronco. Otra variable `leavesWidth` controla el tamaño de las hojas.\n\n# Haz esto\n\n* Observa los rangos de las variables `width` y `leavesWidth`. ¿En qué se diferencian?\n* Ejecuta el programa repetidamente hasta que notes qué es lo que a veces falla.\n¿Qué es lo que falla?
A veces `leavesWidth` es menor que `width` lo que hace que la elipse sea demasiado pequeña. \n* Edita el código para que la anchura de las hojas sea siempre exactamente el doble de la anchura del tronco del árbol.",
"CSD U3 Random planets_2021": "# Modifica los Planetas\n\nYa has aprendido a modificar las cosas al azar, ¡así que es hora de poner todo ese conocimiento en práctica en esta escena!\n\n# Haz esto\n\n* ¡Haz esta escena más divertida! Asigna a los planetas tamaños aleatorios para que siempre estén cambiando. Y para mayor diversión, ¡cambia aleatoriamente sus posiciones!",
"CSD U3 Random rainbow snake_2021": "
\n\n# Serpiente Arco Iris\n\nEste programa dibuja una serpiente arco iris. Para hacer que la serpiente se dibuje de forma diferente cada vez tendrás que usar números aleatorios.\n\n# Haz esto\n\n- Ejecuta el programa varias veces para ver cómo funciona el código de inicio.\n- Añade al menos tres nuevos círculos de diferentes colores a tu serpiente arco iris.\n- Usa `randomNumber()` para hacer que el resto del cuerpo de la serpiente se mueva hacia arriba y hacia abajo como los tres primeros.\n\n_Desafío: ¿Puedes hacer que el tamaño de algunos de los círculos sea también aleatorio?_",
"CSD U3 Random random ellipse_2021": "# Números Aleatorios\n\nTienes un nuevo bloque en el cajón `Mat` llamado `randomNumber()`. Si haces tus dibujos con números aleatorios se verá un poco diferente cada vez que ejecutes tu programa. Puedes **aprender sobre el bloque colocando el cursor sobre él en la caja de herramientas y eligiendo \"Ver ejemplos \"**.\n\n![](https://images.code.org/d6c8db7bca962b69c289a223f63dcb08-image-1589486337822.png)\n\n# Haz esto\n\n- Ejecuta el programa varias veces para ver cómo funciona.\n- Cambia los números dentro de `randomNumber` y vuelve a ejecutar el código unas cuantas veces para ver qué cambia.",
"CSD U3 Random rgb_2021": "# RGB Aleatorio\n\nYa has aprendido lo que es la aleatoriedad, así que es hora de poner todo ese conocimiento en práctica en esta escena.\n\n# Haz esto\n\n* Ahora mismo todos los colores de esta escena están fijados. ¡Usando tanto rgb como random, cambia los colores aleatoriamente aquí!\n",
- "CSD U3 Random shape position_2021": "
\n\n# Depuración: Movimiento Aleatorio de las Figuras\n\nAhora mismo en este programa cada rectángulo tiene su propia posición aleatoria. ¿Puedes hacer que los rectángulos estén siempre apilados uno encima del otro, pero que toda la pila esté posicionada aleatoriamente?\n\n# Haz esto\n\n* Ejecuta este programa para ver cómo funciona.\n* Utiliza la variable `xPosition` para dibujar los dos rectángulos inferiores en la misma *posición x* que el rectángulo rosa superior.\n",
+ "CSD U3 Random shape position_2021": "
\n\n# Depuración: Movimiento Aleatorio de las Figuras\n\nAhora mismo, en este programa cada rectángulo tiene su propia posición aleatoria. ¿Puedes hacer que los rectángulos estén siempre apilados uno encima del otro, pero que toda la pila esté posicionada aleatoriamente?\n\n# Haz esto\n\n* Ejecuta este programa para ver cómo funciona.\n* Utiliza la variable `xPosition` para dibujar los dos rectángulos inferiores en la misma *posición x* que el rectángulo rosa superior.\n",
"CSD U3 Scene Example_2021": "# Escenas de Sprite\n\nEs hora de poner todo junto y hacer una escena divertida. Echa un vistazo a este ejemplo y piensa en lo que te gustaría hacer.\n\n# Diseña la Escena\n\nAntes de seguir adelante, tómate un segundo para diseñar la escena que te gustaría hacer al final de esta lección. Ten en cuenta las formas simples que has utilizado en el pasado, los sprites para tus personajes y cualquier texto que quieras que aparezca en la pantalla. Una vez que hayas hecho un boceto, aprenderás a componer una escena.\n\n\\*\\*¿Hay algo más que debas aprender a hacer?\n\n**¿Hay alguna característica que te gustaría repasar?**",
- "CSD U3 Sprite Movement Right_2021": "
\n\n# Movimiento del Sprite\n\nUsando el patrón de contador, puedes escribir programas que animen los sprites suavemente. Añadir o quitar la propiedad `x` o `y` de un sprite en el bucle de dibujo hace que tu sprite se mueva un poco cada vez que se redibuja.\n\n# Haz esto\n\n- Lee el código que se encarga de hacer subir el avión por la pantalla.\n- Añade el código que mueve el avión hacia la derecha, como en la imagen de ejemplo.",
+ "CSD U3 Sprite Movement Right_2021": "
\n\n# Movimiento del Sprite\n\nUsando el patrón de contador, puedes escribir programas que animen los sprites fácilmente. Añadir o quitar la propiedad `x` o `y` de un sprite en el bucle de dibujo hace que tu sprite se mueva un poco cada vez que se redibuja.\n\n# Haz esto\n\n- Lee el código que se encarga de hacer subir el avión por la pantalla.\n- Añade el código que mueve el avión hacia la derecha, como en la imagen de ejemplo.",
"CSD U3 Sprites Exploration_2021": "# Explorando los Sprites\n\nEste programa utiliza algunos bloques nuevos que no has visto antes.\n\n# Haz esto\n\nCon tu compañero, lee el código y comenta cómo crees que funciona. Cambia algunas líneas y observa lo que sucede. ¿Qué crees que hace cada línea?",
"CSD U3 Sprites anitab 1_2021": "# Añadiendo Animaciones\n\nEste programa dibuja cuatro sprites en la pantalla, y ¡uno de ellos incluye una animación desde la Pestaña de Animación!\n\n# Haz esto\n\n- Ejecuta el código para ver qué sucede.\n- Mira en la Pestaña de Animación para ver qué animaciones están disponibles. [(Muéstrame dónde.)](#triggercallout=animation)\n - Tienes libertad para modificar tus animaciones o elegir una nueva.\n- Usa el comando `setAnimation` para cambiar el aspecto del resto de tus sprites.",
"CSD U3 Sprites anitab 2_2021": "# Subiendo Imágenes\n\n¡También puedes usar la pestaña de Animación para subirla! Vas a hacer una cometa voladora. Puedes buscar una imagen en la web.\n\n# Haz esto\n* Busca en Internet la imagen de una cometa. Las imágenes pequeñas con fondos transparentes funcionan mejor.\n* Descarga la imagen de tu cometa. \n* Abre la pestaña de animaciones.\n* Pulsa en
y luego
para subir una imagen.\n* Selecciona el archivo de tu ordenador.\n* Cambia el nombre de la imagen para que te sea fácil de recordar. Para renombrarla, haz clic en el texto debajo de la imagen.\n* De vuelta al modo de código, usa `sprite.setAnimation()` para hacer que tu sprite `cometa` muestre tu nueva animación.\n\nNo te preocupes si la imagen de tu cometa es demasiado grande. Aprenderás a arreglarlo en el siguiente nivel.",
@@ -5170,9 +5170,9 @@
"CSD Web incorporate feedback_2021": "# Utiliza los Comentarios\n\nAhora es el momento de utilizar la valoración de los compañeros para hacer que tu sitio sea aún mejor.\n\n# Haz esto\n\n- Utiliza el plan que tu equipo elaboró para mejorar tu sitio web.",
"CSD game text predict_2021": "# Adivina\n\nLee el código de abajo y haz una adivinanza.\n\n- ¿Qué aparecerá en la pantalla?\n- ¿Dónde se mostrará?",
"CSD game variable predict_2021": "# Adivina\n\nLee el código de abajo y haz una adivinanza.\n\n- ¿Dónde se dibujará el círculo?\n- ¿Qué ocurrirá si cambias el número de la línea 1?",
- "CSD games draw debug afterimage_2021": "# Depurar: Animaciones Repetidas\n\nEste sprite \"burbujeante\" debería tener múltiples fotogramas de animación que se repiten, pero parece que se detiene casi inmediatamente.\n\nLo que esperabas que hiciera | Lo que hace realmente\n ------- | ----------\nEl sprite se mueve suavemente | El sprite tiene una imagen posterior y deja de moverse\n\n# Haz esto\n\n* Ejecuta el programa para ver el fallo.\n* Utiliza las pistas para intentar encontrar el error.\n\n\n Cómo Depurar las animaciones de varios fotogramas
\n Algunos niveles del Laboratorio de Juegos te permitirán utilizar animaciones de varios fotogramas con tus sprites, lo que hace que parezca que se están moviendo. Siempre que utilices estas animaciones, asegúrate de añadir un bloque de fondo
al inicio de tu bucle de dibujo, de lo contrario, parecerá que el sprite no se mueve ya que todos los fotogramas se dibujarán uno encima del otro.
\n ",
+ "CSD games draw debug afterimage_2021": "# Depurar: Animaciones Repetidas\n\nEste sprite \"burbujeante\" debería tener múltiples fotogramas de animación que se repiten, pero parece que se detiene casi inmediatamente.\n\nLo que yo esperaba que hiciera | Lo que está haciendo realmente\n ------- | ----------\nEl sprite se mueve suavemente | El sprite tiene una imagen posterior y deja de moverse\n\n# Haz esto\n\n* Ejecuta el programa para ver el fallo.\n* Utiliza las pistas para intentar encontrar el error.\n\n\n Cómo Depurar las animaciones de varios fotogramas
\n Algunos niveles del Laboratorio de Juegos te permitirán utilizar animaciones de varios fotogramas con tus sprites, lo que hace que parezca que se están moviendo. Siempre que utilices estas animaciones, asegúrate de añadir un bloque de fondo
al inicio de tu bucle de dibujo, de lo contrario, parecerá que el sprite no se mueve ya que todos los fotogramas se dibujarán uno encima del otro.
\n ",
"CSD games draw debug blurry_2021": "
\n\n# Depurar: Sprite Borroso\n\nLo que esperaba que hiciera | Lo que está haciendo realmente\n ------- | ----------\n moverse sin parar | moverse borroso\n\n# Haz esto\n\n* Ejecuta el programa para ver el fallo.\n* Usa las pistas para intentar encontrar el fallo.\n* Una vez que lo hayas encontrado, arregla el programa para que se mueva como la imagen de la derecha.\n",
- "CSD games draw debug not moving_2021": "# Depurar: El sprite no se mueve\n\nDepurar por qué el sprite no se mueve a pesar de que actualizamos su posición en el bucle de dibujo\n\nLo que esperaba que hiciera | Lo que está haciendo realmente\n ------- | ----------\n agitarse | no moverse en absoluto\n\n# Haz esto\n\n* Ejecuta el programa para ver el error\n* Usa las pistas para tratar de encontrar el error\n\n::: detalles [Pista si te bloqueas]\n¿Dónde se encuentra `drawSprites()` en el código?\n:::\n\n::: detalles [Otra pista]\n¿Se limpia la pantalla al principio del bucle de dibujo? ¿Cómo se limpia normalmente la pantalla?\n:::",
+ "CSD games draw debug not moving_2021": "# Depurar: El sprite no se mueve\n\nDepurar por qué el sprite no se mueve a pesar de que actualizamos su posición en el bucle de dibujo\n\nLo que yo esperaba que hiciera | Lo que está haciendo realmente\n ------- | ----------\n agitarse | no moverse en absoluto\n\n# Haz esto\n\n* Ejecuta el programa para ver el error\n* Usa las pistas para tratar de encontrar el error\n\n::: detalles [Pista si te bloqueas]\n¿Dónde se encuentra `drawSprites()` en el código?\n:::\n\n::: detalles [Otra pista]\n¿Se limpia la pantalla al principio del bucle de dibujo? ¿Cómo se limpia normalmente la pantalla?\n:::",
"CSD games text debug quotes_2021": "
\n\n# Depuración del Texto\n\nEsta escena se supone que ilustra un dibujo animado, pero tiene un error.\n\nLo que esperabas que sucediera | Lo que sucedió realmente\n----------|----------\nLa imagen se muestra en la pantalla. | El código no se ejecuta, \n | y hay un mensaje de error.\n\n# Haz esto\n\n* Ejecuta el código, y mira el mensaje de error.\n* Busca pistas sobre dónde está el error en el código.\n* Una vez que hayas encontrado el error, arréglalo.\n* ¿Qué pistas te han ayudado a encontrar el problema?\n\n![]()\n\n",
"CSD games text freeplay_2021": "# Juego Libre\n\nUtiliza lo que has aprendido para crear lo que quieras. Cuando hayas terminado, puedes hacer clic en ![](https://images.code.org/2fd36aba2af21d292932b77fb0b9fd0e-image-1498689573973.36.43 PM.png) para enviar tu creación a un amigo, o ![](https://images.code.org/1ddae93513aff160349643f1909590e8-image-1498689597186.36.50 PM.png) para enviarlo a tu Galería de Proyectos.",
"CSD web add CSS_2021": "# Añade tus Estilos\n\nAhora añade todo el CSS del que eres responsable, incluyendo tus clases.\n\n# Haz esto\n\n- Añade conjuntos de reglas CSS a la hoja de estilos.\n- Comprueba que todas tus páginas muestran los estilos correctos.",
@@ -5182,7 +5182,7 @@
"CSD web check_2021": "# Comprueba tu Trabajo\n\n¡Tu página web ya está terminada! Comprueba que cumple los requisitos.\n\n# Haz esto\n\n- Comprueba que tu sitio tiene el mismo aspecto que el de tus compañeros de equipo.\n- Comprueba que tu sitio incluye todo lo que aparece en la guía del proyecto.\n- Comprueba que tu sitio cumple con los requisitos del proyecto en la rúbrica.",
"CSD web classes freeplay_2021": "# Juego Libre\n\nUtiliza tus conocimientos para crear una nueva página con estilo de clases.",
"CSD web conditionals predict contained_2021": "
\n\n# Sentencia If\n\nLas expresiones booleanas nos permiten hacer preguntas, pero para usar esas preguntas para cambiar el comportamiento del programa, necesitamos una sentencia `if`.\n\n# Haz esto\n\n- Lee el código de este programa de coches de carreras.\n- ¿Qué hará el programa cuando el coche llegue a la meta?\n- ¿Por qué el bloque `if` está dentro del bucle de dibujo?",
- "CSD web create pages project_2021": "# Tu Proyecto de Grupo\n\n\n\nAquí está tu proyecto de grupo. Ya tiene una página de índice, pero tendrás que crear todas las demás páginas.\n\n# Haz esto\n\n- Vuelve a comprobar todos los nombres de las páginas en el plan de tu sitio web para asegurarte de que siguen unas buenas reglas de nomenclatura.\n - Consulta con el resto del grupo si necesitas cambiar el nombre de alguna página.\n- Crea una nueva página para cada una de las páginas de tu plan de sitio web.\n- Dentro de cada página nueva, crea un comentario HTML que describa la página y quién está a cargo de ella.\n- Comprueba que todos los miembros de tu grupo tienen exactamente la misma lista de páginas HTML.",
+ "CSD web create pages project_2021": "# Tu Proyecto de Grupo\n\n\n\nAquí está tu proyecto de grupo. Ya tiene una página de índice, pero tendrás que crear todas las demás páginas.\n\n# Haz esto\n\n- Vuelve a comprobar todos los nombres de las páginas en el plan de tu sitio web para asegurarte de que siguen unas buenas reglas de nomenclatura.\n - Consulta con el resto del grupo si necesitas cambiar el nombre de alguna página.\n- Crea una nueva página para cada una de las páginas de tu plan de sitio web.\n- Dentro de cada página nueva, crea un comentario HTML que describa la página y quién está a cargo de ella.\n- Comprueba que todos los miembros de tu grupo tienen exactamente la misma lista de páginas HTML.",
"CSD web project animated background_2021": "# Crea tu Escena - Fondo\n\nPrimero, haz el fondo de tu escena, ya sea con comandos de figuras o sprites.\n\n# Haz esto\n\n- Usa un comando `background()` para llenar la pantalla con un color.\n- Añade los comandos de figura o sprites necesarios para dibujar el fondo de tu escena.",
"CSD web project animated example_2021": "# Escenas Animadas\n\nEs hora de probar una escena animada. Echa un vistazo a este ejemplo y piensa en lo que te gustaría hacer.\n\n# Ejemplo de Animación\n\n1. **¿Qué movimientos ves en esta escena?**\n2. **¿Qué movimientos utilizan números aleatorios?**\n3. **¿Qué movimientos utilizan el patrón de contador?**",
"CSD web project animated movement_2021": "# Crea tu Escena - Movimiento\n\nLa tarea final de tu escena es la animación, añadiendo el movimiento.\n\n# Haz esto\n\n- Añade movimiento a tus sprites, texto o figuras dibujadas.\n- Incluye un tipo de movimiento **aleatorio**.\n- Incluye un tipo de movimiento **patrón de contador**.",
@@ -5195,7 +5195,114 @@
"CSD web text assessment_2021": "# Añadir Texto\n\nAquí hay una escena, pero necesita texto.\n\n# Haz esto\n\n- Añade dos mensajes de texto a la siguiente escena. \n- Haz que los dos trozos de texto sean de diferente tamaño.",
"CSD web text size_2021": "# Tamaño del Texto\n\nPuedes cambiar el tamaño del texto usando el bloque `textSize()`.\n\n# Haz esto\n\n- Lee el código para ver cómo funciona.\n- Añade un nuevo bloque `textSize` para que la palabra \"grande\" sea la más grande.",
"CSD web text stroke_2021": "# Color del Texto\n\nPuedes cambiar el color de tu texto usando el bloque `rellenar`.\n\n# Haz esto\n* Lee el código para ver cómo funciona.\n* Añade un nuevo bloque para que la palabra \"cielo\" tenga un color diferente.\n* Añade más texto con más colores.\n",
- "CSD web upload images multi_2021": "# Subir Imágenes\n\nSube todas las imágenes del equipo a tu proyecto.\n\n# Haz esto\n\n- Sube todas las imágenes incluidas en el plan del sitio web de tu equipo a tu proyecto.\n- Comprueba que el nombre de cada archivo de imagen utiliza las reglas correctas.\n- Comprueba que todos los miembros del equipo tienen exactamente las mismas imágenes con los mismos nombres."
+ "CSD web upload images multi_2021": "# Subir Imágenes\n\nSube todas las imágenes del equipo a tu proyecto.\n\n# Haz esto\n\n- Sube todas las imágenes incluidas en el plan del sitio web de tu equipo a tu proyecto.\n- Comprueba que el nombre de cada archivo de imagen utiliza las reglas correctas.\n- Comprueba que todos los miembros del equipo tienen exactamente las mismas imágenes con los mismos nombres.",
+ "CSD U3 - complex - key up and down_2021": "# Respondiendo a un Solo Clic\n\nEste juego calcula cuántas veces ha pulsado alguien la barra espaciadora, pero sigue dando puntos cuando la barra espaciadora sigue pulsada, aunque no sea una nueva pulsación.\n\nEl bloque `keyWentDown` sólo dará un punto por nuevas pulsaciones, así que es una mejor opción para este programa.\n\n# Haz esto\n\n* Ejecuta el programa para ver cómo funciona.\n* Cambia el código para usar el bloque `keyWentDown`, para que el programa sólo dé un punto por nuevas pulsaciones.",
+ "CSD U3 - complex - mouse down_2021": "# Clics del Ratón\n\nEste es un programa que deja caer un globo por la pantalla. Haz que el globo suba y baje según el usuario pulse el ratón.\n\n# Haz esto\n\n- Añadir un código que compruebe si el ratón se está pulsando.\n- Mueve el globo hacia arriba si el ratón está pulsado. En caso contrario, mueve el globo hacia abajo.",
+ "CSD U3 - complex - mouse move_2021": "
\n\n# mouseDidMove\n\nTambién podemos utilizar expresiones booleanas para comprobar si el ratón se ha movido o no. El bloque `mouseDidMove` devolverá `falso` si el ratón está quieto, pero `cierto` si el ratón se ha movido.\n\n# Haz esto\nAhora mismo, este programa sólo muestra un sprite de salero. Necesitarás usar `mouseDidMove` para que puedas \"agitar\" la sal moviendo el ratón de un lado a otro.\n\n* Añade una condicional que compruebe si `mouseDidMove`.\n* Si la condicional es verdadera, gira el sprite de la sal aleatoriamente a la izquierda o a la derecha.\n\n_Desafío: ¿Puedes llevar la cuenta de cuántas veces el `mouseDidMove` agita la sal, y luego rotarla hacia la derecha después de 100 agitaciones?_\n\n",
+ "CSD U3 - conditionals - first conditional 2_2021": "
\n\n# Visible\n\nA veces es útil ocultar la imagen por un tiempo y luego mostrarla de nuevo. Puedes hacer esto usando la propiedad `visible`. La propiedad visible es un poco diferente de otras propiedades que has visto anteriormente: Es un valor booleano, ya sea `cierto` (el sprite es visible) o `falso` (el sprite **no** es visible). Por defecto, el valor de visible es `cierto`.\n\n# Haz esto\n¡Consigue que el globo reviente cuando toque el borde del área de juego!\n\n* Añade una condicional que compruebe si el globo ha tocado el borde.\n\t* Utiliza un observador en `balloon.scale` para ayudarte.\n* Crea un sprite pop que utilice el visual \"pop\" en la pestaña de animación.\n* Usa la propiedad `visible` para mantener el sprite \"pop\" oculto al principio.\n* Dentro del `if` añade dos sentencias.\n\t* Una que establece la propiedad `visible` para ocultar el sprite del globo.\n * Otra que establezca la propiedad `visible` para mostrar el sprite \"pop\".\n",
+ "CSD U3 AnimationsMulti Play Defender_2021": "# ¡Defiende tu Tarta!\n\nEste es un ejemplo de un juego de defensa que construirás al final de esta lección. Para defender tu tarta, mueve al alienígena con las teclas de flecha para bloquear a las mariquitas y empujarlas al agua.\n\n# Haz esto\n\nDirígete a un compañero de clase y haz una lista con la siguiente información.\n\nSi tú estuvieras haciendo este programa...\n\n- ¿Qué sprites necesitarías?\n- ¿Qué variables necesitarías?\n- ¿Qué funciones utilizarías?",
+ "CSD U3 AnimationsMulti defender animate cake enemies_2021": "# Cómo Empezar: Configurar las Animaciones\n\nAntes de empezar, querrás algunas animaciones mejores para cada uno de tus sprites.\n\n# Haz esto\n\n- En la Pestaña de Animación hay animaciones para cada uno de tus sprites. Mira lo que son.\n- En tu código dale a cada sprite su animación apropiada. **Usa las proporcionadas por ahora** pero más tarde podrás ir cambiándolas.",
+ "CSD U3 AnimationsMulti defender animate player_2021": "# Cambia las Animaciones del Jugador\n\nPuedes cambiar la animación cuando el jugador cambia de dirección.\n\n# Haz esto\n\n- Dentro de la Pestaña de Animación copia la animación del sprite de tu jugador.\n- Voltea cada fotograma de la nueva animación para que el sprite esté mirando en la dirección opuesta.\n- Cambia el nombre de tu nueva animación.\n- Dentro de la función `movePlayer`, establece la animación del sprite para que el jugador cambie la dirección hacia la que está mirando cuando se presionan las flechas \"izquierda\" y \"derecha\".",
+ "CSD U3 AnimationsMulti defender background_2021": "# Fondo de Alta Puntuación\n\nCrea un nuevo fondo que se muestre cuando los jugadores alcancen una buena puntuación de tu elección. (por ejemplo, hacer que el fondo sea rosa cuando el jugador supere los 10 puntos)\n\n# Haz esto\n* Cuando dibujes el fondo, añade una sentencia `if/else` para comprobar si la puntuación está por encima de algún número como 10\n* Poner el fondo normal en la rama `else`\n* Dibujar un fondo diferente si la puntuación está por encima de ese número",
+ "CSD U3 AnimationsMulti defender enemies move_2021": "# Moviendo a los Enemigos\n\nTendrás que poner los sprites de tus enemigos en una posición aleatoria y en movimiento por la pantalla.\n\n# Haz esto\n\n- Después de crear cada sprite enemigo...\n - Establece su posición `x` en 0.\n - Establece su posición `y` como un número aleatorio entre 150 y 250.\n - Establece su velocidad `x` a 2.\n- Prueba tu programa. Tus sprites enemigos deberían moverse ahora por el puente.",
+ "CSD U3 AnimationsMulti defender enemies touch cake_2021": "# Tocando la Tarta\n\nSi los enemigos llegan hasta la tarta debes colocarlos de nuevo en la parte izquierda de la pantalla y disminuir la puntuación. Para empezar vas a **escribir el código para uno solo de tus enemigos**.\n\n# Haz esto\n\n- Dentro de la función `enemiesTouchCake`, utiliza una condicional para detectar si el enemigo1 ha tocado la tarta.\n- Si lo ha hecho...\n - Haz un bucle con el enemigo hacia el lado izquierdo de la pantalla\n - Establece su posición `y` para que sea un número aleatorio entre 150 y 250. \n - Utiliza el patrón de contador para disminuir la puntuación en 2.\n- Prueba tu código. Ahora una de tus mariquitas debería reiniciarse cuando llegue al pastel, y la puntuación debería disminuir en 2.",
+ "CSD U3 AnimationsMulti defender move player_2021": "# Movimiento a la Izquierda y a la Derecha\n\nAhora sólo tienes que hacer que tu personaje se mueva a la izquierda y a la derecha y cambiar sus animaciones.\n\n# Haz esto\n\n- Dentro de la función `movePlayer`...\n - Usa una condicional para detectar cuando la flecha \"derecha\" es pulsada.\n - Si lo está, mueve el sprite del jugador a la derecha por 3.\n - Usa otra condicional para mover al jugador a la izquierda cuando la flecha \"izquierda\" esté pulsada.\n- Prueba tu juego. El sprite de tu personaje debería moverse ahora a la izquierda y a la derecha cuando pulses las flechas izquierda y derecha. ",
+ "CSD U3 AnimationsMulti defender move up down_2021": "# Movimiento Arriba y Abajo\n\nTambién querrás que tu sprite de jugador se mueva hacia arriba y hacia abajo.\n\n# Haz esto\n\n- Dentro de la función `movePlayer`...\n - Usa una condicional para detectar cuando la flecha \"arriba\" es pulsada.\n - Si lo está, mueve el sprite del jugador hacia arriba por 3.\n - Usa otra condicional para mover al jugador hacia abajo cuando la flecha \"abajo\" sea pulsada.\n- Prueba tu código. Tu personaje debería moverse ahora en las cuatro direcciones.",
+ "CSD U3 Direction Animations_2021": "
\n\n# Cambiando las imágenes según el movimiento\nAhora mismo, estas condicionales sólo hacen una cosa (cambiar la posición x o y del sprite), pero en realidad puedes poner todo el código que quieras dentro de una condicional. Una cosa común en los juegos es cambiar la imagen de tu personaje dependiendo de la dirección en la que esté caminando. Vas a hacer un bicho que siempre mire hacia la dirección en la que se está moviendo.\n\n# Haz esto\nUtiliza el programa y las imágenes facilitadas:\n\n- Duplica la imagen de tu bicho elegido cuatro veces.\n- Edita cada una de tus imágenes para que apunte en una de las cuatro direcciones.\n- Escribe un código que utilice `sprite.setAnimation()` para cambiar la imagen de tu sprite de bicho cuando se pulsen diferentes teclas de flecha.\n",
+ "CSD U3 Direction Arrows_2021": "# Movimiento en Todas Direcciones\n\nPuedes hacer un sencillo juego que mueva un sprite por la pantalla.\n\n# Haz esto\n\n- Añade cuatro sentencias condicionales separadas que hagan que el bot de alas se mueva en todas las direcciones.",
+ "CSD U3 Else_2021": "# Invertir los Engranajes\n\nEstos engranajes ya giran en una dirección cuando presionas la barra espaciadora, ahora querrás que giren en la otra dirección cuando la barra espaciadora no esté presionada.\n\n# Haz esto\n\n- Haz que los engranajes giren en la dirección opuesta cuando la barra espaciadora **no** está siendo presionada.",
+ "CSD U3 Functions Call Draw Loop_2021": "# Llamando a Funciones en el Bucle de Dibujo\n\nPuedes llamar a una función dentro del bucle de dibujo, al igual que lo harías en cualquier otra parte de tu código.\n\n# Haz esto\n\nSe ha creado una función que dibujará un fondo. Se ha creado un sprite para que se mueva por el fondo.\n\n* **Llama a la función dentro del bucle de dibujo** para que el sprite aparezca sobre el fondo.\n* **Nota:** No crees funciones dentro del bucle de dibujo. Hazlo en la parte inferior de tu código.",
+ "CSD U3 Functions Create Function_2021": "# Creando Funciones para Organizar el Código\n\nEn el Laboratorio de Juegos toda la acción está ocurriendo en el bucle de dibujo, pero demasiado código complejo hace que sea realmente confuso de leer. Para mantener tu bucle de dibujo fácil de leer, utiliza funciones para los bloques de código más grandes. Puedes llamarlas dentro del bucle de dibujo y definirlas a continuación. Este es un buen ejemplo del uso de la **abstracción** para pensar en los problemas a un nivel alto y preocuparse de los detalles más tarde.\n\n
\n\n# Haz esto\n\nEste programa debe dibujar una escena diurna o nocturna, dependiendo de la ubicación del ratón. El bucle de dibujo describe lo que tiene que ocurrir pero una de las funciones no se ha escrito todavía.\n\n* **Escribe la función `drawNight`** que ha sido creada pero está vacía.\n* Sugerencia: Mira la imagen de la derecha para ver cómo debería ser tu imagen nocturna. ¿Puedes usar la función `drawDay` para ayudarte en algo?",
+ "CSD U3 Functions Randomize Sprite_2021": "# Haciendo Cambios en las Funciones\n\nEl beneficio de usar funciones para eliminar el código repetido es que ahora puedes hacer cambios fácilmente en varios lugares de tu código. Sólo tienes que cambiar la forma de crear las funciones, y tu programa utilizará ahora el nuevo código en todos los lugares donde se llame a tu función.\n\n# Haz esto\n\nHaz cambios en la función `setFlyer` para que el piloto comience en una posición Y aleatoria entre 0 y 400, y se mueva a una velocidad aleatoria cada vez que se reinicie.",
+ "CSD U3 Functions Reset Sprite_2021": "# LLamando a las Funciones Muchas Veces\n\nA menudo querrás utilizar el mismo código en muchos lugares de tu programa. Una vez que hayas creado una función, puedes llamarla tantas veces como quieras.\n\n# Haz esto\n\nEste código crea un sprite que se mueve por la pantalla una vez. ¿Cómo puedes hacer que vuelva a cruzar la pantalla?\n\n* **Nota:** La función ya ha sido llamada una vez al principio de tu programa\n* Lee la condición de la sentencia **if** dentro del bucle de dibujo. ¿Por qué crees que está ahí?\n* Utiliza esta sentencia `if` y la función escrita para que el sprite se mueva por la pantalla varias veces.",
+ "CSD U3 Functions Write Reset_2021": "# Escribe tu Propia Función\n\nEs hora de practicar la escritura de funciones propias. Se trata de un juego muy sencillo en el que las monedas caen del cielo y el conejo intenta atraparlas. Todo lo que tienes que hacer es escribir la función que pone la moneda.\n\n# Haz esto\n\n- **Lee y ejecuta el código** que ya existe para asegurarte de que sabes cómo funciona.\n- **Escribe el código de la función `setCoin`** para hacer lo siguiente:\n - Establecer la velocidad de la moneda para que se mueva hacia abajo.\n - Establecer la posición `y` de la moneda en la parte superior de la pantalla\n - Aleatorizar la posición `x` de la moneda\n- Puedes consultar algunos de los niveles anteriores si necesitas ayuda.",
+ "CSD U3 Functions challenge drawscene_2021": "
\n\n# Creando Funciones para Dibujar Escenas\n\nEl código proporcionado dibuja una de las dos escenas diferentes en función de la posición del ratón en la pantalla. Llama a la función `drawScene1()` o a la función `drawScene2()`. Sin embargo, ¡estas funciones no existen todavía! \n\nPuedes ser creativo y dibujar las dos escenas que quieras\n\n# Haz esto\n\n- Crea las funciones `drawScene1` y `drawScene2`.\n- Rellénalas con código para dibujar dos escenas diferentes\n",
+ "CSD U3 If Else_2021": "
\n\n# World.mouseX\n\nEste programa utiliza un bloque `if` para agitar la licuadora cuando el ratón está en el lado izquierdo de la pantalla.\n\n# Haz esto\n\n- Ejecuta el programa para ver cómo funciona.\n- Añade un `else` para que la batidora se agite cuando el ratón esté en el otro lado de la pantalla.",
+ "CSD U3 Input Fish_2021": "# Peces con Flechas\n\nLos peces han vuelto. ¿Puedes hacer que el pez se mueva hacia la izquierda sólo cuando pulses la tecla de flecha izquierda?\n\n# Haz esto\n\n* Añade una sentencia if para comprobar cuándo se pulsa la tecla de la flecha izquierda.\n* Coloca los comandos que mueven el pez dentro de la sentencia if.",
+ "CSD U3 Input Gears_2021": "# Engranajes con Condicionales\n\nHagamos que los engranajes giren sólo cuando se mantenga pulsada la barra espaciadora.\n\n# Haz esto\n\n- Añade un código que compruebe si la barra espaciadora está siendo pulsada.\n- Mueve el código que hace girar los engranajes para que sólo giren cuando la tecla esté pulsada.",
+ "CSD U3 Interactive Card Exemplar_2021": "# Ejemplo de Proyecto\n\nEjecuta el programa unas cuantas veces y responde a las siguientes preguntas:\n\n1. ¿Qué elementos parecen utilizar comandos de dibujo?\n\n2. ¿Qué elementos parecen ser sprites?\n\n3. Para cada sprite, ¿qué propiedades se están actualizando?\n\n4. ¿Dónde ves que se utilizan las condicionales?\n\n5. ¿Hay elementos que no entiendes?",
+ "CSD U3 Keypress Boolean embed-2018_2021": "# Adivinanza - keyDown()\n\nComprueba si puedes adivinar cómo funciona el bloque `keyDown()`. No escribirás **ningún código**.\n\n# Haz esto\n\n- Lee atentamente el programa.\n- **Adivina lo que ocurrirá al pulsar la barra espaciadora** y escríbelo en el recuadro de abajo. ¡Debes ser específico!\n- Ejecuta el programa.\n- Mientras se ejecuta el programa, pulsa la barra espaciadora de tu teclado.\n- ¿Has acertado? ¿Te has sorprendido? Coméntalo con un compañero de clase.",
+ "CSD U3 L19 Freeplay_2021": "# Juego Libre\n\nUtiliza lo que has aprendido para crear lo que quieras. Cuando hayas terminado, puedes hacer clic en ![](https://images.code.org/2fd36aba2af21d292932b77fb0b9fd0e-image-1498689573973.36.43 PM.png) para enviar tu creación a un amigo, o ![](https://images.code.org/1ddae93513aff160349643f1909590e8-image-1498689597186.36.50 PM.png) para enviarlo a tu Galería de Proyectos.\n\n",
+ "CSD U3 Mouse Input Bee 1_2021": "
\n\n# Ratón X e Y\n\nUna de las formas más sencillas de obtener la entrada es hacer que un sprite siga la posición del ratón del usuario. **Puedes obtener la posición X e Y del ratón usando `World.mouseX` y `World.mouseY`.** Esto sigue el patrón que aprendiste con las propiedades de los sprites. `World` es el nombre del objeto. `mouseX` y `mouseY` son los nombres de las propiedades.\n\n# Haz esto\n\nVas a hacer que un sprite de abeja siga al ratón alrededor del área de juego.\n\n* La imagen de la abeja ya está cargada en la pestaña de animación.\n* Crea un sprite de abeja que se dibuje en el centro de la ventana.\n* Dentro del bucle de dibujo actualiza la posición del sprite a la posición del ratón:\n\t* Establece la posición \"x\" del sprite al valor de `World.mouseX`.\n * Establece la posición \"y\" del sprite al valor de \"World.mouseY\".* Ejecuta el programa para comprobar que funciona.\n",
+ "CSD U3 Mouse Input Bee 2_2021": "# Alrededor de un Punto Aleatorio\n\n
\n\nAhora que puedes hacer que la abeja siga al puntero del ratón, vamos a hacer que una abeja vuele alrededor del puntero del ratón como se muestra en la imagen de la derecha. Para hacer esto, necesitarás **añadir una cantidad aleatoria entre -50 y 50 al `mouseX` o `mouseY`.**\n\n# Haz esto\nYa tienes un sprite de abeja que sigue al puntero del ratón.\n\n* Actualiza la ubicación x e y para que esté aleatoriamente cerca del ratón.\n\t* Añade un número aleatorio entre -50 y 50 a `World.mouseX` y `World.mouseY`.\n* Si es necesario, utiliza el bloque `World.frameRate` para ralentizar la animación y encontrar la mejor velocidad de fotogramas.\n\n_Desafío: **Agrega 3 abejas más** que sigan al puntero del ratón de la misma manera para hacer un enjambre de abejas._",
+ "CSD U3 abstraction accelerateX_2021": "# La Velocidad y el Patrón de Contador\n\nEste programa ya hace que un coche se mueva por la pantalla, pero va muy lento. Usando la propiedad `sprite.velocityX` con el patrón contador, puedes cambiar la velocidad del sprite durante el programa. \n\n# Haz esto\n\n- Usa el patrón contador con la propiedad velocityX del sprite para hacer que el coche acelere. ( [Muéstrame dónde](#triggercallout=code_triggered) )",
+ "CSD U3 abstraction accelerateY up_2021": "# Burbuja Ascendente\n\nEste programa hace que una burbuja suba por el agua. ¿Puedes hacer que suba más rápido?\n\n# Haz esto\n\n* Utiliza el patrón de contador y la velocidad `y` del sprite para hacer que la burbuja suba más rápido.\n",
+ "CSD U3 abstraction accelerateY_2021": "# Roca Cayendo\n\nLa roca se debería acelerar a medida que va cayendo por la pantalla.\n\n# Haz esto\n\n- Usa el patrón de contador con la velocidad `y` del sprite para hacer que la roca se acelere mientras cae. ( [Muéstrame dónde](#triggercallout=code_triggered) )",
+ "CSD U3 abstraction add coin_2021": "
\n\n# Crea tus Sprites\n\nPrimero crea los sprites que utilizarás en tu programa. Ya tienes un sprite de jugador, pero puedes cambiar su animación.\n\nNecesitarás un jugador (el aviador), un objetivo (la moneda) y dos obstáculos (las rocas). Puedes hacerlos como quieras.\n\n# Haz esto\n\n- Vete a la pestaña de animación y asegúrate de que tienes las imágenes que quieres.\n - El aviador, la moneda y la roca ya están ahí, pero puedes usar las imágenes que quieras.\n- Encuentra el comentario de código `//GAME SETUP`.\n- Crea tres sprites más: el objetivo y dos obstáculos.\n- Configura cada sprite con la animación que hayas elegido para él.\n- Escala cada uno al tamaño que quieras.\n- Colócalos donde quieras que estén en la pantalla (o fuera de ella).\n - En el juego, los obstáculos y la moneda fueron colocados aleatoriamente, pero no necesitas hacer eso todavía.\n- Establece las velocidades iniciales de los obstáculos. Usa la velocidad x para moverte a la izquierda y a la derecha, o usa la velocidad y para moverte arriba y abajo.\n- Prueba tu programa. El jugador y el objetivo deben estar en la pantalla, y los obstáculos deben comenzar fuera de la pantalla y moverse a través de la pantalla de izquierda a derecha y de arriba a abajo.",
+ "CSD U3 abstraction decelerateX_2021": "# Ralentizando las Cosas\n\n¡El coche va corriendo hacia el agua! Tendrás que usar el patrón de contador para frenarlo.\n\n# Haz esto\n\n- Utiliza el bloque `sprite.velocityX` con un patrón de contador para ralentizar el coche en 0,25 mientras se mueve por la pantalla. \n- Comenta con tu compañero: ¿Qué crees que pasará cuando el coche se detenga finalmente?",
+ "CSD U3 abstraction decelerateY_2021": "# Parecido a la Gravedad\n\nLa roca se lanza al aire pero nunca vuelve a caer.\n\n# Haz esto\n\n- Utiliza el código que has practicado para hacer que la roca se ralentice y luego caiga.\n- Prueba diferentes números en tu patrón de contador para ver cuál te gusta más.",
+ "CSD U3 abstraction jump_2021": "# Controles del Jugador\n\nLa flecha hacia arriba debe hacer que el jugador salte. El salto tiene tres partes: saltar hacia arriba cuando se pulsa una tecla, bajar cuando se está lo suficientemente alto y ¡no caer al suelo!\n\n# Haz esto\n\n- Encuentra el comentario de código `// JUMPING` y lee los tres comentarios de esa sección.\n- Añade una condicional que compruebe si el jugador ha pulsado la tecla \"arriba\".\n - Si la tecla \"arriba\" está pulsada, usa la propiedad velocityY para que el sprite del jugador (la rana) empiece a moverse hacia arriba.\n - Prueba tu código para ver si el sprite sube cuando se presiona la flecha hacia arriba.\n- Añade una condicional que utilice la propiedad `y` del sprite para comprobar si está lo suficientemente alto.\n - Si está lo suficientemente alto en la pantalla, comienza a mover el sprite hacia abajo.\n - Prueba tu código para ver si el sprite vuelve a bajar cuando llega a la parte superior si salta.\n- Añade una condicional para comprobar si el sprite está lo suficientemente bajo en la pantalla como para estar en el suelo.\n - Si está lo suficientemente abajo en la pantalla, detén el sprite.\n - Comprueba que el sprite no atraviesa el suelo al final del salto.",
+ "CSD U3 abstraction jumping_2021": "
\n\n# Cayendo\n\nSi el usuario no hace nada, el sprite del jugador debe caer.\n\n# Haz esto\n\n- Encuentra el comentario de código `// FALLING`.\n- Usa el patrón de contador con la velocidad `Y` del sprite del jugador para hacer que el aviador caiga.\n- Prueba tu código para asegurarte de que funciona. El sprite debería caer más rápido a medida que baja por la pantalla.",
+ "CSD U3 abstraction left right counter 2_2021": "
\n\n# Flotando a la izquierda y a la derecha\n\nEl aviador también debe ser capaz de flotar a la izquierda y a la derecha. \n\n# Haz esto\n\n- Encuentra el comentario de código `//PLAYER CONTROL`.\n- Añade una condicional que disminuya la velocidad `x` del sprite cuando se pulse la flecha \"izquierda\".\n- Añade una condicional que aumente la velocidad `x` del sprite cuando se pulse la flecha \"derecha\".\n - Sugerencia: Tu código debe usar un patrón de contador **y** el bloque `velocidadX`.\n- Prueba tu código para asegurarte de que funciona.",
+ "CSD U3 abstraction left right counter_2021": "
\n\n# Saltando\n\nA continuación, el sprite del jugador debe saltar cuando el usuario presione la flecha \"arriba\".\n\n# Haz esto\n\n- Encuentra el comentario de código `// PLAYER CONTROLS`.\n- Añade una condicional (bloque `if`) que compruebe si el usuario está pulsando la flecha \"arriba\".\n- Añade código dentro de la condicional que cambiará la velocidad del sprite para que se mueva hacia arriba si se pulsa la flecha \"arriba\".\n- Prueba tu código para ver si funciona.",
+ "CSD U3 abstraction looping_2021": "# Bucle\n\nEl obstáculo (champiñón) y el objetivo (mosca) necesitan hacer un bucle de vuelta a la derecha de la pantalla una vez que se alejan demasiado.\n\n# Haz esto\n\n- Encuentra el comentario de código que dice `// LOOPING`.\n- Añade una condicional que utilice la propiedad x del sprite del obstáculo para comprobar si se ha salido de la pantalla.\n - Si se ha movido fuera de la pantalla, usa su propiedad x para ponerlo de nuevo en el lado derecho de la pantalla.\n - Prueba tu código para ver si el obstáculo está en bucle.\n- Añade una condicional que compruebe si el objetivo se ha movido de la pantalla.\n - Si se ha movido fuera de la pantalla, vuelve a ponerlo en el lado derecho de la pantalla.\n - Prueba tu código para ver si el objetivo está en bucle.",
+ "CSD U3 abstraction reset coin_2021": "
\n\n# Interacciones de los Sprites\n\nCuando tu personaje toca la moneda, debes reiniciarla en algún lugar de la pantalla, y los obstáculos deben empujar al jugador a través de la pantalla.\n\n# Haz esto\n\n- Encuentra el comentario de código `SPRITE INTERACTIONS` y lee los comentarios en esa sección.\n- Crea una condicional que compruebe si el jugador está tocando el objetivo, y mueve el objetivo al lugar aleatorio si es cierto.\n- Crea dos nuevas colisiones que hagan que los dos obstáculos empujen al jugador por la pantalla.\n- Prueba tu código para asegurarte de que funciona.",
+ "CSD U3 abstraction rotation_2021": "# rotationSpeed\n\nPuedes usar `rotationSpeed` para hacer que tus sprites giren. Si quieres que tu sol gire dos grados cada vez que se dibuja, puedes usar `sun.rotationSpeed = 2` antes del bucle de dibujo, después de crear tu sprite.\n\n# Haz esto\n\nHaz que el sol gire 3 grados cada vez usando el bloque `rotationSpeed`. ( [Muéstrame dónde](#triggercallout=callout1) )",
+ "CSD U3 abstraction tumbleweed_2021": "# Crea tus Sprites\n\nA continuación, crea los sprites que utilizarás en tu programa. Necesitarás un jugador (la rana), un objetivo (la mosca) y un obstáculo (la seta). Puedes hacerlos como quieras.\n\n# Haz esto\n\n- Vete a la pestaña de animación y asegúrate de que tienes las imágenes que quieres.\n- La rana, la seta y la mosca ya están ahí, pero puedes usar las imágenes que quieras.\n- Encuentra el comentario de código `//GAME SETUP`.\n- Crea tus tres sprites, el jugador, el objetivo y el obstáculo.\n- Pon cada uno con la animación que hayas elegido para él.\n- Aplica la escala según el tamaño que desees para cada uno de ellos.\n- Colócalos donde quieras que estén en la pantalla (o fuera de ella).\n- Establece la velocidad x inicial del objetivo y del obstáculo.\n- Prueba tu programa. El jugador debe estar en la pantalla, y el objetivo y el obstáculo deben comenzar fuera de la pantalla y moverse a través de la pantalla de derecha a izquierda.\n\n_Sugerencia: Los sprites del obstáculo y del objetivo deben moverse siempre a la misma velocidad. Sólo necesitas establecer una velocidad para cada sprite una vez. Puedes hacer esto fuera del bucle de dibujo._",
+ "CSD U3 abstraction velocityX control_2021": "# Nadando a la Derecha y a la Izquierda\n\nEl código de abajo debería hacer que el pez comience a moverse hacia la derecha una vez que presiones la flecha derecha, y luego debería nadar continuamente hacia adelante y hacia atrás. Debes usar sentencias condicionales y el bloque `.velocity` para hacer que el pez nade.\n\n# Haz esto\n\n- Mira las tres sentencias `if` dentro del bucle de dibujo.\n\n- Usa un bloque `sprite.velocityX` dentro de cada sentencia `if` para hacer los tres movimientos siguientes:\n - Si el usuario presiona la tecla de flecha derecha, mueve el pez hacia la derecha.\n - Si el pez llega al lado derecho de la pantalla, mueve el pez hacia la izquierda.\n - Si el pez llega al lado izquierdo de la pantalla, muévelo hacia la derecha.\n\n- El pez debe estar siempre orientado en la misma dirección en la que se mueve, por lo que tendrás que actualizar la animación del pez a `fishL` o `fishR` en función de la dirección en la que se encuentre.",
+ "CSD U3 abstraction velocityX if-statements predict_2021": "# Cambiando la Velocidad con la Posición\n\nUna ventaja de usar los bloques de velocidad dentro de las condicionales (bloques `if`) es que tu sprite sigue moviéndose, incluso después de que la condición deje de ser cierta. Por ejemplo, sólo tienes que pulsar una tecla una vez para que la rueda de colores empiece a girar, y seguirá girando siempre. El código de abajo utiliza sentencias if para hacer que un sprite de pez se mueva en diferentes direcciones.\n\n# Haz esto\n\n- Mira las sentencias `if` que comprueban la posición del sprite y establecen su velocidad.\n- Con tu compañero, comenta lo que crees que hará el código y escribe tu respuesta a continuación.\n- Una vez que hayas respondido, ejecuta el código.",
+ "CSD U3 abstraction velocityY control_2021": "# Controlando la Velocidad\n\nCon esta animación, ayudarás al \"Flybot\" a despegar. Debe comenzar a moverse hacia arriba cuando se presiona la barra espaciadora, y debe continuar moviéndose hacia arriba incluso después de soltar la barra espaciadora.\n\n# Haz esto\n\n* Utiliza una sentencia `if` dentro del bucle de dibujo para comprobar cuándo se pulsa la barra espaciadora.\n* Usa el bloque `velocidadY` para hacer que el sprite se mueva hacia arriba cuando el usuario presione la barra espaciadora.\n* Comprueba que tu animación se comporta como esperas.",
+ "CSD U3 collision detection challenge collider angle_2021": "# Colisionador en Ángulo\n\nColoca el colisionador en ángulo para que se ajuste al rodillo.\n\n## .setCollider() con múltiples parámetros\n\n`.setCollider()` puede admitir más parámetros además de la figura. También acepta parámetros para especificar el desplazamiento x, y, la anchura, la altura, y el ángulo. Comprueba el [documentation](https://studio.code.org/docs/gamelab/setCollider/) para ver un ejemplo.\n\n# Haz esto\n\n* Utiliza `.setCollider()` con 6 parámetros para darle al rodillo un colisionador que se ajuste bien.\n\n**Pista:** Pasa el ratón por encima del bloque `setCollider()` en la caja de herramientas para ver un ejemplo de cómo hacerlo.\n",
+ "CSD U3 collision detection challenge collider circle_2021": "# Colisionador Circular\n\nSe supone que estas monedas deben detenerse cuando se tocan, pero los colisionadores tienen la forma incorrecta. Cambia el colisionador de cada moneda a un círculo.\n\n# Haz esto\n\n* Usa `.setCollider()` para cambiar el colisionador de cada sprite a un círculo.\n\n![](https://images.code.org/a42ba3dcc666047d26145a7832493f70-image-1589906306820.2020-05-19 12_37_36.gif)",
+ "CSD U3 collision detection practice debugistouching_2021": "# Depurar: isTouching\n\nEl sprite del conejito debería cambiar a una nueva animación cuando toca el sprite del sol. Averigua por qué el conejito no reacciona a la colisión.\n\n# Haz esto\n- Modifica el código para que la colisión sea detectada dentro del bucle de dibujo.",
+ "CSD U3 collision detection practice debugpoints_2021": "# Depurar: Sumar Puntos en Colisión\n\nLos juegos suelen dar puntos cuando dos sprites se tocan. Este programa lo hace, pero fíjate en lo que ocurre con la puntuación cuando los sprites siguen tocándose. Tu objetivo es conseguir que sólo se anote un punto. Hay varias maneras de hacerlo, pero la más fácil es mover uno o ambos sprites a un lugar diferente justo cuando la puntuación se incrementa.\n\n# Haz esto\n- Lee y ejecuta el código para entender cómo funciona, y qué es lo que está fallando.\n- Identifica la línea de código que incrementa la puntuación.\n- Añade una línea de código adicional para que al menos un sprite se mueva a una nueva ubicación (aleatoria).\n",
+ "CSD U3 collisions bounciness_2021": "
\n\n# Flexibilidad\n\nHasta ahora, `bounceOff` ha hecho que los sprites se alejen de otros objetos con la misma rapidez con la que rebotan en ellos. En el mundo real, casi todo se ralentiza un poco cuando rebota en otro objeto. Puedes usar el bloque `flexibilidad` para decirle a tu sprite cuánto se debe ralentizar o acelerar cuando rebota en otro objeto.\n\n# Haz esto\n\n* Lee el código de abajo y presiona \"Ejecutar\" para ver el comportamiento de la pelota de baloncesto y de billar.\n* Usa un bloque `flexibilidad` para establecer el rebote de tu balón de fútbol.\n* Ejecuta el código de nuevo para ver como los sprites rebotan en el suelo.\n\n\n[//]: # (https://images.code.org/8b7730146eaa9d439e6af34c0a21e802-image-1470321391887.png)\n\n[//]: # (https://images.code.org/eca470a686b01c19981152fdab808804-image-1470321391888.png)\n\n[//]: # (https://images.code.org/0e4e9c26bed0d31d14f6b3f8f8bb4c27-image-1475786966986.png)\n\n",
+ "CSD U3 collisions build isTouching_2021": "# Usando las matemáticas para averiguarlo\n\nLos ordenadores utilizan las matemáticas para averiguar si dos cosas se tocan. Mira las matemáticas en este programa para ver cómo se comparan las propiedades del sprite con su anchura para ver si se están tocando.\n\n# Haz esto\n\n- Lee las sentencias `if` dentro del bucle de dibujo y encuentra las diferentes propiedades del sprite y cómo se comparan.\n- Comenta el código con tu compañero.\n- ¿Por qué el código sólo utiliza las propiedades de ancho `x`, y no las de alto `y`?\n- ¿Te gustaría escribir este código cada vez que compruebes si algo está tocando?",
+ "CSD U3 collisions car intro_2021": "# ¡Hora de Cenar!\n\nEjecuta el programa para ver cómo el robot le lleva la cena al conejito. Cuando el conejo llega al cuenco, ambos dejan de caminar y el cuenco se vacía. ¿Qué código crees que ayudaría al ordenador a saber si dos sprites se están tocando?",
+ "CSD U3 collisions debug isTouching_2021": "# Depuración de Colisiones\n\nEl globo está estallando antes de que la tachuela lo toque. ¿Puedes utilizar el bloque `depurar` para obtener más información sobre el error en el programa?\n\n# Haz esto\n\n- Ejecuta el código y utiliza las teclas de flecha para mover la tachuela y reventar el globo.\n- En el código de abajo, cambia `balloon.debug = falso` por `balloon.debug = cierto`.\n- Añade un nuevo bloque `depurar` al código y establece la propiedad depurar del sprite de la tachuela en `cierto`.\n- Ejecuta el código de nuevo, y luego analiza con tu compañero por qué el globo estalla antes de tiempo.",
+ "CSD U3 collisions debug_2021": "# Depurar\n\nA veces los sprites se comportan de forma inesperada. Hay una propiedad especial `sprite.debug` que puedes utilizar para entender mejor por qué los sprites interactúan de la manera que lo hacen.\n\n# Haz esto\n\nEstas dos monedas son redondas, por lo que se espera que reboten de cierta manera. Sin embargo, ¡algo raro está sucediendo!\n\n* Ejecuta el código y observa la forma en que interactúan las monedas.\n* Usa el bloque `sprite.debug` para hacer 'cierto' el modo depuración para ambos sprites y ejecuta el código de nuevo.\n* Cambia la posición x inicial de la moneda de oro a 51 y vuelve a ejecutar el código.\n* Comenta con un compañero: ¿Por qué crees que las monedas rebotan de forma extraña?\n",
+ "CSD U3 collisions displace intro_2021": "# Desplazar\n\nEste tipo de interacción entre sprites es tan común que existe un bloque para ello: `sprite.displace()`. Alguien intentó usar el bloque `sprite.displace()` para hacer que el **elefante empuje al hipopótamo**, pero hay un error.\n\n# Haz esto\n\n- Encuentra la línea de código donde se utiliza el bloque `sprite.displace()` y corrige el error.",
+ "CSD U3 collisions displace x_2021": "# Programar una Interacción de Sprite\n\nAquí hay un programa similar, pero aún no funciona.\n\n# Haz esto\n\n- Usa tu plan de programación para que la jirafa empuje al mono fuera de la pantalla.",
+ "CSD U3 collisions displace y_2021": "# Escribe tu Propia Interacción de Sprite\n\nAhora el elefante debería **empujar al hipopótamo fuera de la pantalla**. Observa que el elefante se mueve a una velocidad `Y` aleatoria cada vez que se ejecuta el programa.\n\n# Haz esto\n\n- Ejecuta el programa para ver cómo funciona.\n- Usando los patrones del último nivel, escribe un código para que el elefante empuje al hipopótamo fuera de la pantalla.",
+ "CSD U3 collisions egg_2021": "
\n\n# Compota de manzana\n\nLa batidora sólo debe ponerse en marcha cuando la manzana la toque.\n\n# Haz esto\n\n- Usa el nuevo código que has aprendido para comprobar si la batidora está tocando la manzana.\n- Utiliza una condicional para que la batidora se ponga en marcha sólo cuando la manzana la esté tocando.\n\n_Pista: Tendrás que arrastrar dos bloques al espacio de trabajo._",
+ "CSD U3 collisions flyman add obstacles_2021": "
\n\n# En Bucle\n\nCuando los obstáculos se mueven fuera de la pantalla, deben volver en bucle al otro lado, en una posición aleatoria.\n\n# Haz esto\n\n- Encuentra el comentario de código `// LOOPING`.\n- Añade una condicional que compruebe la propiedad x del obstáculo horizontal para ver si se ha salido de la pantalla.\n- Si se ha movido de la pantalla...\n - Restablece su propiedad `x` para que vuelva al otro lado de la pantalla\n - Establece su propiedad `y` a un número aleatorio entre 50 y 350.\n- Prueba tu código para asegurarte de que el primer obstáculo hace el bucle.\n- Añade una condicional que compruebe la propiedad `y` del obstáculo vertical para ver si se ha salido de la pantalla.\n- Si se ha movido de la pantalla...\n - Restablece su propiedad `y` para que vuelva al otro lado de la pantalla\n - Establece su propiedad `x` a un número aleatorio entre 50 y 350.",
+ "CSD U3 collisions flyman bounceOff_2021": "# Revisa tu Juego\n\nRevisa tu juego para asegurarte de que tiene todo lo que necesita.\n\n# Haz esto\n\n- Practica con tu juego varias veces.\n- Lee tu guía de proyecto y comprueba que has seguido tu plan.\n- Haz los últimos cambios.",
+ "CSD U3 collisions horse_2021": "# Caballo Arco Iris\n\nCuando el arco iris toca el caballo, éste debe convertirse en un unicornio.\n\n# Haz esto\n\n- Añadir código que cambie la apariencia del sprite del caballo en un unicornio cuando el arco iris lo toque.",
+ "CSD U3 collisions isTouching intro_2021": "# isTouching()\n\nEscribir las matemáticas cada vez que quieres comprobar si dos sprites se tocan puede llevar un tiempo, así que un programador creó el bloque `isTouching`, que puede comprobar si un sprite está tocando a otro sprite (el _objetivo_). El ordenador sigue haciendo las mismas matemáticas que en el programa anterior, pero no tienes que preocuparte porque otro programador ya hizo ese trabajo.\n\n# Haz esto\n\n- Dentro del bucle de dibujo, arrastra el bloque `isTouching` dentro del bloque `if`. ( [Muéstrame dónde](#triggercallout=code_triggered) )\n- _Pista: No olvides cambiar el \"sprite\" por \"bunny\" y el \"target\" por \"dinner\"._",
+ "CSD U3 collisions scoreboard_2021": "# Marcador\n\nAhora mismo la salud se puede ver, pero la puntuación no.\n\n# Haz esto\n\n- Encuentra el comentario de código `// SCOREBOARD` y lee el código que hace que se muestre la información de salud.\n- Añade el código para crear un marcador.\n- Ejecuta el programa para probar tu código.",
+ "CSD U3 collisions setCollider_2021": "# setCollider\n\nLos sprites interactúan basándose en el tamaño y la figura de su colisionador, no en las imágenes que se les asignan. Sólo puedes ver el colisionador cuando el modo de depuración está activado. Puedes cambiar la figura del colisionador usando el bloque `sprite.setCollider()`, que te permite elegir entre un \"rectángulo\" o un \"círculo\". Por defecto todos los colisionadores son \"rectángulo\".\n\n# Haz esto\n\n* Encuentra el bloque `sprite.setCollider()` para la moneda de oro, y cámbialo de \"rectángulo\" a \"círculo\".\n* Añade un nuevo bloque `sprite.setCollider()` para la moneda de plata, y elige \"círculo\" para la forma del colisionador.\n* Ejecuta el código de nuevo para ver cómo rebotan los sprites.\n\n\n[//]: # (https://images.code.org/8b7730146eaa9d439e6af34c0a21e802-image-1470321391887.png)\n\n[//]: # (https://images.code.org/eca470a686b01c19981152fdab808804-image-1470321391888.png)\n",
+ "CSD U3 collisions sidescroll2_2021": "# Interacciones de los Sprites\n\nEn el juego de ejemplo, el obstáculo (seta) giraba y la salud disminuía cuando el jugador (rana) lo tocaba. La puntuación aumentaba y el objetivo (mosca) se movía hacia la derecha de la pantalla cuando el jugador (rana) lo tocaba.\n\n# Haz esto\n\n- Encuentra el comentario de código `// SPRITE INTERACTIONS` y lee los comentarios en esa sección.\n- Crea una condicional que compruebe si el sprite del jugador está tocando el sprite del obstáculo.\n - Si se están tocando, disminuye la salud y cambia el sprite del obstáculo de alguna manera.\n - Ejecuta el programa para probar tu código.\n- Crea una condicional que compruebe si el sprite del jugador está tocando el sprite del obstáculo.\n - Si lo está tocando, aumenta la puntuación y mueve el objetivo hacia la derecha de la pantalla.\n - Ejecuta el programa para probar tu código. \n\n_Puedes usar observadores para controlar tu puntuación y tu salud._",
+ "CSD U3 collisions types2_2021": "# Tipos de Colisión\n\nHay cuatro tipos de colisiones que utilizamos en el Laboratorio de Juegos: `desplazar`, `colisionar`, `rebote` y `reboteOff`. Estos bloques provocarán un determinado tipo de interacción entre el _espectro_ y su _objetivo_.\n\n# Haz esto\n\n* Elige el mejor bloque para que la flecha se detenga cuando llegue a la manzana. ( [Muéstrame dónde](#triggercallout=code_triggered) )\n\n*Pista: Puedes probar los diferentes bloques, o leer más sobre ellos en la pestaña \"Ayuda y Consejos\".\n",
+ "CSD U3 collisions types3_2021": "
\n\n# Tipos de Colisión\n\nHay cuatro tipos de colisiones que utilizamos en el Laboratorio de Juegos: `desplazar`, `colisionar`, `rebote` y `reboteOff`. Estos bloques provocarán un determinado tipo de interacción entre el _espectro_ y su _objetivo_.\n\n# Haz esto\n\n* Elige el mejor bloque para hacer que la vagoneta gris se detenga y empuje a la segunda vagoneta. ( [Muéstrame dónde](#triggercallout=code_triggered) )\n\n*Pista: Puedes probar los diferentes bloques, o leer más sobre ellos en la pestaña \"Ayuda y Consejos\".\n\n",
+ "CSD U3 collisions types4_2021": "
\n\n# Tipos de Colisión\n\nHay cuatro tipos de colisiones que utilizamos en el Laboratorio de Juegos: `desplazar`, `colisionar`, `rebote`, y `reboteOff`. Estos bloques provocarán un determinado tipo de interacción entre el _espectro_ y su _objetivo_.\n\n# Haz esto\n\n* Elige el mejor bloque para que la niña empuje la maleta. ( [Muéstrame dónde](#triggercallout=code_triggered) )\n\n*Pista: Puedes probar los diferentes bloques, o leer más sobre ellos en la pestaña \"Ayuda y Consejos\".\n\n",
+ "CSD U3 collisions types_2021": "# Tipos de Colisión\n\nHay cuatro tipos de colisiones que utilizamos en el Laboratorio de Juegos: `desplazar`, `colisionar`, `rebote` y `reboteOff`. Estos bloques provocarán un determinado tipo de interacción entre el _espectro_ y su _objetivo_.\n\n# Haz esto\n\n* Elige el mejor bloque para modelar la interacción de la pelota de baloncesto con el suelo. ( [Muéstrame dónde](#triggercallout=code_triggered) )\n\n*Pista: Puedes probar los diferentes bloques, o leer más sobre ellos en la pestaña \"Ayuda y Consejos\".",
+ "CSD U3 complex sprite movement practice deceleration_2021": "# Desaceleración\n\nConsigue que el coche frene hasta detenerse antes de llegar a la parte superior de la pantalla.\n\n# Haz esto\n- En el bucle de dibujo, actualiza la velocidad `Y` del coche para que disminuya su velocidad.\n- Usa una condicional para evitar que el coche se mueva hacia atrás después de detenerse.",
+ "CSD U3 complex sprite movement practice parabola_2021": "# Curva\n\nEl avión sube para evitar el primer pico, pero vuela fuera de la pantalla. En el bucle de dibujo, actualiza su velocidad `Y` para que baje y evite el segundo pico.\n\n# Haz esto\n- Actualiza la velocidad `Y` en el bucle de dibujo para que mueva el avión hacia abajo.\n - Sugerencia: La velocidad comienza como negativa, yendo hacia arriba. Para ir hacia abajo, ¿en qué dirección debería estar la velocidad?\n- Puedes cambiar la velocidad `X` e `Y` inicial del avión, pero no es necesario.",
+ "CSD U3 keydown conditional_2021": "# Cambiando Sprites\n\nEste programa utiliza el bloque `keyDown` para detectar si una tecla específica está siendo pulsada.\n\n# Haz esto\n\n- Ejecuta el código y prueba a pulsar las teclas \"p\" y \"h\".\n- Mira dentro de la declaración `if` para ver cómo funciona el código.\n- Añade un bloque dentro de la tercera sentencia `if` para cambiar la animación a un animal diferente.",
+ "CSD U3 platform player2_2021": "# Controles de Usuario\n\nA continuación, debes añadir controles de usuario para que puedas mover a tu jugador. Tu jugador necesita moverse a la izquierda cuando se presiona la tecla de flecha izquierda, a la derecha cuando se presiona la tecla de flecha derecha, y saltar cuando se presiona la barra espaciadora.\n\n# Haz esto\n\n- Crea una nueva función `controlPlayer` en el área de \"funciones\" de tu código.\n- Dentro de la función `controlPlayer`, utiliza los bloques `if`, `keyDown` y `sprite.x` para hacer que tu jugador se mueva a la izquierda y a la derecha según las teclas de flecha. Mira la [Lección 15 Nivel 7](../../15/levels/7) para ver ejemplos.\n- Dentro de la función `controlPlayer`, utiliza los bloques `if`, `keyDown` y `velocidadY` para hacer que tu jugador salte cuando se pulse la flecha hacia arriba. Mira la [Lección 20 Nivel 5](../../20/levels/5) para ver ejemplos.\n- Llama a la función `controlPlayer` dentro del bucle de dibujo.\n- Ejecuta el juego y prueba tu código.",
+ "CSD U3 platform player4_2021": "# Recoger Objetos\n\nPor último, querrás que tu jugador recopile los objetos que caen de la parte superior de la pantalla.\n\n# Haz esto\n\n- Crea una función `collectItems` y añádela al área de \"funciones\" de tu código.\n- Utiliza los bloques `if` e `isTouching` para cambiar la posición `x` e `y` de los objetos cuando el jugador los toque. Puedes mirar la función `loopItem` para obtener pistas sobre cómo restablecer la posición de los elementos.\n- Dentro de tu sentencia `if`, añade un patrón de contador que aumentará la puntuación cada vez que el jugador toque un objeto. Consulta la [Lección 24 Puzzle 10](../../24/levels/10) para ver un ejemplo.\n- Llama a la función dentro del bucle de dibujo, en el área de \"actualización de sprites\" de tu código.\n- Ejecuta el código para probar tu función.",
+ "CSD U3 platform review_2021": "# Revisa tu Juego\n\nRevisa la guía de tu proyecto y juega un par de veces para asegurarte de que has completado todo.\n\n- ¿El sprite del jugador se mueve como debería?\n- ¿Funcionan todas las interacciones?\n- ¿Las plataformas se mueven correctamente?\n- ¿Funciona el marcador?",
+ "CSD U3 practice deceleration_2021": "
\n\n# Reducir la velocidad y dar marcha atrás\n\nEn esta animación, un ratón pasa corriendo junto a un gato. Vamos a cambiarla para que el ratón reduzca la velocidad, se detenga antes de llegar al gato y luego invierta la dirección como se observa a la derecha.\n\n# Haz esto\n\n* Fíjate en la actual *velocidad x* del sprite del ratón.\n* Usa el patrón de contador para cambiar la velocidad de manera que se acerque a 0 y luego cambie de dirección.\n * Sugerencia: Dado que el ratón comienza con una velocidad **negativa**, en realidad querrás **aumentarla** para reducir la velocidad.\n",
+ "CSD games collision predict contained_2021": "# Usando las Matemáticas para Averiguarlo\n\nLos ordenadores utilizan las matemáticas para comprobar si dos cosas se tocan. Mira las matemáticas en las líneas 17-18 de este programa para ver cómo se comparan las propiedades del sprite con su anchura para ver si se están tocando.\n\n# Haz esto\n\n- Lee las sentencias `if` dentro del bucle de dibujo y encuentra las diferentes propiedades del sprite y cómo se comparan.\n- Comenta el código con tu compañero.\n- ¿Por qué el código sólo utiliza las propiedades de anchura `x`, y no las de altura `y`?\n- ¿Te gustaría escribir este código cada vez que compruebes si algo se está tocando?",
+ "CSD games collisions assessment_2021": "
\n\n# Interacciones de los Sprites\n\nYa has visto cuatro tipos diferentes de interacciones de sprites. Los necesitarás todos para este desafío.\n\n# Haz esto\n\n- Para cada pareja de animales, elige la interacción de sprites que coincida con la imagen objetivo de la derecha.",
+ "CSD games conditionals bowl_2021": "
\n\n# Sopa Derramada\n\nLa sopa debe caerse del tazón cuando se voltea.\n\n# Haz esto\n\n* Ejecuta el programa para ver cómo funciona.\n* Añade una condicional que detecte cuando el cuenco está boca abajo y ajuste la animación del sprite para que sea un cuenco vacío. \n",
+ "CSD games conditionals practice spaceship_2021": "# Celebración Alienígena\n\nHaz que el alienígena baile cuando la nave espacial llegue a la parte superior de la pantalla.\n\n# Haz esto\n\n* Ejecuta el programa para ver cómo funciona.\n* Añade una condicional que detecte cuando la nave espacial está en el cielo y configure la animación del sprite en `alien_dance`. \n",
+ "CSD games flyer demo_2021": "# Juego del Aviador\n\nEn este juego de aviador, el jugador trata de recoger monedas, y las rocas empujan al jugador a través de la pantalla. Cuando el jugador sale de la pantalla, el juego termina.\n\nPractica al juego unas cuantas veces y coméntalo con tu compañero. Ya has aprendido todas las reglas que necesitas para codificar este juego. En este mini-proyecto vas a crear tu propio juego de aviadores.",
+ "CSD games functions assessment FR_2021": "# Usando Funciones\n\n¿Cuáles son las tres formas en las que las funciones pueden ser útiles al escribir programas?\n\n_Sugerencia: Vuelve a los niveles de práctica para repasar si no estás seguro._",
+ "CSD games input debug1_2021": "# Depurar el Movimiento de la Tortuga\n\nEste programa de tortuga se interrumpe cada vez que intenta moverse hacia la izquierda.\n\nLo que yo esperaba que ocurriera | Lo que ocurrió realmente | Cómo reproducir el error\n------- | ------- | -----\nLa tortuga se mueve a la izquierda | todo deja de funcionar | presiona la tecla de flecha izquierda\n\n\n# Haz esto\n\n* Ejecuta el programa y juega con él hasta que veas el error.\n* Usa las pistas para encontrar el error y arreglarlo.\n",
+ "CSD games input debug2_2021": "# Depurar Movimiento de la Tortuga 2\n\nDepurar por qué la tortuga no se mueve en absoluto.\n\nLo que yo esperaba que ocurriera | Lo que ocurrió realmente | Cómo reproducir el error\n------- | ------- | -----\n| La tortuga se mueve con las teclas de dirección | La tortuga casi se queda en | Presiona las \n| | el mismo lugar y deja tras de sí las imágenes | | teclas de flecha |\n\n\n# Haz esto\n\n* Ejecuta el programa y practica con él hasta que veas el fallo.\n* Usa las pistas para encontrar el error y arreglarlo.",
+ "CSD games mouse mousey_2021": "
\n\n# Paseo de la Mariquita\n\nEsta mariquita sólo debe moverse cuando el ratón está cerca de la parte inferior de la pantalla. Vas a utilizar una condicional para asegurarte de que la mariquita sólo se mueve cuando el ratón está cerca de la parte inferior de la pantalla.\n\n# Haz esto\n* Utiliza un bloque `if` para comprobar si la posición del ratón (`World.mouseY`) está por debajo de un determinado punto.\n* Añade código usando el patrón de contador para disminuir `bug.x` para hacer que se mueva. El bicho sólo debería moverse si el puntero del ratón está cerca de la parte inferior de la pantalla.",
+ "CSD games mouse scale_2021": "
\n\n# Espirales Gemelas\n\nEstas espirales giran y cambian de tamaño de forma opuesta.\n\n# Haz esto\n\n* Ejecuta el código para ver cómo se encogen, crecen y giran las espirales.\n* Añade el código para que las espirales cambien de tamaño cuando el ratón esté pulsado.\n",
+ "CSD games mousedown intro_2021": "# Control de los Engranajes\n\nAquí está el mismo programa, pero con una pequeña diferencia.\n\n# Haz esto\n\n- Lee el programa cuidadosamente, especialmente la línea 13, para averiguar cómo controlar los engranajes.\n- Ejecuta el programa y comprueba si has acertado.\n- Haz que los engranajes giren en sentido contrario cuando no hay entrada de usuario.",
+ "CSD games practice move with mouse_2021": "
\n\n# El Fantasma se Mueve con el Ratón\n\nEn este nivel, harás que el fantasma se mueva a la izquierda o a la derecha dependiendo de la posición del puntero del ratón. En el ejemplo mostrado, si el puntero del ratón está a la izquierda, el fantasma se mueve a la izquierda. Lo contrario también es cierto.\n\n# Haz esto\n\n* Escribe al menos dos sentencias if para comprobar la ubicación del ratón.\n* Consigue que el fantasma se mueva en una dirección diferente para cada ubicación del ratón.",
+ "CSD games side scroller demo_2021": "# Salto de la Rana\n\nEste juego de salto de rana es un ejemplo de desplazamiento lateral. Los juegos de desplazamiento lateral tienen fondos que se mueven por la pantalla de lado a lado.\n\nEn este juego, el jugador utiliza la flecha hacia arriba para que la rana salte. La rana debe evitar las setas mientras intenta atrapar las moscas. Cada mosca suma un punto, y golpear los hongos hace que la salud del jugador baje. Cuando la salud del jugador llega a cero, el juego termina.\n\nPrueba el juego unas cuantas veces y coméntalo con tu compañero. Ya has aprendido todas las habilidades que necesitas para codificar este juego. En este mini-proyecto vas a crear tu propio juego de desplazamiento lateral.",
+ "CSD games sidescroll background_2021": "# Dibuja tu Fondo\n\nEl juego de ejemplo tenía un fondo simple de un cielo azul, una nube ovalada blanca y un suelo marrón. Puedes elegir hacer tu fondo tan simple o complicado como quieras.\n\n# Haz esto\n\n- Encuentra el comentario de código `// BACKGROUND`.\n- Utiliza las herramientas de dibujo para dibujar tu fondo.\n- Ejecuta el programa para probar el fondo.",
+ "CSD games sidescroll review_2021": "# Revisa tu Juego\n\nAhora que has añadido todas las características, ¡es hora de disfrutar de tu juego!\n\n# Haz esto\n\n- Practica con tu juego un par de veces para comprobar que no hay errores.\n- Revisa la guía de tu proyecto para asegurarte de que no has pasado nada por alto.\n- Haz los últimos cambios.",
+ "CSD games velocity 4 directions_2021": "
\n\n# Cambiando de Dirección\n\nEstudia la animación de la derecha. Observa que el sprite alienígena púrpura cambia entre las velocidades `x` e `y` cuando está cerca de cada esquina de la pantalla.\n\n# Haz esto\n\n* Ejecuta el programa y para entender cómo funciona hasta ahora.\n* Añade los bloques `.velocityX` y `.velocityY` a cada condicional para que el alienígena complete el circuito completo.\n\n**¡Ten cuidado!** Si el sprite empieza a moverse en diagonal, puede significar que tiene una velocidad `x` y otra `y`. En la primera esquina el alienígena necesita *dejar de moverse hacia arriba* y *empezar a moverse hacia la derecha*.",
+ "CSD games velocity bee_2021": "
\n\n# Pincel\n\nMoja el pincel en la pintura.\n\n# Haz esto\n\n* Usa una condicional para enviar el pincel hacia abajo si se presiona la flecha hacia abajo.\n* Utiliza otra condicional para enviar el pincel hacia arriba si llega a la paleta.\n * Sugerencia: Tendrás que comprobar su propiedad `y`.",
+ "CSD games velocity tennis_2021": "# De Ida y Vuelta\n\nEsta pelota rebota cuando toca la parte inferior de la pantalla. ¿Puedes hacer que rebote cuando toque la parte superior de la pantalla?\n\n# Haz esto\n\n- Ejecuta el código y comprueba cómo funciona.\n- Observa cómo se utilizan las condicionales y la velocidad para hacer que la pelota rebote en la parte inferior de la pantalla.\n- Añade código para que la pelota rebote en la parte superior de la pantalla.",
+ "CSD web conditionals assessment_2021": "# Dinosaurio Mágico\n\nHaz que el dinosaurio se convierta en un pterodáctilo cuando llegue al cielo.\n\n# Haz esto\n\n- Ejecuta el código para ver cómo funciona.\n- Añade una condicional que cambie la animación del dinosaurio a un pterodáctilo cuando llegue al cielo.",
+ "CSD web mouse assessment_2021": "# Arregla el Programa\n\nEste programa sólo debería agitar a la criatura cuando el ratón está pulsado, y sólo mostrar las direcciones cuando el ratón **no** está pulsado.\n\n# Haz esto\n\n- Cambia el código para que la criatura sólo se agite cuando se pulse el ratón.\n- Cambia el código para que las instrucciones (\" Pulsa el ratón para agitar a la criatura.\") **sólo se muestren** cuando el usuario **no** esté pulsando el ratón.",
+ "U4 Model Program 1_2021": "# Aplicación de Reciclaje 2.0\n\nEstos niveles retoman la Aplicación de Reciclaje que iniciaste en una lección anterior. Nuestro objetivo es ampliar esa aplicación añadiendo nuevas pantallas, como una pantalla de \"Acerca de\" o \"Contacto\".\n\n# Añadiendo una Nueva Pantalla\n\nPara completar la aplicación de reciclaje, vas a necesitar algo más que una pantalla de inicio. Para crear más pantallas, sólo tienes que hacer clic en el desplegable de la parte superior de la pantalla de la aplicación y seleccionar \"Nueva pantalla...\"\n\n
\n\n# Haz esto\n\n- **Crea una nueva pantalla** y dale el ID \"Acerca de\".",
+ "csd-apps for good-1": "## Hacer Más en Durham\n\n¿Para qué problema social crees que se ha diseñado esta aplicación?\n\n¿Cómo lo consigue?",
+ "csd-apps for good-2": "## Conservación del Agua\n\n- ¿Qué problema social crees que pretende abordar esta aplicación?\n- ¿Cómo lo consigue?",
+ "csd-apps for good-3": "## Cuatro Cuadrados\n\n¿Qué problema social crees que pretende solucionar esta aplicación?\n\n¿Cómo lo consigue?",
+ "csd-explore ui-1": "# Haz esto\n\nExplora esta aplicación. Haz una lista de los diferentes elementos de diseño que veas (botones, cuadros de texto, etc.).\n\nComparte con tu equipo cualquier característica interesante de estas aplicaciones.",
+ "csd-explore ui-2": "# Haz esto\n\nExplora esta aplicación. Haz una lista de los diferentes elementos de diseño que veas (botones, cuadros de texto, etc.).\n\nComparte con tu equipo cualquier característica interesante de estas aplicaciones.",
+ "csd-explore ui-3": "# Haz esto\n\nExplora esta aplicación. Haz una lista de los diferentes elementos de diseño que veas (botones, cuadros de texto, etc.).\n\nComparte con tu equipo cualquier característica interesante de estas aplicaciones.",
+ "csd-explore ui-4": "# Haz esto\n\nExplora esta aplicación. Haz una lista de los diferentes elementos de diseño que veas (botones, cuadros de texto, etc.).\n\nComparte con tu equipo cualquier característica interesante de estas aplicaciones.",
+ "csd-explore ui-5": "# Haz esto\n\nExplora esta aplicación. Haz una lista de los diferentes elementos de diseño que veas (botones, cuadros de texto, etc.).\n\nComparte con tu equipo cualquier característica interesante de estas aplicaciones.",
+ "csd-explore ui-6": "# Haz esto\n\nExplora esta aplicación. Haz una lista de los diferentes elementos de diseño que veas (botones, cuadros de texto, etc.).\n\nComparte con tu equipo cualquier característica interesante de estas aplicaciones."
}
}
}
diff --git a/dashboard/config/locales/long_instructions.fil-PH.json b/dashboard/config/locales/long_instructions.fil-PH.json
index 4f132f4fb4284..376c9dbc5aa49 100644
--- a/dashboard/config/locales/long_instructions.fil-PH.json
+++ b/dashboard/config/locales/long_instructions.fil-PH.json
@@ -40,14 +40,14 @@
"CourseD_Dance_2020_bonus1": "# Back and Forth!\n\nMinsan, maaaring gusto mong gumawa ng isang pattern ng mga galaw sa sayaw na pipiliin mo, Ang bagong block na ito ay nagpapahintulot sa iyo na gawin iyan. \n\nsprites2MOVES.RollMOVES.ClapHigh \n\nAng mga galaw na pipiliin mo sa itaas ay magpaulit-ulit sa sequence nang walang hanggan. \n\n- Gumawa ng kahaliling routine para sa lead dance sa harap! \n- Gamitin ang iba't ibang numero para baguhin ang rate sa paghahalili ng mga galaw. Subukan ang `1` o `0.5` para hahalili nang mas mabilis!",
"CourseD_Dance_2020_bonus3": "# Mag-formation Tayo!\n\nTingnan ang sayaw na ito na gumagamit ng \"MOOSE\"??? block para baguhin ang formation ng mga backup dancer sa buong sayaw. Subukan ang isa sa mga ideyang ito para i-extend ito:\n\n- Lumikha ng ikalawang grupo ng mga dancer sa iba’t ibang layout\n- Palitan ang layout kapag pinindot ang key\n- Palitan ang property kapag nagbago ng formation ang mga dancer",
"CourseD_Dance_Party_01": "_Mag-dance party tayo!_\n\nHilahin ang block na `gumawa ng bago` papasok sa workspace, at ikonekta ito sa loob ng `setup` blockpara likhain ang iyong unang dancer. \n\n- _Pwede mo ring i-click ang bumbilya kung gusto mo ang dagdag na impormasyon o ekstrang mga hamon._\"",
- "CourseD_Dance_Party_02": "\"Gawin natin itong moose dancing!\n\nHilahin ang new_dancerFloss-1 block sa workspace. Ikonekta ito sa ilalim ng 4\"measures\" block. Dapat mag-umpisa ang iyong dancer ng bagong galaw matapos ang ikaapat na measure.\n\nAng mga**measure** ay ginagamit para bilangin ang oras sa musika. Sa tutorialna ito, ang isang measure ay apat na beat o kupas ang haba.\".",
+ "CourseD_Dance_Party_02": "\"Gawin natin itong moose dancing!\n\nHilahin ang new\\_dancerFloss-1 block sa workspace. Ikonekta ito sa ilalim ng 4\"measures\" block. Dapat mag-umpisa ang iyong dancer ng bagong galaw matapos ang ikaapat na measure.\n\nAng mga**measure** ay ginagamit para bilangin ang oras sa musika. Sa tutorialna ito, ang isang measure ay apat na beat o kupas ang haba.\".",
"CourseD_Dance_Party_03": "_Ngayon naggo-groove tayo!_\n\nMagdagdag ng 6\"measures\" block sa iyong workspace. Paumpisahin ang dancer ng bagong galaw matapos ang 6 na measure.",
"CourseD_Dance_Party_04": "_Nangangailangan ng flash ang sayaw na ito!_\n\nMaghanap ng bagong block sa iyong toolbox na magdadagdag sa background effect sa likod ng iyong dancer. Bantayan na magbago ang mga effect kasabay ng musika!",
"CourseD_Dance_Party_05": "Gamitin ang ibang bagong block para pagalawin ang dancer **bawat 2 measure**!\n\n- Ang Pagpili ng `(Susunod)`, `(Nauna)`, o `(Random)` ay nagsasabi sa dancer na isagawa ang naiibang galaw bawat pag-run sa code.",
"CourseD_Dance_Party_06": "_Nangangailangan kami ng mas maraming dancer!_\n\nLumikha ng isang backup dancer na tinatawag na `backup_dancer1` para sumayaw kasama ng pusa.",
"CourseD_Dance_Party_08": "Ang bawat dancer ay nagtakda ng isang set ng mga _property_ na kumukontrol kung ano ang hitsura nito.\n\nPwede mong gawin na ang isang dancer ay nasa background sa pamamagitan ng mas pagpapaliit sa kanilang _laki_. Pwede mong bang gawing magkasinlaki ang dalawang backup dancer?",
"CourseD_Dance_Party_09": "\"Ang mga dancer ay may isang property ng \"\"tint\"\" na makapagdagdag ng layer ng kulay. Subukang palitan ang tint ng isa sa iyong mga dancer.\n\n- Ihahalo ng mga tint ang kulay na gusto mong piliin sa mga kulay ng mga dancer.\".",
- "CourseD_Dance_Party_10": "\"Ngayon, alam na natin kung paano pangasiwaan ang mga property ng isang dancer, Pwede rin tayong gumawa ng kaparehong mga property na awtomatikong tutugon sa musika gamit ang block na ito:\n\n \n right_unicorn\n \"scale\"\n \"bass\"\n \n\nAng programang ito ay gumagamit ng \"\"bass\"\" volume (ang mababang tunog) ng musika para kontrolin ang taas ng isang dancer. Magagawa mo rin bang patugunin ang ibang dancer sa musika?\"?",
+ "CourseD_Dance_Party_10": "\"Ngayon, alam na natin kung paano pangasiwaan ang mga property ng isang dancer, Pwede rin tayong gumawa ng kaparehong mga property na awtomatikong tutugon sa musika gamit ang block na ito:\n\n \n right\\_unicorn\n \"scale\"\n \"bass\"\n \n\nAng programang ito ay gumagamit ng \"\"bass\"\" volume (ang mababang tunog) ng musika para kontrolin ang taas ng isang dancer. Magagawa mo rin bang patugunin ang ibang dancer sa musika?\"?",
"CourseD_Dance_Party_11": "\"Pinapahintulutan ka ng block na i-run ang code kapag pinindot ang paitaas na arrow. \n\nMaaaring baguhin mo ang galaw sa sayaw, baguhin ang mga property ng dancer, o gumawa ng mabilis na galaw nang isang beses lang. Maging mapanlikha at maghanap ng mga bagong block!\"!",
"CourseD_Dance_Party_11_5": "\"Tingnan ang block na ito:\n\n\n \n 6\n \"DUCK\"\n \"circle\"\n \n\nNgayon pwede ka ang lumikha ng kumpol ng mga dancer nang sabay-sabay!\n\nSubukang gamitin ang block na \"\"lahat pato\"\" para isulat ang code na magpapasayaw nang magkasabay sa lahat ng pato.\".",
"CourseD_Dance_Party_11b": "Panahon na para sa dance-off! Nagda-dab ang Pusa kapag pinindot mo ang pakaliwang arrow key. \"\"Ipa-drop\"\" ang robot kapag pinindot mo ang pakanang arrow key, at \"\"papalakpakin\"\" kapag pinindot mo ang paitaas na arrow key.\n\n**Gamitin ang mga key para ipagawa sa Robot ang drop-palakpak-drop-palakpak nang sinbilis ng kaya mo!**",
diff --git a/dashboard/config/locales/long_instructions.fr-FR.json b/dashboard/config/locales/long_instructions.fr-FR.json
index a7283ec035a06..33a3a2f8d6328 100644
--- a/dashboard/config/locales/long_instructions.fr-FR.json
+++ b/dashboard/config/locales/long_instructions.fr-FR.json
@@ -212,18 +212,18 @@
"CSD U2 lists intro": "# Lists\\\r\n\n\\\r\n
\\\r\n**What are the two types of lists?**
\\\r\n\nThere are two types of lists in HTML, ordered and unordered lists.\\\r\n\n \\\r\n\\\r\n
\\\r\n**What\nis an unordered list?**
\\\r\nAn unordered list is just a set of bulleted\nitems.\\\r\n
\\\r\nAn unordered list element has the tag ``.\nThis is an abbreviation for Unordered List.\nEach item in the list is marked by a list item element ` `. This\nis an abbreviation for List Item. The list\nitem element is a child element, which means that it goes inside of its parent\nelement, the unordered list.\\\r\n \\\r\n\\\r\n
\\\r\n**How\ndo I make an unordered list?**
\\\r\nMaking an unordered list has two\nsteps: making the list and adding the list items. To make the unordered list,\nwrite the unordered list tags ``. Next, add your list items **inside**\nthe unordered list tags. To make each list item, use the list item tags `\n` and write the list item inside the tags.\\\r\n
\\\r\nIt can\nbe helpful to indent your ` ` tags so it's clear they are contained\nin the `` tags.\\\r\n \\\r\n\\\r\n
\\\r\n**What\nis an ordered list?**
\\\r\nAn ordered list is a set of bulleted items\nwhich are numbered.\\\r\n
\\\r\nAn ordered list element has the tags\n`
`. This is an abbreviation for Ordered List.\nEach item in the list is marked by a list item element ` `. This\nis an abbreviation for List Item. The list\nitem element is a child element, which means that it goes inside of its parent\nelement, the ordered list.\\\r\n \\\r\n\\\r\n
\\\r\n**How\ndo I make an ordered list?**
\\\r\nMaking an ordered list has two steps:\nmaking the list and adding the list items. To make the ordered list, write\nthe ordered list tags `
`. Next, add your list items **inside** the\nordered list tags. To make each list item, use the list item tags ` `\nand write the list item inside the tags.\\\r\n
\\\r\nIt can be helpful\nto indent your ` ` tags so it's clear they are contained in the\n`
` tags.\\\r\n \\\r\n
\\\r\n\\\r\nYou can also use HTML to\nmake different types of lists on your web page. This recipe includes two\ndifferent types of lists, one ordered (with numbers) and one unordered (with\nbullets).\\\r\n\\\r\n# Do This\\\r\n\\\r\n* Use the inspector tool to see the code\nthat is making the two different kinds of lists.\\\r\n* Make sure you and your\npartner agree on what the different tags do.\\\r\n* Fix the code so that the\nsecond item in each list displays correctly",
"CSD U2 lists intro_2018": "# Lists\\\r\n\n\\\r\n
\\\r\n**What are the two types of lists?**
\\\r\n\nThere are two types of lists in HTML, ordered and unordered lists.\\\r\n\n \\\r\n\\\r\n
\\\r\n**What\nis an unordered list?**
\\\r\nAn unordered list is just a set of bulleted\nitems.\\\r\n
\\\r\nAn unordered list element has the tag ``.\nThis is an abbreviation for Unordered List.\nEach item in the list is marked by a list item element ` `. This\nis an abbreviation for List Item. The list\nitem element is a child element, which means that it goes inside of its parent\nelement, the unordered list.\\\r\n \\\r\n\\\r\n
\\\r\n**How\ndo I make an unordered list?**
\\\r\nMaking an unordered list has two\nsteps: making the list and adding the list items. To make the unordered list,\nwrite the unordered list tags ``. Next, add your list items **inside**\nthe unordered list tags. To make each list item, use the list item tags `\n` and write the list item inside the tags.\\\r\n
\\\r\nIt can\nbe helpful to indent your ` ` tags so it's clear they are contained\nin the `` tags.\\\r\n \\\r\n\\\r\n
\\\r\n**What\nis an ordered list?**
\\\r\nAn ordered list is a set of bulleted items\nwhich are numbered.\\\r\n
\\\r\nAn ordered list element has the tags\n`
`. This is an abbreviation for Ordered List.\nEach item in the list is marked by a list item element ` `. This\nis an abbreviation for List Item. The list\nitem element is a child element, which means that it goes inside of its parent\nelement, the ordered list.\\\r\n \\\r\n\\\r\n
\\\r\n**How\ndo I make an ordered list?**
\\\r\nMaking an ordered list has two steps:\nmaking the list and adding the list items. To make the ordered list, write\nthe ordered list tags `
`. Next, add your list items **inside** the\nordered list tags. To make each list item, use the list item tags ` `\nand write the list item inside the tags.\\\r\n
\\\r\nIt can be helpful\nto indent your ` ` tags so it's clear they are contained in the\n`
` tags.\\\r\n \\\r\n
\\\r\n\\\r\nYou can also use HTML to\nmake different types of lists on your web page. This recipe includes two\ndifferent types of lists, one ordered (with numbers) and one unordered (with\nbullets).\\\r\n\\\r\n# Do This\\\r\n\\\r\n* Use the inspector tool to see the code\nthat is making the two different kinds of lists.\\\r\n* Make sure you and your\npartner agree on what the different tags do.\\\r\n* Fix the code so that the\nsecond item in each list displays correctly",
"CSD U2 lists intro_2019": "# Lists\\\r\n\n\\\r\n
\\\r\n**What are the two types of lists?**
\\\r\n\nThere are two types of lists in HTML, ordered and unordered lists.\\\r\n\n \\\r\n\\\r\n
\\\r\n**What\nis an unordered list?**
\\\r\nAn unordered list is just a set of bulleted\nitems.\\\r\n
\\\r\nAn unordered list element has the tag ``.\nThis is an abbreviation for Unordered List.\nEach item in the list is marked by a list item element ` `. This\nis an abbreviation for List Item. The list\nitem element is a child element, which means that it goes inside of its parent\nelement, the unordered list.\\\r\n \\\r\n\\\r\n
\\\r\n**How\ndo I make an unordered list?**
\\\r\nMaking an unordered list has two\nsteps: making the list and adding the list items. To make the unordered list,\nwrite the unordered list tags ``. Next, add your list items **inside**\nthe unordered list tags. To make each list item, use the list item tags `\n` and write the list item inside the tags.\\\r\n
\\\r\nIt can\nbe helpful to indent your ` ` tags so it's clear they are contained\nin the `` tags.\\\r\n \\\r\n\\\r\n
\\\r\n**What\nis an ordered list?**
\\\r\nAn ordered list is a set of bulleted items\nwhich are numbered.\\\r\n
\\\r\nAn ordered list element has the tags\n`
`. This is an abbreviation for Ordered List.\nEach item in the list is marked by a list item element ` `. This\nis an abbreviation for List Item. The list\nitem element is a child element, which means that it goes inside of its parent\nelement, the ordered list.\\\r\n \\\r\n\\\r\n
\\\r\n**How\ndo I make an ordered list?**
\\\r\nMaking an ordered list has two steps:\nmaking the list and adding the list items. To make the ordered list, write\nthe ordered list tags `
`. Next, add your list items **inside** the\nordered list tags. To make each list item, use the list item tags ` `\nand write the list item inside the tags.\\\r\n
\\\r\nIt can be helpful\nto indent your ` ` tags so it's clear they are contained in the\n`
` tags.\\\r\n \\\r\n
\\\r\n\\\r\nYou can also use HTML to\nmake different types of lists on your web page. This recipe includes two\ndifferent types of lists, one ordered (with numbers) and one unordered (with\nbullets).\\\r\n\\\r\n# Do This\\\r\n\\\r\n* Use the inspector tool to see the code\nthat is making the two different kinds of lists.\\\r\n* Make sure you and your\npartner agree on what the different tags do.\\\r\n* Fix the code so that the\nsecond item in each list displays correctly",
- "CSD U2 new page": "# Create a New Page for Your Website.\\\r\n\n\\\r\nHere's\nyour project from before. You'll be adding another page. Your new page\ncan be a top 10 list, a recipe, or anything you like.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nAdd a new HTML file by clicking ![](). The new file will appear in the files list on the left side of the\nworkspace.\\\r\n\n- Rename the file, either by right clicking it and choosing\n \"Rename\", or by clicking on it when it's already highlighted. **Make sure\n the name is unique, descriptive and ends in \".html\"**.\\\r\n- Use HTML to\n fill out your new page. It should include:\\\r\n- a list\\\r\n- a heading\\\r\n \\\r",
- "CSD U2 new page_2018": "# Create a New Page for Your Website.\\\r\n\n\\\r\nHere's\nyour project from before. You'll be adding another page. Your new page\ncan be a top 10 list, a recipe, or anything you like.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nAdd a new HTML file by clicking ![](). The new file will appear in the files list on the left side of the\nworkspace.\\\r\n\n- Rename the file, either by right clicking it and choosing\n \"Rename\", or by clicking on it when it's already highlighted. **Make sure\n the name is unique, descriptive and ends in \".html\"**.\\\r\n- Use HTML to\n fill out your new page. It should include:\\\r\n- a list\\\r\n- a heading\\\r\n \\\r",
- "CSD U2 new page_2019": "# Create a New Page for Your Website.\\\r\n\n\\\r\nHere's\nyour project from before. You'll be adding another page. Your new page\ncan be a top 10 list, a recipe, or anything you like.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nAdd a new HTML file by clicking ![](). The new file will appear in the files list on the left side of the\nworkspace.\\\r\n\n- Rename the file, either by right clicking it and choosing\n \"Rename\", or by clicking on it when it's already highlighted. **Make sure\n the name is unique, descriptive and ends in \".html\"**.\\\r\n- Use HTML to\n fill out your new page. It should include:\\\r\n- a list\\\r\n- a heading\\\r\n \\\r",
+ "CSD U2 new page": "# Create a New Page for Your Website.\\\r\n\n\\\r\nHere's\nyour project from before. You'll be adding another page. Your new page\ncan be a top 10 list, a recipe, or anything you like.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nAdd a new HTML file by clicking !\\[](\\<\nPM.png>). The new file will appear in the files list on the left side of the\nworkspace.\\\r\n\n- Rename the file, either by right clicking it and choosing\n \"Rename\", or by clicking on it when it's already highlighted. **Make sure\n the name is unique, descriptive and ends in \".html\"**.\\\r\n- Use HTML to\n fill out your new page. It should include:\\\r\n- a list\\\r\n- a heading\\\r\n \\\r",
+ "CSD U2 new page_2018": "# Create a New Page for Your Website.\\\r\n\n\\\r\nHere's\nyour project from before. You'll be adding another page. Your new page\ncan be a top 10 list, a recipe, or anything you like.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nAdd a new HTML file by clicking !\\[](\\<\nPM.png>). The new file will appear in the files list on the left side of the\nworkspace.\\\r\n\n- Rename the file, either by right clicking it and choosing\n \"Rename\", or by clicking on it when it's already highlighted. **Make sure\n the name is unique, descriptive and ends in \".html\"**.\\\r\n- Use HTML to\n fill out your new page. It should include:\\\r\n- a list\\\r\n- a heading\\\r\n \\\r",
+ "CSD U2 new page_2019": "# Create a New Page for Your Website.\\\r\n\n\\\r\nHere's\nyour project from before. You'll be adding another page. Your new page\ncan be a top 10 list, a recipe, or anything you like.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nAdd a new HTML file by clicking !\\[](\\<\nPM.png>). The new file will appear in the files list on the left side of the\nworkspace.\\\r\n\n- Rename the file, either by right clicking it and choosing\n \"Rename\", or by clicking on it when it's already highlighted. **Make sure\n the name is unique, descriptive and ends in \".html\"**.\\\r\n- Use HTML to\n fill out your new page. It should include:\\\r\n- a list\\\r\n- a heading\\\r\n \\\r",
"CSD U2 ordered list": "# Ordered Lists\\\r\n\n\\\r\n
\\\r\n**What are the two types of lists?**
\\\r\n\nThere are two types of lists in HTML, ordered and unordered lists.\\\r\n\n \\\r\n
\\\r\n**What\nis an ordered list?**
\\\r\nAn ordered list is a set of bulleted items\nwhich are numbered.\\\r\n
\\\r\nAn ordered list element has the tag\n`` . This is an abbreviation for Ordered List.\nEach item in the list is marked by a list item element `- `;. This is an\nabbreviation for List Item. The list item\nelement is a child element, which means that it goes inside of its parent\nelement, the ordered list (`
`).\\\r\n\\\r\n
\\\r\n\\\r\n
\\\r\n**How\ndo I make an ordered list?**
\\\r\nMaking an ordered list has two steps:\nmaking the list and adding the list items. To make the ordered list, write\nthe ordered list tags `
`. Next, add your list items **inside** the\nordered list tags. To make each list item, use the list item tags ``\nand write the list item inside the tags.\\\r\n
\\\r\nIt can be helpful\nto indent your `` tags so it's clear they are contained in the ``\ntag.\\\r\n\\\r\n
\\\r\n\\\r\n
\\\r\n**Show me working code.**
\\\r\n\\\r\n\\\r\nExample | \\\r\nResult | \\\r\n
\\\r\n\\\r\n\n<ol> <li>Step 1 </li> <li>Step 2 </li>\n <li>Step 3 </li> </ol> | \\\r\n![]() | \\\r\n
\\\r\n
\\\r\n\\\r\n \\\r\n
\\\r\n\\\r\nThis\npage should include an ordered list, but it's missing the list tags.\\\r\n\\\r\n#\nDo This\\\r\n\\\r\n* Use the `` and `- ` tags to structure this content\ninto an ordered list that looks like the one below.\\\r\n\\\r\n*Hint: There will\nbe NO NUMBERS in your code.* \\\r\n\\\r\n![](https://images.code.org/b3186e83c3e3bd2680a1a300e5abd126-image-1493238064706.17.03\nPM.png)",
"CSD U2 ordered list_2018": "# Ordered Lists\\\r\n\n
\\\r\n
\\\r\n**What are the two types of lists?**
\\\r\n\nThere are two types of lists in HTML, ordered and unordered lists.\\\r\n\n \\\r\n
\\\r\n**What\nis an ordered list?**
\\\r\nAn ordered list is a set of bulleted items\nwhich are numbered.\\\r\n
\\\r\nAn ordered list element has the tag\n`` . This is an abbreviation for Ordered List.\nEach item in the list is marked by a list item element `- `;. This is an\nabbreviation for List Item. The list item\nelement is a child element, which means that it goes inside of its parent\nelement, the ordered list (`
`).\\\r\n\\\r\n
\\\r\n\\\r\n
\\\r\n**How\ndo I make an ordered list?**
\\\r\nMaking an ordered list has two steps:\nmaking the list and adding the list items. To make the ordered list, write\nthe ordered list tags `
`. Next, add your list items **inside** the\nordered list tags. To make each list item, use the list item tags ``\nand write the list item inside the tags.\\\r\n
\\\r\nIt can be helpful\nto indent your `- ` tags so it's clear they are contained in the `
`\ntag.\\\r\n\\\r\n
\\\r\n\\\r\n
\\\r\n**Show me working code.**
\\\r\n\\\r\n\\\r\nExample | \\\r\nResult | \\\r\n
\\\r\n\\\r\n\n<ol> <li>Step 1 </li> <li>Step 2 </li>\n <li>Step 3 </li> </ol> | \\\r\n![]() | \\\r\n
\\\r\n
\\\r\n\\\r\n \\\r\n
\\\r\n\\\r\nThis\npage should include an ordered list, but it's missing the list tags.\\\r\n\\\r\n#\nDo This\\\r\n\\\r\n* Use the `` and `- ` tags to structure this content\ninto an ordered list that looks like the one below.\\\r\n\\\r\n*Hint: There will\nbe NO NUMBERS in your code.* \\\r\n\\\r\n![](https://images.code.org/b3186e83c3e3bd2680a1a300e5abd126-image-1493238064706.17.03\nPM.png)",
"CSD U2 ordered list_2019": "# Ordered Lists\\\r\n\n
\\\r\n
\\\r\n**What are the two types of lists?**
\\\r\n\nThere are two types of lists in HTML, ordered and unordered lists.\\\r\n\n \\\r\n
\\\r\n**What\nis an ordered list?**
\\\r\nAn ordered list is a set of bulleted items\nwhich are numbered.\\\r\n
\\\r\nAn ordered list element has the tag\n`` . This is an abbreviation for Ordered List.\nEach item in the list is marked by a list item element `- `;. This is an\nabbreviation for List Item. The list item\nelement is a child element, which means that it goes inside of its parent\nelement, the ordered list (`
`).\\\r\n\\\r\n
\\\r\n\\\r\n
\\\r\n**How\ndo I make an ordered list?**
\\\r\nMaking an ordered list has two steps:\nmaking the list and adding the list items. To make the ordered list, write\nthe ordered list tags `
`. Next, add your list items **inside** the\nordered list tags. To make each list item, use the list item tags ``\nand write the list item inside the tags.\\\r\n
\\\r\nIt can be helpful\nto indent your `- ` tags so it's clear they are contained in the `
`\ntag.\\\r\n\\\r\n
\\\r\n\\\r\n
\\\r\n**Show me working code.**
\\\r\n\\\r\n\\\r\nExample | \\\r\nResult | \\\r\n
\\\r\n\\\r\n\n<ol> <li>Step 1 </li> <li>Step 2 </li>\n <li>Step 3 </li> </ol> | \\\r\n![]() | \\\r\n
\\\r\n
\\\r\n\\\r\n \\\r\n
\\\r\n\\\r\nThis\npage should include an ordered list, but it's missing the list tags.\\\r\n\\\r\n#\nDo This\\\r\n\\\r\n* Use the `` and `- ` tags to structure this content\ninto an ordered list that looks like the one below.\\\r\n\\\r\n*Hint: There will\nbe NO NUMBERS in your code.* \\\r\n\\\r\n![](https://images.code.org/b3186e83c3e3bd2680a1a300e5abd126-image-1493238064706.17.03\nPM.png)",
"CSD U2 project review": "# Review Your Project\\\r\n\n\\\r\nYou're\nalmost ready to publish your project, but you should check one more time that\nyou have fulfilled all the requirements for this project.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nCheck that you are comfortable sharing all the information that's on your\nsite.\\\r\n\n- Check that all of your images are correctly attributed, and that\n you have the right to put them on your site.\\\r\n- Check that your project\n includes everything included in the project rubric.\\\r\n- Use comments and\n whitespace to make your website readable.\\\r\n- Ask your partner to help you\n find any potential problems with your site.\\\r",
"CSD U2 project review_2018": "# Review Your Project\\\r\n\n\\\r\nYou're\nalmost ready to publish your project, but you should check one more time that\nyou have fulfilled all the requirements for this project.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nCheck that you are comfortable sharing all the information that's on your\nsite.\\\r\n\n- Check that all of your images are correctly attributed, and that\n you have the right to put them on your site.\\\r\n- Check that your project\n includes everything included in the project rubric.\\\r\n- Use comments and\n whitespace to make your website readable.\\\r\n- Ask your partner to help you\n find any potential problems with your site.\\\r",
"CSD U2 project review_2019": "# Review Your Project\\\r\n\n\\\r\nYou're\nalmost ready to publish your project, but you should check one more time that\nyou have fulfilled all the requirements for this project.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nCheck that you are comfortable sharing all the information that's on your\nsite.\\\r\n\n- Check that all of your images are correctly attributed, and that\n you have the right to put them on your site.\\\r\n- Check that your project\n includes everything included in the project rubric.\\\r\n- Use comments and\n whitespace to make your website readable.\\\r\n- Ask your partner to help you\n find any potential problems with your site.\\\r",
- "CSD U2 project share": "# Share Your Project\\\r\n\n\\\r\nIt's\ntime to share your project with the world!\\\r\n\\\r\n\n# Do This\\\r\n\n- Click the\n ![]() button at the top of this page.\\\r\n- Copy the URL it gives you, and\n email it to the people you want to see your page.\\\r\n \\\r",
- "CSD U2 project share_2018": "# Share Your Project\\\r\n\n\\\r\nIt's\ntime to share your project with the world!\\\r\n\\\r\n\n# Do This\\\r\n\n- Click the\n ![]() button at the top of this page.\\\r\n- Copy the URL it gives you, and\n email it to the people you want to see your page.\\\r\n \\\r",
- "CSD U2 project share_2019": "# Share Your Project\\\r\n\n\\\r\nIt's\ntime to share your project with the world!\\\r\n\\\r\n\n# Do This\\\r\n\n- Click the\n ![]() button at the top of this page.\\\r\n- Copy the URL it gives you, and\n email it to the people you want to see your page.\\\r\n \\\r",
+ "CSD U2 project share": "# Share Your Project\\\r\n\n\\\r\nIt's\ntime to share your project with the world!\\\r\n\\\r\n\n# Do This\\\r\n\n- Click the\n !\\[](\\<\n AM.png>) button at the top of this page.\\\r\n- Copy the URL it gives you, and\n email it to the people you want to see your page.\\\r\n \\\r",
+ "CSD U2 project share_2018": "# Share Your Project\\\r\n\n\\\r\nIt's\ntime to share your project with the world!\\\r\n\\\r\n\n# Do This\\\r\n\n- Click the\n !\\[](\\<\n AM.png>) button at the top of this page.\\\r\n- Copy the URL it gives you, and\n email it to the people you want to see your page.\\\r\n \\\r",
+ "CSD U2 project share_2019": "# Share Your Project\\\r\n\n\\\r\nIt's\ntime to share your project with the world!\\\r\n\\\r\n\n# Do This\\\r\n\n- Click the\n !\\[](\\<\n AM.png>) button at the top of this page.\\\r\n- Copy the URL it gives you, and\n email it to the people you want to see your page.\\\r\n \\\r",
"CSD U2 upload images": "# Upload Images\\\r\n\n\\\r\nNext, you'll\nneed to upload all of your images into your project.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nDownload all the images you want onto your computer. Visit Lesson 7 Level 5 for help if you need it.\\\r\n\n- Make sure\n you have the right to use these images.\\\r\n- Write down all of the attribution\n information that you need.\\\r\n- Upload all of the images into your project. Visit\n Lesson 8 Level 6\n if you've forgotten how.\\\r\n \\\r",
"CSD U2 upload images_2018": "# Upload Images\\\r\n\n\\\r\nNext, you'll\nneed to upload all of your images into your project.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nDownload all the images you want onto your computer. Visit Lesson 7 Level 5 for help if you need it.\\\r\n\n- Make sure\n you have the right to use these images.\\\r\n- Write down all of the attribution\n information that you need.\\\r\n- Upload all of the images into your project. Visit\n Lesson 8 Level 6\n if you've forgotten how.\\\r\n \\\r",
"CSD U2 upload images_2019": "# Upload Images\\\r\n\n\\\r\nNext, you'll\nneed to upload all of your images into your project.\\\r\n\\\r\n\n# Do This\\\r\n\n\\*\nDownload all the images you want onto your computer. Visit Lesson 7 Level 5 for help if you need it.\\\r\n\n- Make sure\n you have the right to use these images.\\\r\n- Write down all of the attribution\n information that you need.\\\r\n- Upload all of the images into your project. Visit\n Lesson 8 Level 6\n if you've forgotten how.\\\r\n \\\r",
@@ -277,48 +277,48 @@
"CSD U3 Keyboard Input Challenge": "# Challenge\\\r\n\n_Check\nwith your teacher before trying this challenge._\\\r\n\\\r\nHere's the bug program\nyou've been working on for the past few levels. Choose one or more of following\nchallenges, or add new features of your own!\\\r\n\\\r\n\n- Use the \"space\" key\n to control another property of your bug sprite, such as rotation or scale.\\\r\n- \\*\n Add some randomization to your movement.\\\r\n- Add a second sprite and control\n it with a different set of keys (\"w\", \"a\", \"s\", and \"d\" are common\n choices).\\\r\n- Add some shapes to your background to make the scene more interesting.",
"CSD U3 Keyboard Input Challenge_2018": "# Challenge\\\r\n\n_Check\nwith your teacher before trying this challenge._\\\r\n\\\r\nHere's the bug program\nyou've been working on for the past few levels. Choose one or more of following\nchallenges, or add new features of your own!\\\r\n\\\r\n\n- Use the \"space\" key\n to control another property of your bug sprite, such as rotation or scale.\\\r\n- \\*\n Add some randomization to your movement.\\\r\n- Add a second sprite and control\n it with a different set of keys (\"w\", \"a\", \"s\", and \"d\" are common\n choices).\\\r\n- Add some shapes to your background to make the scene more interesting.",
"CSD U3 Keyboard Input Challenge_2018_2019": "# Challenge\\\r\n\n_Check\nwith your teacher before trying this challenge._\\\r\n\\\r\nHere's the bug program\nyou've been working on for the past few levels. Choose one or more of following\nchallenges, or add new features of your own!\\\r\n\\\r\n\n- Use the \"space\" key\n to control another property of your bug sprite, such as rotation or scale.\\\r\n- \\*\n Add some randomization to your movement.\\\r\n- Add a second sprite and control\n it with a different set of keys (\"w\", \"a\", \"s\", and \"d\" are common\n choices).\\\r\n- Add some shapes to your background to make the scene more interesting.",
- "CSD U3 L11 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L11 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L11 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L12 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L12 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L12 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L13 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L13 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L13 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L15 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L15 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L15 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L16 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L16 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L16 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L17 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L17 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L17 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L18 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L18 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L18 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L19 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L19 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L19 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L3 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L3 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L3 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L4 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L4 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L4 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L5 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L5 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L5 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L6 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L6 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L6 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L7 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L7 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L7 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L9 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L9 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
- "CSD U3 L9 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click ![]() to send your creation to a friend, or ![]() to send it to your Projects Gallery.",
+ "CSD U3 L11 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L11 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L11 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L12 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L12 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L12 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L13 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L13 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L13 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L15 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L15 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L15 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L16 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L16 Freeplay_2018": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L16 Freeplay_2019": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<\nPM.png>) to send your creation to a friend, or !\\[](\\<\nPM.png>) to send it to your Projects Gallery.",
+ "CSD U3 L17 Freeplay": "# Free Play\\\r\n\n\\\r\nUse what you've\nlearned to create whatever you like. When you're finished, you can click !\\[](\\<