Hola,

Estoy preparando el tutorial 23. Los temas que trabajaremos serán:

Matrices: métodos para añadir elementos, eliminar, remidensionar...

Bucles: bucle for (desde ...hasta) bucle while (mientras...)

Seguiremos trabajando con cadenas pero combinándolo con matrices.

Como la programación será más compleja vamos a usar lo que se denomina pseudocódigo que no es más que escribir, antes de poner el código, todos los pasos en nuestro lenguaje.

Vamos a dar un pasito más en la complejidad del lenguaje del ordenador.

Espero que antes de un par de días lo pueda publicar aquí.

Visitas: 1097

Respuestas a esta discusión

A ver si me carga el adjunto. Antes no me daba la posibilidad.

Hola Juan Manuel,

Te he tachado en tu mensaje lo que tienes mal. Te dejo el siguiente código para que veas como me refiero a una variable de forma dinámica. Está en negrita.

 

function desordenar_frase() {
n = 1;
_root.frase_desordenada = "";// Iniciamos la variable donde almacenaremos la frase desordenada
//BUCLE DE REPETICIÓN MIENTRAS DO...WHILE
do {// Significa haz, repite.

_root.num_palabra = random(palabras.length);// generamos un número aleatorio menor que la longitud de la matriz
//_root.frase_desordenada += palabras[_root.num_palabra]+newline;//la frase desordenada se creando acumulando las palabras desordenadas de la maatriz
_root["op"+n] = palabras[_root.num_palabra];//almacenamos en una variable la definición.
n++;
palabras.splice(_root.num_palabra,1);// Una vez añadida la palabra a la frase, borramos esa palabra de la matriz.


} while (palabras.length>0);// mientras la longitud de la matriz palabras es mayor que 0


}

__________________________________________________________________________________

Y aquí te dejo el código de los botones que van en el fotograma principal:

_root.panel1.b1.onPress = function() {
      _root.respuesta += _root.op1;
};

_root.panel1.b2.onPress = function() {
      _root.respuesta += _root.op2;
};

_root.panel1.b3.onPress = function() {
    _root.respuesta += _root.op3;
};

_root.panel1.b4.onPress = function() {
    _root.respuesta += _root.op4;
};

_root.panel1.b5.onPress = function() {
    _root.respuesta += _root.op5;
};

_root.panel1.b6.onPress = function() {
_root.respuesta += _root.op6;
};

 

 


 

 

 

 

 

 

 


Juan Manuel Cortés Fernández dijo:

Perdón por la espesura y gracias por tu ayuda. 

Roger, he creado 5 botones y dentro he puesto 5 sendos campos de texto dinámicos llamados : trozo1...etc. He aprovechado la estructura del ejercicio de desordenar refranes y solo he cambiado  la función desordenar, que me ha quedado así:

 

function desordenar_frase() {

            _root.trozo1="";

            _root.trozo2="";

            _root.trozo3="";

            _root.trozo4="";

            _root.trozo5="";

 

            do {     _root.num_palabra = random(palabras.length);  

 

                        _root.boton[_root.num_palabra].trozo[_root.num_palabra]= palabras[_root.num_palabra] ;

 

 

                        palabras.splice(_root.num_palabra,1);

 

            } while (palabras.length>0); 

}

 

De momento no me sale nada en los campos de texto. Si pongo por ejemplo: _root.trozo1=" hola"; Me sale el hola, es decir, los campos de texto tienen conexión, pero se ve que:

 

 _root.boton[_root.num_palabra].trozo[_root.num_palabra]= palabras[_root.num_palabra] ;

 

No les dice nada. 

 

He probado también :

 

_root.trozo[_root.num_palabra]= palabras[_root.num_palabra] ;   

y             trozo[_root.num_palabra]= palabras[_root.num_palabra] ;

 

Pero nada de nada. ¿Hay algo mal?.

 

Cuando me salga esto me meteré en lo de pulsar y que aparezca.

 

Gracias.

 

 


Pues creas botones y dentro de cada uno un cuadro de texto comectado con una variable. Cuando haces clic en un botón asignas a la variable del cuadro de texto grande que está en la parte inferior el contenido de la vaiable del botón acumulándola ya sabez con +=. Es más fácil de lo que parece.



Juan Manuel Cortés Fernández dijo:
Roger todavía estoy con el de las definiciones. ¿Como se hace para que cada parte salga en un renglón y además que al pulsar se coloquen abajo? Ya sé que aquí esta el quid pero por más vueltas que le doy no lo decubro ¿Alguna pista más?
A ver si ahora.
No sé qué pasa, pero no me carga los adjuntos, y he probado con firefox y chrome.
Roger, perdona por la zoquetería. Cuando creo los botones y meto un texto dinámico ya no tiene el comportamiento de botón (no sale la mano etc...) Y también si meto los botones con su campo de texto dentro de panel1 (que se supone que es el cuadradito que los alberga) no reciben las variables op1 etc

Adjunto el fla

Gracias por la ayuda.
Archivos adjuntos
Desactiva en el cuadro de texto la opción seleccionar texto. A mi también me paso y me volví loco


Juan Manuel Cortés Fernández dijo:
Roger, perdona por la zoquetería. Cuando creo los botones y meto un texto dinámico ya no tiene el comportamiento de botón (no sale la mano etc...) Y también si meto los botones con su campo de texto dentro de panel1 (que se supone que es el cuadradito que los alberga) no reciben las variables op1 etc

Adjunto el fla

Gracias por la ayuda.
Hola, Roger. Ya tenemos la siguiente piedra en el camino. Si no vamos de tu mano nos quedamos atascados. Parece que todo me funciona menos la comprobación, que siempre sale mal. Yo he hecho cosas que me parecen lógicas pero se ve que no lo son o no van dónde tienen que ir.

Según mis entendederas:

1.- El botón "Comprobar" debe saber con quién compara lo que hemos hecho.
2.-Debe compararlo con la definición escogida al azar (que después se ha "troceado").Yo la he llamado "solucion".
3.-Como esta "solucion" lleva asteriscos (que sirven para trocear la oración y que al trocearse desaparecen), el botón "Comprobar" no debe de fijarse ella ya que dará error seguro (al no llevar los asteriscos).
4.-Por ello he creado una variable "solucion1" que albergará la frase "solucion" tal cual(con asteriscos...).
5.-A esta "solucion1" le aplico una función que le quitará los asteriscos y guardará la frase sin asteriscos en "solucion2".
6.-Y al final el botón "Comprobar" se basará en esta "solucion2".

Pues nanai de la China... ¿Dónde está mal el argumento?

Muchas gracias, como siempre , Roger.
Archivos adjuntos

Creo que es correcto lo que has hecho. Mira el tema de comprobar:

 

on (press) {


_root.pista = "";

 

if (_root.respuesta == _root.solucion2) {

 
      _root.bien._visible=true;_root.refuerzo="¡CORRECTO!" _root.correctos++; _root.intentos++;

     _root.informe += _root.respuesta+newline; }

else {

        for (n=0; n<_root.solucion2.length; n++) {

             if (_root.respuesta.substr(n, 1) == _root.solucion2.substr(n, 1)) {

                   _root.pista += _root.solucion2.substr(n, 1);

          } else {

                 if (_root.respuesta.substr(n, 1)<>"") {
               _root.pista += "?"; } } } _root.respuesta = _root.pista; _root.informe += _root.respuesta+newline;  

              _root.intentos++; _root.bien._visible=true;_root.refuerzo="Revisa la definición"
}

 

}

 

Si ves que no va bien te envio el fla.


Gracias por tu respuesta tan rápida, pero sigue dando fallo.Es parecido a lo que yo tenía. Se ve que el fallo está o en la función quita asterisco o en dónde igualo las variables solucion, solución 1 y solucion2.

 

Te mando el nuevo fla (he cambiado el nombre de algunas variables para adaptarlo a tu propuesta).

Archivos adjuntos

 

Te envio el fla. Así puedes ver tu mismo todo y ya nos sirve para estudio de los demás.

Archivos adjuntos

Muchísimas gracias Roger. ¡¡¡Por fin!!  Yo tenía mal definida la función quitar asterisco. La tuya es más sencilla.

 

 

Archivos adjuntos
My buenos los trabajos. A ver si termino el mío y lo subo.

RSS

© 2024   Creado por roger.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio