SlideShare una empresa de Scribd logo
1 de 5
4.2
   Introducción a la Programación con ActionScript

 Si bien hemos catalogado este tema como "básico", la palabra adecuada
sería "necesario". pues si bien el objetivo de este tema NO es enseñar
programación, no podemos pasar por alto que ciertos conceptos
relacionados con ella deben conocerse para poder llegar a entender el
ActionScript. Vamos pues a explicar algunos conceptos fundamentales,
necesarios para abordar la programación mediante ActionScript.



Script: Código escrito en cualquier lenguaje de programación que realiza una tarea
determinada. Así por ejemplo, el código ActionScript necesario para que al pulsar un botón de
Flash pasemos al fotograma siguiente es un script.



Variable: Vamos a explicar la interpretación del término variable en programación mediante
un ejemplo sencillo.



Si tenemos la expresión:      x = 3;



Tenemos que x es una variable que toma el valor 3. Se llama variable precisamente porque
puede cambiar de valor en cualquier momento durante la ejecución de nuestra película Flash.
Todos los datos que se manejan normalmente son variables (salvo aquellos constantes, por
ejemplo el número 3). Así, en un formulario, el nombre es una variable (de tipo cadena de
caracteres o string), el apellido también, la dirección, el teléfono etc...



 Expresión / Sentencia: Conjunto de operadores, constantes, variables o acciones. Provocan un
resultado o una acción determinada y SIEMPRE deben ir terminados por ' ; ' (punto y coma).



 Función: Una función es una porción de código (ActionScript en nuestro caso) que tiene un
nombre determinado y que realiza una labor concreta. Ejemplo, la siguiente definición de
función:

function IncrementaX(x) {
x = x + 1;

}

Realiza la función de tomar la variable "x" y sumarle uno a su valor. Si quisiéramos ejecutarla
en algún lugar de nuestra película, bastaría con escribir: "IncrementaX(x)", siempre y cuando la
definición de la función (que es el código mostrado arriba) esté en cualquier parte de la
película que se ejecute ANTES que la llamada a la función.



 Acción: Flash llama Acción a funciones que él mismo ha implementado y que no requieren ser
definidas para ser usadas. Basta por tanto, con escribir la llamada a la función. Estas acciones
son lo que usaremos la mayoría de las veces, pues resultan sumamente fáciles de usar y muy
potentes. Las acciones aparecen en el Panel Acciones y se pueden insertar en nuestro código
con un simple clic de ratón.



Por ejemplo "gotoAndPlay(3)" es una acción que provoca que Flash pase a ejecutar el
fotograma 3.



Ahora que entendemos qué son las funciones, deberemos comprender también, que en
alguna parte, Flash ha definido la función "gotoAndPlay" (tal y como hemos hecho nosotros
anteriormente con la función "IncrementaX") y ha escrito un código que provoca el efecto ya
comentado. Por suerte todo esto no nos debe preocupar, Flash 8 se encarga de todo. Nos
basta con conocer las acciones y saber cómo usarlas.



Parámetro: Un parámetro es una variable que entra o sale de una acción o de una función.
Ponemos un ejemplo para clarificar esta definición:



Tenemos la siguiente definición de función:




function Suma5(p_entrada, p_salida) {



p_salida = p_entrada + 5;
}



Imaginemos que tenemos una variable x que vale 7 y otra variable y que queremos que valga
7 + 5. Ejecutaríamos la función "Suma5" del siguiente modo: Suma5( x , y ). Vamos a ver qué
hace exactamente la función con los parámetros x e y.



Al ejecutar "Suma5( x , y)", Flash busca definiciones de funciones que se llamen Suma5,
enseguida encontrará la definición que hemos escrito arriba, (que deberá estar escrita en
alguna parte de nuestra película ANTES de ejecutar "Suma5( x, y )"). Cuando lo hace,
comprueba que la función que ejecutamos COINCIDE con la cabecera de la definición, esta
cabecera abarca el nombre de la función y todo lo que venga a continuación hasta que se
cierre el paréntesis. En nuestro caso, la cabecera sería "Suma5(p_entrada, p_salida)"



Aquí viene la pregunta inminente, ¿Coinciden?. La respuesta es SÍ, para que coincidan DEBE
coincidir el NOMBRE de la función y el número de parámetros, que serán variables o valores
separados por comas. Como tenemos 2 parámetros en cada parte, todo coincide y pasa a
ejecutarse la función. La función ejecutada es "Suma(x , y)", por lo que lo que en realidad se
ejecutará será:




function Suma5(x, y) {



y = x + 5;



}




Tras ejecutarse esta función, y valdrá lo que valiese x mas 5. Es lo que queríamos.
La variable 'x' ha actuado como parámetro de entrada, pues aporta un dato a la función, el
valor 'y' comienza entrando en la función, pero es un parámetro de salida porque ha sido
modificado DENTRO de la función.



 Programación Orientada a Objetos (POO): ActionScript es un lenguaje orientado a objetos,
esto quiere decir que la información se organiza en grupos denominados clases. Cuando
queremos emplear una clase en nuestra película, usamos una instancia de ella, denominada
OBJETO. Los objetos, y por tanto, las clases, tiene Propiedades (características) y Métodos
(comportamientos). Pongamos 2 ejemplos para clarificar esto:



- El objeto Persona tiene:



    - Propiedades: Nombre, edad, altura ...



    - Comportamientos: hablar, correr, saltar ...



- El objeto Clip de Película tiene:



    - Propiedades: color, anchura, altura ...



    - Comportamientos: gotoAndPlay, Stop, Play, LoadMovie ...



Evidentemente el primer objeto es meramente didáctico, el segundo objeto es un objeto de
Flash (salvo que las propieades están definidas en inglés), y probablemente el más
importante...



Los objetos los podemos encontrar también en el Panel Acciones, su uso es sencillo. Veamos
un ejemplo:



Tenemos el objeto Clip1, que es una instancia de la Clase MovieClip y por tanto, tiene sus
mismas Propiedades y Métodos.
- Clip1._height = 20;



Con la línea anterior, estamos diciendo a Flash que el objeto Clip1 tiene una altura de 20
(inmediatamente Flash la modificará en el fotograma en el que se encuentre). La sintaxis de
Flash establece que debe existir el separador "._" , no vale la pena entrar a describir el porqué.
Siempre será así, no lo olvidemos.



- Clip1.Play();



Esta acción ejecutará el método Play, que pertenece a los Clips de Película, provocará que se
comience a ejecutar la línea de tiempos del Clip1. Nótese que aquí no hay "_" como separador,
sólo un "."



 Ya conocemos los conceptos "básicos" de Flash 8. Si pensamos en que, con sólo 1 línea
podemos modificar la altura de un objeto de nuestra película DURANTE LA EJECUCIÓN DE LA
MISMA (y no mientras la creábamos como hasta ahora), podremos hacernos una idea de lo
que nos permitirá el ActionScript ... Podremos dar vida a nuestras animaciones y conseguir una
interactividad total con el usuario. Podremos conseguir una película completamente
multimedia.



El conocimiento y comprensión de estos conceptos no es un requisito para comenzar a
programar con ActionScript, programar por intuición es una práctica muy común en este tipo
de lenguajes. En este curso recomendamos saber lo que se está haciendo en todo momento y
conocer bien qué es cada cosa, y pensamos que hacer un esfuerzo inicial nos gratificará
constantemente durante nuestro aprendizaje de ActionScript, pues con todo lo anterior claro y
un poco de trabajo, pronto pasaremos a ser programadores expertos y en ese momento la
intuición deja de ser útil...

Más contenido relacionado

La actualidad más candente

Introducción a la programación con action script
Introducción a la programación con action scriptIntroducción a la programación con action script
Introducción a la programación con action script
Victoria' Worcs
 
4.2 conceptos iniciales de programacion
4.2 conceptos iniciales de programacion4.2 conceptos iniciales de programacion
4.2 conceptos iniciales de programacion
Lupiithaa Martiinez
 
4 2conceptosinicialesdeprogramacion-121003195205-phpapp02
4 2conceptosinicialesdeprogramacion-121003195205-phpapp024 2conceptosinicialesdeprogramacion-121003195205-phpapp02
4 2conceptosinicialesdeprogramacion-121003195205-phpapp02
Carlos Rangel Flores
 
Conceptos Iniciales de Programación
Conceptos Iniciales de ProgramaciónConceptos Iniciales de Programación
Conceptos Iniciales de Programación
susanabiebs
 
Introducción a la programación con action script
Introducción a la programación con action scriptIntroducción a la programación con action script
Introducción a la programación con action script
Lorenɑ' Rodrigueʓ♥
 
Introducción a la programación con actionscript
Introducción a la programación  con actionscriptIntroducción a la programación  con actionscript
Introducción a la programación con actionscript
Yaaree
 
Lizeth natalia urian salazar proyectio
Lizeth natalia urian salazar proyectioLizeth natalia urian salazar proyectio
Lizeth natalia urian salazar proyectio
lizizizi
 
Thalia castro 1101
Thalia castro 1101Thalia castro 1101
Thalia castro 1101
thalis96
 
Tema 3 sentencias de control de java por gio
Tema 3   sentencias de control de java por gioTema 3   sentencias de control de java por gio
Tema 3 sentencias de control de java por gio
Robert Wolf
 

La actualidad más candente (20)

Introducción a la programación con action script
Introducción a la programación con action scriptIntroducción a la programación con action script
Introducción a la programación con action script
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
4.2 conceptos iniciales de programacion
4.2 conceptos iniciales de programacion4.2 conceptos iniciales de programacion
4.2 conceptos iniciales de programacion
 
4 2conceptosinicialesdeprogramacion-121003195205-phpapp02
4 2conceptosinicialesdeprogramacion-121003195205-phpapp024 2conceptosinicialesdeprogramacion-121003195205-phpapp02
4 2conceptosinicialesdeprogramacion-121003195205-phpapp02
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Prcaticasfaltantes
PrcaticasfaltantesPrcaticasfaltantes
Prcaticasfaltantes
 
4.2 gaem
4.2 gaem4.2 gaem
4.2 gaem
 
Conceptos Iniciales de Programación
Conceptos Iniciales de ProgramaciónConceptos Iniciales de Programación
Conceptos Iniciales de Programación
 
Introducción a la programación con action script
Introducción a la programación con action scriptIntroducción a la programación con action script
Introducción a la programación con action script
 
Programaa
ProgramaaProgramaa
Programaa
 
4.2docx
4.2docx4.2docx
4.2docx
 
Introducción a la programación con actionscript
Introducción a la programación  con actionscriptIntroducción a la programación  con actionscript
Introducción a la programación con actionscript
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Lizeth natalia urian salazar proyectio
Lizeth natalia urian salazar proyectioLizeth natalia urian salazar proyectio
Lizeth natalia urian salazar proyectio
 
Thalia castro 1101
Thalia castro 1101Thalia castro 1101
Thalia castro 1101
 
Anyi amaya
Anyi amayaAnyi amaya
Anyi amaya
 
Vale 11
Vale 11Vale 11
Vale 11
 
Programación funcional Core Upgrade Febrero 2018 (ejemplos con Javascript)
Programación funcional Core Upgrade Febrero 2018 (ejemplos con Javascript)Programación funcional Core Upgrade Febrero 2018 (ejemplos con Javascript)
Programación funcional Core Upgrade Febrero 2018 (ejemplos con Javascript)
 
Tema 3 sentencias de control de java por gio
Tema 3   sentencias de control de java por gioTema 3   sentencias de control de java por gio
Tema 3 sentencias de control de java por gio
 
Php basico
Php basicoPhp basico
Php basico
 

Destacado

Ejercicios textos
Ejercicios textosEjercicios textos
Ejercicios textos
Rurus9
 
Práctica 27
Práctica 27Práctica 27
Práctica 27
Rurus9
 
Cuestionario unidad 4
Cuestionario unidad 4Cuestionario unidad 4
Cuestionario unidad 4
Rurus9
 
Ejercicio g1
Ejercicio g1Ejercicio g1
Ejercicio g1
Rurus9
 
Práctica 15
Práctica 15Práctica 15
Práctica 15
Rurus9
 
Práctica 25
Práctica 25Práctica 25
Práctica 25
Rurus9
 
Práctica 17
Práctica 17Práctica 17
Práctica 17
Rurus9
 

Destacado (7)

Ejercicios textos
Ejercicios textosEjercicios textos
Ejercicios textos
 
Práctica 27
Práctica 27Práctica 27
Práctica 27
 
Cuestionario unidad 4
Cuestionario unidad 4Cuestionario unidad 4
Cuestionario unidad 4
 
Ejercicio g1
Ejercicio g1Ejercicio g1
Ejercicio g1
 
Práctica 15
Práctica 15Práctica 15
Práctica 15
 
Práctica 25
Práctica 25Práctica 25
Práctica 25
 
Práctica 17
Práctica 17Práctica 17
Práctica 17
 

Similar a 4.2 introducción a la programación con action script

Similar a 4.2 introducción a la programación con action script (16)

4.2
4.24.2
4.2
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
4.2. "programar propiedades en los botones"
4.2. "programar propiedades en los botones"4.2. "programar propiedades en los botones"
4.2. "programar propiedades en los botones"
 
Action script
Action scriptAction script
Action script
 
Action script
Action scriptAction script
Action script
 
Action script
Action scriptAction script
Action script
 
Action script
Action scriptAction script
Action script
 
Action script
Action scriptAction script
Action script
 
4manipularbotones 121006192501-phpapp02 (1)
4manipularbotones 121006192501-phpapp02 (1)4manipularbotones 121006192501-phpapp02 (1)
4manipularbotones 121006192501-phpapp02 (1)
 
4 manipular botones
4 manipular botones4 manipular botones
4 manipular botones
 
Action script 3
Action script 3Action script 3
Action script 3
 
Andres alexis canizales (1)
Andres alexis canizales (1)Andres alexis canizales (1)
Andres alexis canizales (1)
 
Action script
Action scriptAction script
Action script
 
Action script 3
Action script 3Action script 3
Action script 3
 
actionscript
actionscriptactionscript
actionscript
 
Natalia camargo sanchez 1102 j.t
Natalia camargo sanchez 1102 j.tNatalia camargo sanchez 1102 j.t
Natalia camargo sanchez 1102 j.t
 

Más de Rurus9

Unidad 1
Unidad 1Unidad 1
Unidad 1
Rurus9
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
Rurus9
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
Rurus9
 
Práctica 26
Práctica 26Práctica 26
Práctica 26
Rurus9
 
Práctica 24
Práctica 24Práctica 24
Práctica 24
Rurus9
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
Rurus9
 
Práctica 23
Práctica 23Práctica 23
Práctica 23
Rurus9
 
Práctica 21
Práctica 21Práctica 21
Práctica 21
Rurus9
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
Rurus9
 
Práctica 22
Práctica 22Práctica 22
Práctica 22
Rurus9
 
Práctica 20
Práctica 20Práctica 20
Práctica 20
Rurus9
 
Práctica 18
Práctica 18Práctica 18
Práctica 18
Rurus9
 
Práctica 16
Práctica 16Práctica 16
Práctica 16
Rurus9
 
Práctica 19
Práctica 19Práctica 19
Práctica 19
Rurus9
 
Práctica 14
Práctica 14Práctica 14
Práctica 14
Rurus9
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
Rurus9
 
Práctica 13 forma a texto
Práctica 13 forma a textoPráctica 13 forma a texto
Práctica 13 forma a texto
Rurus9
 
Práctica 12
Práctica 12Práctica 12
Práctica 12
Rurus9
 
Práctica 11 gaem
Práctica 11  gaemPráctica 11  gaem
Práctica 11 gaem
Rurus9
 
Práctica 10
Práctica 10Práctica 10
Práctica 10
Rurus9
 

Más de Rurus9 (20)

Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Práctica 26
Práctica 26Práctica 26
Práctica 26
 
Práctica 24
Práctica 24Práctica 24
Práctica 24
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
Práctica 23
Práctica 23Práctica 23
Práctica 23
 
Práctica 21
Práctica 21Práctica 21
Práctica 21
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Práctica 22
Práctica 22Práctica 22
Práctica 22
 
Práctica 20
Práctica 20Práctica 20
Práctica 20
 
Práctica 18
Práctica 18Práctica 18
Práctica 18
 
Práctica 16
Práctica 16Práctica 16
Práctica 16
 
Práctica 19
Práctica 19Práctica 19
Práctica 19
 
Práctica 14
Práctica 14Práctica 14
Práctica 14
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Práctica 13 forma a texto
Práctica 13 forma a textoPráctica 13 forma a texto
Práctica 13 forma a texto
 
Práctica 12
Práctica 12Práctica 12
Práctica 12
 
Práctica 11 gaem
Práctica 11  gaemPráctica 11  gaem
Práctica 11 gaem
 
Práctica 10
Práctica 10Práctica 10
Práctica 10
 

4.2 introducción a la programación con action script

  • 1. 4.2 Introducción a la Programación con ActionScript Si bien hemos catalogado este tema como "básico", la palabra adecuada sería "necesario". pues si bien el objetivo de este tema NO es enseñar programación, no podemos pasar por alto que ciertos conceptos relacionados con ella deben conocerse para poder llegar a entender el ActionScript. Vamos pues a explicar algunos conceptos fundamentales, necesarios para abordar la programación mediante ActionScript. Script: Código escrito en cualquier lenguaje de programación que realiza una tarea determinada. Así por ejemplo, el código ActionScript necesario para que al pulsar un botón de Flash pasemos al fotograma siguiente es un script. Variable: Vamos a explicar la interpretación del término variable en programación mediante un ejemplo sencillo. Si tenemos la expresión: x = 3; Tenemos que x es una variable que toma el valor 3. Se llama variable precisamente porque puede cambiar de valor en cualquier momento durante la ejecución de nuestra película Flash. Todos los datos que se manejan normalmente son variables (salvo aquellos constantes, por ejemplo el número 3). Así, en un formulario, el nombre es una variable (de tipo cadena de caracteres o string), el apellido también, la dirección, el teléfono etc... Expresión / Sentencia: Conjunto de operadores, constantes, variables o acciones. Provocan un resultado o una acción determinada y SIEMPRE deben ir terminados por ' ; ' (punto y coma). Función: Una función es una porción de código (ActionScript en nuestro caso) que tiene un nombre determinado y que realiza una labor concreta. Ejemplo, la siguiente definición de función: function IncrementaX(x) {
  • 2. x = x + 1; } Realiza la función de tomar la variable "x" y sumarle uno a su valor. Si quisiéramos ejecutarla en algún lugar de nuestra película, bastaría con escribir: "IncrementaX(x)", siempre y cuando la definición de la función (que es el código mostrado arriba) esté en cualquier parte de la película que se ejecute ANTES que la llamada a la función. Acción: Flash llama Acción a funciones que él mismo ha implementado y que no requieren ser definidas para ser usadas. Basta por tanto, con escribir la llamada a la función. Estas acciones son lo que usaremos la mayoría de las veces, pues resultan sumamente fáciles de usar y muy potentes. Las acciones aparecen en el Panel Acciones y se pueden insertar en nuestro código con un simple clic de ratón. Por ejemplo "gotoAndPlay(3)" es una acción que provoca que Flash pase a ejecutar el fotograma 3. Ahora que entendemos qué son las funciones, deberemos comprender también, que en alguna parte, Flash ha definido la función "gotoAndPlay" (tal y como hemos hecho nosotros anteriormente con la función "IncrementaX") y ha escrito un código que provoca el efecto ya comentado. Por suerte todo esto no nos debe preocupar, Flash 8 se encarga de todo. Nos basta con conocer las acciones y saber cómo usarlas. Parámetro: Un parámetro es una variable que entra o sale de una acción o de una función. Ponemos un ejemplo para clarificar esta definición: Tenemos la siguiente definición de función: function Suma5(p_entrada, p_salida) { p_salida = p_entrada + 5;
  • 3. } Imaginemos que tenemos una variable x que vale 7 y otra variable y que queremos que valga 7 + 5. Ejecutaríamos la función "Suma5" del siguiente modo: Suma5( x , y ). Vamos a ver qué hace exactamente la función con los parámetros x e y. Al ejecutar "Suma5( x , y)", Flash busca definiciones de funciones que se llamen Suma5, enseguida encontrará la definición que hemos escrito arriba, (que deberá estar escrita en alguna parte de nuestra película ANTES de ejecutar "Suma5( x, y )"). Cuando lo hace, comprueba que la función que ejecutamos COINCIDE con la cabecera de la definición, esta cabecera abarca el nombre de la función y todo lo que venga a continuación hasta que se cierre el paréntesis. En nuestro caso, la cabecera sería "Suma5(p_entrada, p_salida)" Aquí viene la pregunta inminente, ¿Coinciden?. La respuesta es SÍ, para que coincidan DEBE coincidir el NOMBRE de la función y el número de parámetros, que serán variables o valores separados por comas. Como tenemos 2 parámetros en cada parte, todo coincide y pasa a ejecutarse la función. La función ejecutada es "Suma(x , y)", por lo que lo que en realidad se ejecutará será: function Suma5(x, y) { y = x + 5; } Tras ejecutarse esta función, y valdrá lo que valiese x mas 5. Es lo que queríamos.
  • 4. La variable 'x' ha actuado como parámetro de entrada, pues aporta un dato a la función, el valor 'y' comienza entrando en la función, pero es un parámetro de salida porque ha sido modificado DENTRO de la función. Programación Orientada a Objetos (POO): ActionScript es un lenguaje orientado a objetos, esto quiere decir que la información se organiza en grupos denominados clases. Cuando queremos emplear una clase en nuestra película, usamos una instancia de ella, denominada OBJETO. Los objetos, y por tanto, las clases, tiene Propiedades (características) y Métodos (comportamientos). Pongamos 2 ejemplos para clarificar esto: - El objeto Persona tiene: - Propiedades: Nombre, edad, altura ... - Comportamientos: hablar, correr, saltar ... - El objeto Clip de Película tiene: - Propiedades: color, anchura, altura ... - Comportamientos: gotoAndPlay, Stop, Play, LoadMovie ... Evidentemente el primer objeto es meramente didáctico, el segundo objeto es un objeto de Flash (salvo que las propieades están definidas en inglés), y probablemente el más importante... Los objetos los podemos encontrar también en el Panel Acciones, su uso es sencillo. Veamos un ejemplo: Tenemos el objeto Clip1, que es una instancia de la Clase MovieClip y por tanto, tiene sus mismas Propiedades y Métodos.
  • 5. - Clip1._height = 20; Con la línea anterior, estamos diciendo a Flash que el objeto Clip1 tiene una altura de 20 (inmediatamente Flash la modificará en el fotograma en el que se encuentre). La sintaxis de Flash establece que debe existir el separador "._" , no vale la pena entrar a describir el porqué. Siempre será así, no lo olvidemos. - Clip1.Play(); Esta acción ejecutará el método Play, que pertenece a los Clips de Película, provocará que se comience a ejecutar la línea de tiempos del Clip1. Nótese que aquí no hay "_" como separador, sólo un "." Ya conocemos los conceptos "básicos" de Flash 8. Si pensamos en que, con sólo 1 línea podemos modificar la altura de un objeto de nuestra película DURANTE LA EJECUCIÓN DE LA MISMA (y no mientras la creábamos como hasta ahora), podremos hacernos una idea de lo que nos permitirá el ActionScript ... Podremos dar vida a nuestras animaciones y conseguir una interactividad total con el usuario. Podremos conseguir una película completamente multimedia. El conocimiento y comprensión de estos conceptos no es un requisito para comenzar a programar con ActionScript, programar por intuición es una práctica muy común en este tipo de lenguajes. En este curso recomendamos saber lo que se está haciendo en todo momento y conocer bien qué es cada cosa, y pensamos que hacer un esfuerzo inicial nos gratificará constantemente durante nuestro aprendizaje de ActionScript, pues con todo lo anterior claro y un poco de trabajo, pronto pasaremos a ser programadores expertos y en ese momento la intuición deja de ser útil...