Foro especializado en Warcraft III y su editor
 
BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarseGrupos de Usuarios
Eventos Actuales
¡ Bienvenido Invitado !

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte
 

 Curso de Acciones Importantes II: Bucle "For Loop"

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3236
Reputación Reputación : 565
Monedas de oro : 10085
Monedas de Platino : 0 Curso de Acciones Importantes II: Bucle "For Loop" Empty

Inventario :
Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10
Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10

Curso de Acciones Importantes II: Bucle "For Loop" Empty
Mensaje(#) Tema: Curso de Acciones Importantes II: Bucle "For Loop" Curso de Acciones Importantes II: Bucle "For Loop" Clock10Lun Sep 03, 2018 1:53 pm

Bienvenidos Novatos

Aquí el Profesor Marcos_M y hoy aprenderemos los secretos del Bucle "For Loop" que nos permite repetir acciones en nuestro detonador, este curso es necesario para entrar al Curso de Detonadores I

Se aconseja revisar antes el Curso de Acciones Importantes I: El If/Then/Else para entender este tutorial al 100%
IMPORTANTE! Debes tener conocimientos básicos de inglés para poder entender este tutorial en su totalidad

Procedamos con el índice para dar comienzo al tutorial

Indice:
1. ¿Qué es un bucle?
  a. ¿Qué es un For Loop en World Editor?
2. ¿Para qué sirve un For Loop?
3. ¿Cómo usar un For Loop?
4. Usos del For Loop

Curso de Acciones Importantes II: Bucle "For Loop" 623713d2ee

¿Qué es un bucle?
Diccionario: m. Rizo de cabello en forma helicoidal.
Informática: Conjunto de instrucciones cuya ejecución se repite hasta que una determinada condición de salida se vea satisfecha.
En inglés esto se traduce a "loop" y en GUI lo conoceremos como "For Loop"
En programación un "Bucle For" es un bucle que se repetirá desde el número X hasta el número Y, por ejemplo
un bucle desde 1 hasta 10 donde le indiquemos que nos diga "Hola" nos resultará en esta lista de mensajes:
"Hola" - en este caso el número es 1
"Hola" - en este caso el número es 2
"Hola" - en este caso el número es 3
"Hola" - en este caso el número es 4
"Hola" - en este caso el número es 5
"Hola" - en este caso el número es 6
"Hola" - en este caso el número es 7
"Hola" - en este caso el número es 8
"Hola" - en este caso el número es 9
"Hola" - en este caso el número es 10
Este "número" lo conoceremos como "índice"

a. ¿Qué es un For Loop en World Editor?

En GUI existen 3 acciones para bucles For, es importante notar que en GUI solo se permite hacer bucles desde un número menor hasta uno mayor, y nunca al revés
Estas acciones "For Loop" nos permite correr una serie de acciones tantas veces como lo indiquemos, en la lista de acciones estas 3 acciones son de las primeras que aparecen. En la lista de acciones se llaman: For Each Integer A, Do multiple actions, For Each Integer B, Do multiple actions y For Each Integer Variable, Do multiple actions

Curso de Acciones Importantes II: Bucle "For Loop" E3e49bd8df
En este tutorial sólo usaremos las versiones de "Multiple actions" porque son mejores para leerse y para editar ya que limitarse a una acción es estúpido y difícil de leer.

Curso de Acciones Importantes II: Bucle "For Loop" 623713d2ee

¿Para qué sirve un For Loop?

Sirve para repetir acciones sin tener que escribirlas de nuevo. La acción cuenta con una pestaña "Bucle: Acciones" donde colocas las acciones que se repetirán. Todos los For Loop toman un número inicial y un número final, donde el número inicial debe ser más pequeño que el número final o se genera un "bucle infinito".
Una de las situaciones más comunes a la hora de programar es que queremos hacer una acción muchas veces con mínima diferencia, por ejemplo, la misma acción pero para distintos Jugadores, para estas situaciones For Loop suele ser la mejor solución.
Ejemplos de usos de For Loops:
-Hacer algo universal para cada jugador, como darle oro a cada jugador
-Dibujar imágenes geométricas con efectos.
-Un método de creación de hechizos requiere usar la acción For Each Integer Variable, Do multiple actions en su detonador periódico para funcionar
-Muchas cosas, si quieres aprender a programar, lo tercero que te enseñarán es exactamente esto

Curso de Acciones Importantes II: Bucle "For Loop" 623713d2ee

¿Cómo usar un For Loop?
Es muy sencillo, pero vamos a ver detalladamente para que nadie se pierda.

Curso de Acciones Importantes II: Bucle "For Loop" E3e49bd8df

Con eso, tenemos nuestro For Loop en nuestro detonador así

[gui]Ejemplo
   Acontecimientos
   Condiciones
   Acciones
       For each (Integer A) from 1 to 10, do (Actions)
           Bucle: Acciones
[/gui]

Verán que dice "(Integer A)", el Warcraft viene con una función integrada para poder saber el índice actual en el bucle, está en la lista de "Número entero", ya que el índice es un número entero
Curso de Acciones Importantes II: Bucle "For Loop" 0532c9a82f

[gui]Ejemplo
   Acontecimientos
   Condiciones
   Acciones
       For each (Integer A) from 1 to 10, do (Actions)
           Bucle: Acciones
               Partida - Display to (All players) the text: (String((Integer A)))
[/gui]
Ahora tendremos un mensaje que nos mostrará el índice actual del bucle hasta terminar.

Pues así se crea un For Loop, es muy sencillo y es importante aprenderlo

Curso de Acciones Importantes II: Bucle "For Loop" 623713d2ee

Usos del For Loop

Hay demasiados usos para un For Loop, en este caso vamos a tomar un problema común a la hora de editar,

------------------------------------------------------------------------------------------------------------------

Situación Nº 1
Spoiler:
 

Solución 1
Aquí le daremos oro jugador por jugador, sin usar ningún bucle For.
[gui]Oro periodico 1
   Acontecimientos
       Tiempo - Every 1.00 seconds of game time
   Condiciones
   Acciones
       Jugador - Add 2 to Jugador 1 (rojo) Oro actual
       Jugador - Add 2 to Jugador 2 (azul) Oro actual
       Jugador - Add 2 to Jugador 3 (teja) Oro actual
       Jugador - Add 2 to Jugador 4 (morado) Oro actual
       Jugador - Add 2 to Jugador 5 (amarillo) Oro actual
       Jugador - Add 2 to Jugador 6 (naranja) Oro actual
       Jugador - Add 2 to Jugador 7 (verde) Oro actual
       Jugador - Add 2 to Jugador 8 (rosa) Oro actual
       Jugador - Add 2 to Jugador 9 (Gris) Oro actual
       Jugador - Add 2 to Jugador 10 (azul claro) Oro actual
[/gui]

Solución 2
Ahora usaremos un bucle For de (Integer A) para pasar jugador por jugador. Ya que como ven, cada jugador tiene asignado un número, un bucle nos dejará pasar número por número. Observen las diferencias

[gui]Oro periodico 2
   Acontecimientos
       Tiempo - Every 1.00 seconds of game time
   Condiciones
   Acciones
        Do Multiple ActionsFor each (Integer A) from 1 to 10, do (Actions)
           Bucle: Acciones
               Jugador - Add 2 to (Player((Integer A))) Oro actual
[/gui]

Si no entiendes bien lo que está escrito en lugar del Jugador, esto lo explico más adelante

------------------------------------------------------------------------------------------------------------------

Situación Nº 2
Spoiler:
 

Solución 1
Aquí, como en el ejemplo anterior pondremos acción por acción para cada jugador

[gui]Oleada 1
   Acontecimientos
       Tiempo - Every 30.00 seconds of game time
   Condiciones
   Acciones
       Unidad - Create 3 Soldado raso for Jugador 1 (rojo) at (Jugador 1 (rojo) start location) facing Vista edificio predeterminada degrees
       Unidad - Create 2 Fusilero for Jugador 1 (rojo) at (Jugador 1 (rojo) start location) facing Vista edificio predeterminada degrees
       Unidad - Create 3 Soldado raso for Jugador 2 (azul) at (Jugador 2 (azul) start location) facing Vista edificio predeterminada degrees
       Unidad - Create 2 Fusilero for Jugador 2 (azul) at (Jugador 2 (azul) start location) facing Vista edificio predeterminada degrees
       Unidad - Create 3 Soldado raso for Jugador 3 (teja) at (Jugador 3 (teja) start location) facing Vista edificio predeterminada degrees
       Unidad - Create 2 Fusilero for Jugador 3 (teja) at (Jugador 3 (teja) start location) facing Vista edificio predeterminada degrees
       Unidad - Create 3 Soldado raso for Jugador 4 (morado) at (Jugador 4 (morado) start location) facing Vista edificio predeterminada degrees
       Unidad - Create 2 Fusilero for Jugador 4 (morado) at (Jugador 4 (morado) start location) facing Vista edificio predeterminada degrees
[/gui]

Solución 2
Ahora usaremos el otro tipo de bucle For, For Each (Integer B), Do multiple actions para reducirnos el trabajo.

[gui]Oleada 2
   Acontecimientos
       Tiempo - Every 30.00 seconds of game time
   Condiciones
   Acciones
       For each (Integer B) from 1 to 4, do (Actions)
           Bucle: Acciones
               Unidad - Create 3 Soldado raso for (Player((Integer B))) at ((Player((Integer B))) start location) facing Vista edificio predeterminada degrees
               Unidad - Create 2 Fusilero for (Player((Integer B))) at ((Player((Integer B))) start location) facing Vista edificio predeterminada degrees
[/gui]

Como ven, en lugar de estar la función (Integer A) ahora tenemos la función (Integer B).

------------------------------------------------------------------------------------------------------------------
Volver arriba Ir abajo
angelcraft
Soldado
angelcraft


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 114
Reputación Reputación : 29
Monedas de oro : 441
Curso de Acciones Importantes II: Bucle "For Loop" Empty

Inventario :
Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10
Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10

Curso de Acciones Importantes II: Bucle "For Loop" Empty
Mensaje(#) Tema: Re: Curso de Acciones Importantes II: Bucle "For Loop" Curso de Acciones Importantes II: Bucle "For Loop" Clock10Lun Sep 03, 2018 10:38 pm

Buenos detalles de explicacion, podrias poner de ejemplo el uso del for para agrupar unidades XD. (Como idea.)
Saludos..
Volver arriba Ir abajo
Maty
Capitán
Maty


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 224
Reputación Reputación : 26
Monedas de oro : 847
Monedas de Platino : 0 Curso de Acciones Importantes II: Bucle "For Loop" Empty

Inventario :
Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10
Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10

Curso de Acciones Importantes II: Bucle "For Loop" Empty
Mensaje(#) Tema: Re: Curso de Acciones Importantes II: Bucle "For Loop" Curso de Acciones Importantes II: Bucle "For Loop" Clock10Lun Sep 03, 2018 10:55 pm

Gracias Marcos, Me sirvió La clase ajaja, necesitaba saber lo del bucle.


La derrota es el símbolo de la violencia, la victoria lo es de la gloria. study
La crueldad no radica en lo que perdemos, sino en lo que no ganamos. study
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3236
Reputación Reputación : 565
Monedas de oro : 10085
Monedas de Platino : 0 Curso de Acciones Importantes II: Bucle "For Loop" Empty

Inventario :
Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10
Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10 Curso de Acciones Importantes II: Bucle "For Loop" Empysl10

Curso de Acciones Importantes II: Bucle "For Loop" Empty
Mensaje(#) Tema: Re: Curso de Acciones Importantes II: Bucle "For Loop" Curso de Acciones Importantes II: Bucle "For Loop" Clock10Mar Sep 04, 2018 1:49 pm

@angelcraft escribió:
Buenos detalles de explicacion, podrias poner de ejemplo el uso del for para agrupar unidades XD. (Como idea.)
Saludos..

Eso es JASS Angelos, pero el "Pick every unit in group" es la próxima acción importante creo. No se me ocurra otra que sea tan importante
Volver arriba Ir abajo
Contenido patrocinado




Curso de Acciones Importantes II: Bucle "For Loop" Empty
Mensaje(#) Tema: Re: Curso de Acciones Importantes II: Bucle "For Loop" Curso de Acciones Importantes II: Bucle "For Loop" Clock10

Volver arriba Ir abajo
 

Curso de Acciones Importantes II: Bucle "For Loop"

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Por todas esas personas importantes.... [Minitrama (1ª Parte) "Equipo 1": Elith, Shou Kudirickimon y Zack Fair]
» In the loop (2009)
» Flyboys [DVDRip]
» Curso básico de prostitución, empleo garantizado'
» [Ficha] Charles de Gaulle 1890-1970

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Academia :: Area GUI :: Tutoriales Varios-