not really known
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

501 lines
34 KiB

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
  6. </head>
  7. <body>
  8. <div class="container">
  9. <div id="content">
  10. <h1>Guía de Programación con Turtle Art</h1>
  11. <p>Turtle Blocks expande a lo que los niños pueden hacer con el logotipo
  12. y la forma en que se puede utilizar como el motivador subyacente para
  13. "mejorar" los lenguajes de programación y dispositivos programables.</p>
  14. <p>En esta guía, ilustramos este punto no solo llevando al lector a
  15. través de numerosos ejemplos, sino también discutiendo algunas de
  16. nuestras exploraciones favoritas de los Turtle Blocks, incluyendo
  17. multimedia, Internet (tanto como un foro para la colaboración y la
  18. recopilación de datos), y una amplia colección de sensores.</p>
  19. <h2>Empezando</h2>
  20. <p>Los Bloques Tortuga Javascript están diseñado para funcionar en un
  21. navegador. La mayor parte del desarrollo se ha hecho en Chrome, pero
  22. también debería funcionar en Firefox. Se puede ejecutar directamente
  23. desde index.html, desde un <a href="http://turtle.sugarlabs.org">servidor mantenido por Sugar
  24. Labs</a>, desde <a href="http://rawgit.com/walterbender/turtleblocksjs/master/index.html">el repositorio
  25. GitHub</a>,
  26. o mediante la creación de <a href="https://github.com/walterbender/turtleblocksjs/blob/master/server.md">un servidor
  27. local</a>.</p>
  28. <p>Una vez que lo ha puesto en marcha en su navegador, comience haciendo
  29. clic en (o arrastrando) bloques de la paleta de la tortuga. Utilice
  30. múltiples bloques para crear dibujos; mientras la tortuga se mueve
  31. bajo su control se dibujan líneas de colores.</p>
  32. <p>Puede añadir bloques a su programa haciendo clic en ellos o
  33. arrastrándolos desde la paleta a la zona principal. Puede eliminar un
  34. bloque arrastrándolo de nuevo a la paleta. Haga clic en cualquier
  35. lugar de una "pila" de bloques para iniciar la ejecución de esa pila o
  36. haciendo clic en el conejo (rápida) o la tortuga (lenta) en la barra
  37. de herramientas principal. Para más detalles sobre cómo utilizar
  38. Bloques Tortuga Javascript, consulte Uso de Bloques Tortuga Javascript
  39. para más detalles.</p>
  40. <h2>ACERCA DE ESTA GUÍA</h2>
  41. <p>Muchos de los ejemplos que se dan en la guía tienen enlaces a código
  42. que puede ejecutar. Busque enlaces EJECUTAR EN VIVO que le lleven a
  43. http://turtle.sugarlabs.org.</p>
  44. <h2>LA CUADRATURA</h2>
  45. <p>La introducción tradicional del logotipo ha sido dibujar
  46. un cuadrado. Muchas veces cuando se ejecuta un taller, hago que los
  47. estudiantes formen un círculo alrededor de un voluntario, la
  48. "tortuga", y los invito a instruir a la tortuga a dibujar un
  49. cuadrado. (Entreno al voluntario de antemano para tomar cada comando,
  50. literalmente, al igual que nuestra tortuga gráfica.) Eventualmente el
  51. grupo converge en "seguir adelante algún número de pasos", "gire a la
  52. derecha (o izquierda) 90 grados", "siga adelante cierto número de
  53. pasos "," gire a la derecha (o izquierda) 90 grados "," ir hacia
  54. adelante un número de pasos"," gire a la derecha (o izquierda) 90
  55. grados "," ir hacia adelante un número de pasos ". Sólo en raras
  56. ocasiones el grupo incluye una final "Gire a la derecha (o izquierda)
  57. 90 grados" para volver a la tortuga a su orientación original. En este
  58. punto introduzco el concepto de "repetición" y luego empezamos con la
  59. programación con Turtle Blocks.</p>
  60. <h2>1. Conceptos Básicos de la tortuga</h2>
  61. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics1.svg'</img></p>
  62. <p>Una sola línea de longitud 100</p>
  63. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics2.svg'</img></p>
  64. <p>Cambio de la longitud de la línea a 200</p>
  65. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics3.svg'</img></p>
  66. <p>Adición de un giro a la derecha de 90 grados. La ejecución de esta
  67. pila cuatro veces produce un cuadrado.</p>
  68. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics4.svg'</img></p>
  69. <p>Adelante, derecha, adelante, derecha, ...</p>
  70. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics5.svg'</img></p>
  71. <p>Utilizando el bloque de repetición de la paleta de flujo</p>
  72. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics6.svg'</img></p>
  73. <p>Usando el bloque de Arco para hacer esquinas redondeadas</p>
  74. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics7.svg'</img></p>
  75. <p>Utilizando comenzar relleno y terminan Relleno de la paleta de la
  76. pluma para hacer un cuadrado sólido</p>
  77. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics8.svg'</img></p>
  78. <p>Cambiar el color a 70 (azul) con el bloque Set color de la paleta de
  79. la pluma</p>
  80. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/basics9.svg'</img></p>
  81. <p>Uso del bloque aleatorio de la paleta de números para seleccionar un
  82. color al azar (0 a 100)</p>
  83. <h2>UNA CAJA DE ZAPATOS</h2>
  84. <p>Al explicar las cajas en los talleres, a menudo utilizo una caja de
  85. zapatos. Pongo a alguien a escribir un número en un pedazo de papel y
  86. lo coloco en la caja de zapatos. Entonces pregunto repetidamente:
  87. "¿Cuál es el número en el caja?" Una vez que está claro que podemos
  88. hacer referencia al número de la caja de zapatos, pongo a alguien a
  89. escribir un número diferente en la caja de zapatos. Una vez más
  90. pregunto: "¿Cuál es el número en el cuadro?" El poder de la caja es
  91. que se puede hacer referencia a ella varias veces desde varios lugares
  92. en su programa.</p>
  93. <h2>2. Cajas</h2>
  94. <p>Boxes (Cajas) les permiten almacenar un objeto, por ejemplo, un número
  95. y, a continuación se refieren al objeto utilizando el nombre de la
  96. caja. (Cada vez que se nombra a un cuadro, se crea un nuevo bloque en
  97. la paleta de cajas que le permite acceder al contenido de la caja.)
  98. Esto se utiliza de una manera trivial en el primer ejemplo de abajo:
  99. poner 100 en el cuadro a continuación, haciendo referencia al cuadro
  100. desde el bloque hacia adelante. En el segundo ejemplo, aumentamos el
  101. valor del número guardado en la caja para que cada vez que el cuadro
  102. se haga referencia por el bloque de Avanzar, el valor sea más grande.</p>
  103. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/boxes1.svg'</img></p>
  104. <p>Poner un valor en una caja y luego hacer referencia al valor en la caja</p>
  105. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/boxes2.svg'</img></p>
  106. <p>Podemos cambiar el valor de la caja mientras el programa se
  107. ejecuta. Aquí le sumamos 10 al valor en la caja con cada iteración. El
  108. resultado en este caso es una espiral, ya que la tortuga avanza aún
  109. más con cada paso.</p>
  110. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/boxes3.svg'</img></p>
  111. <p>Si queremos hacer un cambio más complejo, podemos almacenar en la caja
  112. un valor calculado basado en el contenido actual de la caja. Aquí
  113. multiplicamos el contenido de la caja por 1,2 y guardamos el resultado
  114. en el cuadro. El resultado en este caso es también una espiral, pero
  115. que crece geométricamente en lugar de aritméticamente.</p>
  116. <p>En la práctica, el uso de cajas no es distinto a la utilización de
  117. pares de palabra clave y valores en lenguajes de programación basados
  118. en texto. La palabra clave es el nombre de la caja y el valor asociado
  119. con la palabra clave es el valor almacenado en la caja. Usted puede
  120. tener tantas casillas como desee (hasta que se quede sin memoria) y
  121. tratar las cajas como si fueran un diccionario. Tenga en cuenta que
  122. las cajas son globales, es decir, todas las tortugas y todas las pilas
  123. de acción comparten la misma colección de cajas.</p>
  124. <h2>3. Acción Pilas</h2>
  125. <p>Con los bloques tortuga hay una oportunidad para que el alumno se
  126. expanda en el lenguaje, tomando la conversación en direcciones no
  127. previstas por los desarrolladores de los bloques tortuga.</p>
  128. <p>Las pilas de acción le permiten ampliar el lenguaje Bloques tortuga
  129. mediante la definición de nuevos bloques. Por ejemplo, si dibuja un
  130. montón de plazas, es posible que desee un bloque para dibujar
  131. cuadrados. En los siguientes ejemplos, se define una acción que dibuja
  132. un cuadrado (repetimos 4 hacia adelante 100 derecha 90), que a su vez
  133. da lugar a un nuevo bloque en la paleta Acciones que podemos utilizar
  134. cuando queremos dibujar un cuadrado. Cada nueva acción de pila resulta
  135. en un nuevo bloque.</p>
  136. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/actions1.svg'</img></p>
  137. <p>Definición de una acción para crear un nuevo bloque, "cuadrado"</p>
  138. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/actions2.svg'</img></p>
  139. <p>Uso del bloque "cuadrado"</p>
  140. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/actions3.svg'</img></p>
  141. <p>El bloque Do le permite especificar una acción por su nombre. En este
  142. ejemplo, elegimos "uno de los" dos nombres, "cuadrado" y "triángulo"
  143. para determinar qué acción tomar.</p>
  144. <h2>4. Parámetros</h2>
  145. <p>Los bloques de parámetros tienen un valor que representa el estado de
  146. algún atributo de tortuga, por ejemplo, la posición x o la y de la
  147. tortuga, el rubro de la tortuga, el color de la pluma, el tamaño de la
  148. pluma, etc. Usted puede utilizar el parámetro de bloques de manera
  149. intercambiable con bloques de números. Usted puede cambiar sus valores
  150. con el Agregar bloque o con los bloques correspondientes.</p>
  151. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/parameters1.svg'</img></p>
  152. <p>Usando el parámetro de encabezado, que cambia cada vez que la tortuga
  153. cambia de dirección, para cambiar el color de una espiral</p>
  154. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/parameters2.svg'</img></p>
  155. <p>"Squiral" por Brian Silverman utiliza los bloques de parámetros
  156. encabezado y X. <a href="https://turtle.sugarlabs.org/?file=Card-36.tb&amp;run=True">EJECUTAR EN
  157. VIVO</a></p>
  158. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/parameters3.svg'</img></p>
  159. <p>A menudo sólo quiere incrementar un parámetro en 1. Para ello, utilice
  160. Añardir-1-a bloque.</p>
  161. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/parameters4.svg'</img></p>
  162. <p>Para incrementar (o disminuir) un parámetro por un valor arbitrario,
  163. utilice Añardir-1-a bloque.</p>
  164. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/parameters5.svg'</img></p>
  165. <p>Para realizar otros cambios a un parámetro basado en el valor actual,
  166. utilice el parámetro establecer bloque. En este ejemplo, el tamaño de
  167. la pluma se duplica con cada paso en la iteración.</p>
  168. <h2>5. Condicionales</h2>
  169. <p>Los condicionales son una herramienta poderosa en la
  170. informática. Dejan que su programa se comporte de manera diferente
  171. bajo diferentes circunstancias. La idea básica es que si una condición
  172. es verdadera, a continuación, se tome algún tipo de acción. Las
  173. variantes incluyen if-then-else (si-entonces-sino), while (mientras
  174. que), until (hasta que), y forever (para siempre). Los Bloques de
  175. tortuga proporcionan construcciones lógicas tales como equal (igual),
  176. greater than (mayor que), less tan (menos que), and (y), or (o), y not
  177. (no).</p>
  178. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/conditionals1.svg'</img></p>
  179. <p>Usando un condicional para seleccionar un color. Una vez que el título</p>
  180. <blockquote>
  181. <p>179, el color cambia. <a href="http://turtle.sugarlabs.org/?file=Conditionals-1.tb&amp;run=true">CORRER EN
  182. VIVO</a></p>
  183. </blockquote>
  184. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/conditionals2.svg'</img></p>
  185. <p>Las condicionales junto con el bloque aleatorio pueden ser utilizadas
  186. para simular un lanzamiento de moneda.</p>
  187. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/conditionals3.svg'</img></p>
  188. <p>Un lanzamiento de moneda es una operación tan común que hemos añadido
  189. el bloque Uno-de para su conveniencia.</p>
  190. <h2>6. Multimedia</h2>
  191. <p>Los Bloques tortuga proporcionan herramientas de medios enriquecidos
  192. que permiten la incorporación de sonido, tipografía, imágenes y video.</p>
  193. <p>En el corazón de las extensiones multimedia esta mostrar bloque. Se
  194. puede utilizar para mostrar texto, datos de imagen de la web o el
  195. sistema de archivos local, o una cámara web. Otras extensiones
  196. incluyen bloques para voz sintética, generación de tonos, y la
  197. reproducción de vídeo.</p>
  198. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/media1.svg'</img></p>
  199. <p>Utilizando Mostrar bloque para mostrar texto; la orientación del texto
  200. coincide con la orientación de la tortuga. <a href="https://turtle.sugarlabs.org/?file=Media-1.tb&amp;run=True">CORRER EN
  201. VIVO</a></p>
  202. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/media2.svg'</img></p>
  203. <p>También puede utilizar Mostrar bloque para mostrar imágenes. Al hacer
  204. clic en el bloque de imagen (izquierda) se abrirá un explorador de
  205. archivos. Después de seleccionar un archivo de imagen (PNG, JPG, SVG,
  206. etc.) en una miniatura aparecerá en el bloque de imagen (derecha).</p>
  207. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/media3.svg'</img></p>
  208. <p>Mostrar bloque en combinación con el bloque de la cámara capturará y
  209. mostrara una imagen de una cámara web.</p>
  210. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/media4.svg'</img></p>
  211. <p>Mostrar bloque puede también ser usado en conjunción con un URL que
  212. apunte a archivos de media.</p>
  213. <h2>7. Sensores</h2>
  214. <p>La idea de Seymour Papert del aprendizaje a través de hacer está bien
  215. apoyado en los Bloques de tortuga. Según Papert, "el aprendizaje
  216. ocurre especialmente felizmente en un contexto donde el alumno
  217. participa conscientemente en la construcción de una entidad pública,
  218. así se trate de un castillo de arena en la playa o una teoría del
  219. universo". La investigación y el desarrollo que apoya y demuestra los
  220. beneficios del aprendizaje de los niños en su interacción con el mundo
  221. físico siguen creciendo. En forma similar, los niños pueden
  222. comunicarse con el mundo físico usando una variedad de sensores en los
  223. bloques de la tortuga. Bloques de sensores incluyen la entrada de
  224. teclado, el sonido, el tiempo, la cámara, la ubicación del ratón, el
  225. color que la tortuga ve. Por ejemplo, los niños pueden querer
  226. construir una alarma antirrobo y guardar fotos del ladrón en un
  227. archivo. Bloques de tortuga también hacen posible guardar y restaurar
  228. los datos del sensor de un archivo. Los niños pueden usar un bloque
  229. "URL" para importar datos desde una página web.</p>
  230. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/sensors1.svg'</img></p>
  231. <p>El uso de sensores. El bloque de Loudness (sonoridad) se utiliza para
  232. determinar si hay un intruso. Un sonido fuerte desencadena la acción
  233. de alarma: la tortuga grita "intruso" y toma una foto del intruso.</p>
  234. <p>Maestros de la comunidad de azúcar han desarrollado una amplia
  235. colección de ejemplos que utilizan sensores Tortuga, Guzmán Trinidad,
  236. un profesor de física de Uruguay, escribió un libro, Física de la XO,
  237. que incluye una amplia variedad de sensores y experimentos. Tony
  238. Forster, un ingeniero de Australia, también ha hecho contribuciones
  239. notables a la comunidad por medio de ejemplos que documentan el uso de
  240. bloques de tortuga. En un ejemplo, Tony utiliza la serie de
  241. interruptores para medir la aceleración gravitacional; una bola
  242. rodando por una rampa activa los interruptores en
  243. secuencia.</p>
  244. <p>Examinando el tiempo entre los eventos de activación se puede
  245. determinar la constante de gravitación. Uno de los retos típicos de
  246. la utilización de sensores es la calibración. Esto también es cierto
  247. en los Bloques de la tortuga. El ciclo de vida típico del proyecto
  248. incluye: (1) Los valores de lectura; (2) trazar los valores a medida
  249. que cambian con el tiempo; (3) la búsqueda de los valores mínimo y
  250. máximo; y, finalmente, (4) la incorporación del bloque del sensor en
  251. un programa de tortuga.</p>
  252. <h2>Ejemplo: Pintura</h2>
  253. <p>Como se describe en la
  254. sección de Sensores, Bloques tortuga le permite al programador /
  255. artista incorporar sensores en su trabajo. Entre los sensores
  256. disponibles están el botón del ratón y la posición x e y del
  257. ratón. Estos pueden ser usados ​​para crear un programa de pintura
  258. simple, como se ilustra a continuación. Escribir su propio programa de
  259. dibujo es empoderante: desmitifica una herramienta de uso común. Al
  260. mismo tiempo, se coloca el peso de la responsabilidad en el
  261. programador: una vez que lo escribimos, pertenece a nosotros, y
  262. nosotros somos responsables de hacerlo cool. Algunas variaciones de
  263. pintura también se muestran a continuación, incluyendo el uso de los
  264. niveles de micrófono para variar el tamaño de la pluma a medida que
  265. cambian los niveles sonoros ambientales. Una vez que los estudiantes
  266. se dan cuenta de que pueden realizar cambios en el comportamiento de
  267. su programa de dibujo, se vuelven profundamente comprometidos. ¿Cómo
  268. va a modificar la pintura?</p>
  269. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/paint1.svg'</img></p>
  270. <p>En su forma más simple, la pintura es sólo cuestión de mover la
  271. tortuga para donde el ratón se posicione.</p>
  272. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/paint2.svg'</img></p>
  273. <p>Añadir una prueba para el botón del ratón nos permite mover a la
  274. tortuga sin dejar un rastro de tinta.</p>
  275. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/paint3.svg'</img></p>
  276. <p>En este ejemplo, cambiamos el tamaño de la pluma sobre la base del
  277. volumen de entrada de micrófono.</p>
  278. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/paint4.svg'</img></p>
  279. <p>En otro ejemplo, inspirado por un estudiante en un taller en Colombia, usamos el tiempo para
  280. cambiar tanto el color de la pluma y el tamaño de la pluma
  281. <a href="http://turtle.sugarlabs.org/?file=Paint-4.tb&amp;run=true">CORRER EN VIVO</a></p>
  282. <h2>Ejemplo diapositivas</h2>
  283. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/slideshow1.svg'</img></p>
  284. <p>¿Por qué utilizar Powerpoint cuando puede escribir Powerpoint? En este
  285. ejemplo, una pila de Acción se utiliza para detectar la entrada de
  286. teclado: si el valor de teclado es cero, entonces ninguna tecla ha
  287. sido presionada, por lo que llama a la acción otra vez. Si se pulsa
  288. una tecla, el valor teclado es mayor que cero, por lo que regresó de
  289. la acción y muestra la siguiente imagen.</p>
  290. <h2>Ejemplo entrada de teclado</h2>
  291. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/keyboard.svg'</img></p>
  292. <p>Para grabar los códigos de botones del teclado, es necesario utilizar un
  293. *Mientras* bloque. En el ejemplo anterior, almacenamos el valor de
  294. teclado en una caja, probarlo, y si es > 0, retorno el valor.</p>
  295. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/keyboard2.svg'</img></p>
  296. <h2>8. Tortugas, Sprites, botones, y eventos</h2>
  297. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/turtles1.svg'</img></p>
  298. <p>Se crea una tortuga separada para cada bloque de inicio. Las tortugas
  299. siguen su código en paralelo entre sí cada vez que se hace clic en el
  300. botón Ejecutar. Cada tortuga mantiene su propio conjunto de parámetros
  301. de posición, color, tamaño de la pluma, el estado de la pluma, etc. En
  302. este ejemplo, tres tortugas diferentes dibujan tres formas diferentes.</p>
  303. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/turtles2.svg'</img></p>
  304. <p>Se pueden aplicar gráficos personalizados a las tortugas, con el
  305. bloque de Shell en la paleta de Medios. De este modo se puede tratar
  306. las tortugas como sprites que se pueden mover por la pantalla. En este
  307. ejemplo, el sprite cambia entre dos estados, mientras que se mueve por
  308. la pantalla.</p>
  309. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/turtles3.svg'</img></p>
  310. <p>Las tortugas pueden ser programadas para responder a un evento
  311. "click", para que puedan ser utilizadas como botones. En este ejemplo,
  312. cada vez que la tortuga se hace clic, se ejecuta la acción, que se
  313. mueven a la tortuga a una ubicación aleatoria en la pantalla.</p>
  314. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/turtles4.svg'</img></p>
  315. <p>También puede ser transmitidos Eventos. En este ejemplo, otra variante
  316. en la pintura, los "botones" de tortuga, que escuchan acontecimientos
  317. de "click", se utilizan para transmitir los eventos de cambio de
  318. color. La tortuga usada como el pincel está escuchando estos eventos.</p>
  319. <h2>9. Acciones avanzadas</h2>
  320. <p>En algún momento usted puede ser que desee una acción que no sólo
  321. ejecute una pila de bloques, sino también que regrese un valor. Este
  322. es el papel del bloque de retorno. Si pones un bloque de retorno en
  323. una pila, entonces la pila acción se vuelve una pila de calcular.</p>
  324. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/actions4.svg'</img></p>
  325. <p>En este ejemplo, una pila calcular se utiliza para devolver la
  326. distancia actual de la tortuga desde el centro de la pantalla. Cambiar
  327. el nombre de una pila de acción que tiene un bloque de retorno hará
  328. que la creación de un nuevo bloque en la paleta de acciones que se
  329. pueden utilizar para hacer referencia al valor de retorno. En este
  330. caso, se crea un bloque de distancia</p>
  331. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/actions6.svg'</img></p>
  332. <p>También puede pasar argumentos a una pila de acción. En este ejemplo,
  333. se calcula la distancia entre la tortuga y un punto arbitrario en la
  334. pantalla al pasar coordenadas x e y en el bloque de calcular. Usted
  335. puede agregar argumentos adicionales arrastrándolos a la "pinza".</p>
  336. <p>Tenga en cuenta que args son locales a las pilas de acción, pero las
  337. cajas no lo son. Si usted planea usar una acción en una función
  338. recursiva, mejor evite las cajas</p>
  339. <h2>Ejemplo: Fibonacci</h2>
  340. <p>Cálculo de la secuencia de Fibonacci se hace a menudo utilizando un
  341. método recursivo. En el siguiente ejemplo, se pasa un argumento para
  342. la acción Fib, que devuelve un valor si el argumento es &lt;2; de lo
  343. contrario, devuelve la suma del resultado de llamar a la acción con el
  344. argumento Fib - 1 y el argumento - 2.</p>
  345. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/fibonacci1.svg'</img></p>
  346. <p>Cálculo de Fibonacci <a href="http://turtle.sugarlabs.org/?file=Fibonacci-1.tb&amp;run=true">CORRER EN VIVO</a></p>
  347. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/fibonacci2.svg'</img></p>
  348. <p>En el segundo ejemplo, se utiliza un bucle de repetición para generar
  349. los seis primeros números de Fibonacci y los utilizamos para dibujar
  350. un nautilus.</p>
  351. <p>Dibuja una nautilus <a href="http://turtle.sugarlabs.org/?file=nautilus.tb&amp;run=true">CORRER EN VIVO</a></p>
  352. <h2>Ejemplo: Pintura de Reflexión</h2>
  353. <p>Al combinar múltiples tortugas y pasar argumentos a las acciones,
  354. podemos tener un poco más de diversión con la pintura. En el siguiente
  355. ejemplo, la acción de pintura utiliza arg 1 y arg 2 para reflejar las
  356. coordenadas del ratón sobre los ejes Y y X. El resultado es que la
  357. pintura se refleja en los cuatro cuadrantes.</p>
  358. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/turtles5.svg'</img></p>
  359. <p>Pintura de Reflexión <a href="http://turtle.sugarlabs.org/?file=Reflection-Paint.tb&amp;run=true">CORRER EN VIVO</a></p>
  360. <h2>10. Cajas Avanzadas</h2>
  361. <p>A veces es más conveniente calcular el nombre de una caja que
  362. especificarlo explícitamente. (Tenga en cuenta que el bloque Do
  363. (hacer) usa un mecanismo similar para el cálculo de los nombres de las
  364. acciones).</p>
  365. <p>En los siguientes ejemplos, usamos esto para acumular los resultados
  366. de lanzar un par de dados 100 veces (ejemplo inspirado por Tony
  367. Forster).</p>
  368. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/boxes4.svg'</img></p>
  369. <p>En lugar de especificar una caja para cada resultado posible (2 a 12),
  370. se utiliza una caja como un contador (índice) y se crea una caja con
  371. el nombre del valor actual en el contador y se almacena en esa caja un
  372. valor de 0.</p>
  373. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/boxes5.svg'</img></p>
  374. <p>A continuación añadimos una acción para tirar los dados 100 veces. Para simular lanzar un par
  375. de dados, sumamos dos números aleatorios entre 1 y 6. Utilizamos el resultado como el nombre
  376. de la caja queremos incrementar. Así por ejemplo, si tiramos un 7, añadimos uno a la caja de
  377. llamada 7. De esta manera incrementamos el valor en la casilla correspondiente.</p>
  378. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/boxes6.svg'</img></p>
  379. <p>Por último, trazamos los resultados. Una vez más, se utiliza una caja
  380. como un contador (índice) y llamamos la acción trama en un bucle. En
  381. la barra de acción, dibujamos un rectángulo con valor de longitud
  382. almacenado en la caja con el nombre del valor actual del índice. Por
  383. ejemplo, cuando el valor en la caja de índice es 2, la tortuga avanza
  384. según el valor en la casilla 2, que es el número acumulado de veces
  385. que los lanzamientos de dados resultaron en un 2; cuando el valor en
  386. la caja índice es 3, la tortuga avanza por el valor en la casilla 3,
  387. que es el número acumulado de veces que los lanzamientos de dados
  388. resultaron en un 3; etc.</p>
  389. <h2>11. La Pila</h2>
  390. <p>A veces se necesita un lugar para almacenar temporalmente los
  391. datos. Una forma de hacerlo es con cajas (como se menciona al final de
  392. la sección Cajas de esta guía, que se puede utilizar como un
  393. diccionario o pares palabra clave de valor individual). Sin embargo, a
  394. veces es agradable usar simplemente una pila.</p>
  395. <p>Lo primero que se pone en la pila está en la parte inferior. La última
  396. cosa que pone en la pila está en la parte superior. Usted pone las
  397. cosas en la pila usando el bloque de empuje. Usted toma las cosas
  398. fuera de la pila utilizando el bloque pop. En los bloques de tortuga,
  399. la pila es primera entrada - última salida (FILO), por lo que saca las
  400. cosas fuera de la pila en el orden inverso en el que entran al montón.</p>
  401. <p>También hay un bloque de índice que le permite referirse a un elemento
  402. de la pila por un índice. En esencia, esto le permite tratar la pila
  403. como una matriz. Algunos otros bloques útiles incluyen un bloque de
  404. vaciar la pila, un bloque que devuelve la longitud de la pila, un
  405. bloque que salva la pila en un archivo, y un bloque que carga la pila
  406. de un archivo.</p>
  407. <p>En los ejemplos siguientes se utiliza la pila para guardar un dibujo
  408. hecho con un programa de dibujo similar a los ejemplos anteriores y
  409. luego reproducir el dibujo haciendo estallar puntos fuera de la pila.</p>
  410. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/heap1.svg'</img></p>
  411. <p>En el primer ejemplo, simplemente movemos la posición de tortuga cada
  412. vez que dibujamos, junto con el estado de la pluma. Note que salen en
  413. el orden inverso al que empujamos, empujamos y, luego x, del estado
  414. del ratón.</p>
  415. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/heap2.svg'</img></p>
  416. <p>En el segundo ejemplo, sacamos el estado pluma, X, y Y fuera de la
  417. pila y reproducimos nuestro dibujo.</p>
  418. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/heap3.svg'</img></p>
  419. <p>Utilice la opción Guardar Pila de bloques para guardar el estado de la
  420. pila en un archivo. En este ejemplo, guardamos nuestro dibujo en un
  421. archivo para su posterior reproducción.</p>
  422. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/heap4.svg'</img></p>
  423. <p>Utilice el bloque Cargar Pila para cargar la pila de datos guardados
  424. en un archivo. En este ejemplo, la reproducción del dibujo a partir de
  425. datos almacenados en un archivo.</p>
  426. <h2>12. Extras</h2>
  427. <p>La Paleta de Extras está llena de utilidades que le ayudan a utilizar
  428. la salida de su proyecto de diferentes maneras.</p>
  429. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/extras1.svg'</img></p>
  430. <p>El bloque Guardar como SVG guardará su dibujo como gráficos
  431. vectoriales simples (SVG), un formato compatible con HTML5 y muchos
  432. programas de manipulación de imágenes, por ejemplo, Inkscape. En el
  433. ejemplo anterior, lo usamos para guardar un diseño en una forma que se
  434. puede convertir en STL, un formato de archivo común utilizado por las
  435. impresoras 3D. Algunas cosas para tomar not: (1) el bloque de sin
  436. fondo se utiliza para suprimir la inclusión del relleno de fondo en la
  437. salida SVG; (2) las líneas huecas se usan para hacer que el gráfico
  438. tenga dimensión; y (3) la opción Guardar como bloque SVG escribe en el
  439. directorio de Descargas en su ordenador. (Josh Burker me introdujo a
  440. Tinkercad, un sitio web que se puede utilizar para convertir de SVG a
  441. STL.)</p>
  442. <h2>13. Ayudas de Depuración</h2>
  443. <p>Probablemente la ayuda de depuración más utilizada tantas en cualquier
  444. idioma es la sentencia print. En los bloques de la tortuga, también es
  445. muy útil. Se puede utilizar para examinar el valor de los parámetros y
  446. variables (cajas) y para monitorear el progreso a través de un
  447. programa.</p>
  448. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/debugging1.svg'</img></p>
  449. <p>En este ejemplo, se utiliza el operador de adición para concatenar
  450. cuerdas en una sentencia de impresión. El ratón x + "," + ratón y, se
  451. imprimen en el bucle interno.</p>
  452. <p>Bloques de parámetros, cajas, aritméticos y operadores booleanos, y
  453. muchos bloques de sensor imprimirán su valor actual mientras el
  454. programa se ejecuta cuando se ejecuta en "lento" o "paso- a paso "el
  455. modo, obviando la necesidad de utilizar el bloque de impresión en
  456. muchas situaciones.</p>
  457. <p>El bloque de Espera hará una pausa en la ejecución del programa
  458. durante un número (o fracciones) de segundo.</p>
  459. <p>Los bloques ocultar y mostrar pueden ser utilizados para establecer
  460. "puntos de quiebre". Cuando se encuentra un bloque oculto (Hide), los
  461. bloques están ocultos y el programa pasa a toda velocidad. Cuando se
  462. encuentra un bloque Mostrar, se muestran los valores de los bloques y
  463. el programa avanza a un ritmo más lento.</p>
  464. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/debugging2.svg'</img></p>
  465. <p>Un bloque demostración se utiliza para reducir la velocidad de
  466. ejecución del código en una pila de Acción con el fin de facilitar la
  467. depuración. En este caso, vamos más despacio durante la reproducción
  468. con el fin de ver los valores estallar fuera de la pila.</p>
  469. <h2>14. Color avanzado</h2>
  470. <p>La representación interna del color en los bloques de la tortuga se
  471. basa en el sistema de color de Munsell. Es un sistema de tres
  472. dimensiones: (1) tono (rojo, amarillo, verde, azul, púrpura), (2)
  473. valor (negro a blanco), y (3) croma (gris a vívido)</p>
  474. <p>Hay parámetros para cada dimensión de color y "set"
  475. correspondientes. Todas las tres dimensiones se han normalizado para
  476. ejecutar desde 0 a 100. Para Matiz (Hue), 0 traza a Munsell 0R. Para
  477. el Valor, 0 traza Munsell valor 0 (negro) y 100 traza a Munsell valor
  478. 10 (blanco). Para croma, 0 traza a Munsell croma 0 (gris) y 100 traza
  479. a Munsell croma 26 (color espectral).</p>
  480. <p>Una nota sobre En el sistema Munsell, el croma máximo de cada
  481. tonalidad varía con valor. Para simplificar el modelo, si el croma
  482. especificado es mayor que el croma máximo disponible para un par tono
  483. / valor, se utiliza el croma máximo disponible.</p>
  484. <p>El bloque Establecer Color traza las tres dimensiones del espacio de
  485. color Munsell en una sola dimensión. Siempre devuelve el par máximo
  486. valor / croma de un color determinado, lo que garantiza colores
  487. vivos. Si quiere colores más sutiles, asegúrese de usar el bloque
  488. establecer Matiz en lugar del bloque Conjunto de color.</p>
  489. <p><img src='https://rawgithub.com/walterbender/turtleblocksjs/master/guide-es/color1.svg'</img></p>
  490. <p>Color vs. Ejemplo de tonalidad <a href="https://turtle.sugarlabs.org/?file=Color-vs-Hue.tb&amp;run=true">CORRER EN VIVO</a></p>
  491. <p>Para establecer el color de fondo, utilice el bloque de fondo. Fijará
  492. los antecedentes del triplete del actual tono / valor / croma.</p>
  493. <h2>15. Plugins</h2>
  494. <p>Hay un número cada vez mayor de las ampliaciones de los bloques de
  495. tortuga en la forma de plugins. Vea
  496. <a href="http://github.com/walterbender/turtleblocksjs/tree/master/plugins">Plugins</a>
  497. para más detalles.</p>
  498. </div>
  499. </div>
  500. </body>
  501. </html>