Comunidad de diseño web y desarrollo en internet online

juego de sumas

Citar            
MensajeEscrito el 19 Abr 2008 01:43 am
Hola mis maestros virtuales!!
Sigo tratando de aprender AS a full por mi cuenta, y me propongo a veces hacer cosas que por alli, se me escapan de mis posibilidades de conocimientos, por lo que me trabo.Estoy tratando de hacer un juego , el cul es de operaciomes simples de matematicas, suma resta ,...etc.Estoy con el de suma, y la idea es que aparezcan varios textos dinamicos en el escenario con distintos resultados y solo uno de ellos sea el real para que un muñequito valla hasta alli y lo tilde como correcta y asi sumar puntos,..etc.Bueno , la parte de los textos dinamicos y el desplazamiento del muñequito lo hice, lo que no puedo hacer es que aparezcan los resultados falsos en estos textos dinamicos, solo logre que aparezca el real en el ultimo texto dinamico(los llame pizarritas).Buscando informacion me oriento hacia un bucle for y un random, puede ser?.Me podrian dar una mano.Desde ya mucha gracias. :)

EL CODIGO ES:

Código :

/


var columnas:Number = 0;
//de las pizarritas
var filas:Number = 0;
//de las pizarritas
var score:Number = 0;
// para el puntaje
//var koses:Number = 15;
//cantidad de pizarritas lo puse luego dentro del bucle declarado
var limite:Number = 1000;

/creo pizaritas 
function creapizarras(num_instancias:Number, maxcolumnas:Number, enX:Number, enY:Number):Void {
   for (var i = 0; i<num_instancias; columnas) {
      attachMovie("koses", "koses"+i, i, {_x:enX, _y:enY});
      hijo = _root["koses"+i];
      hijo._x += 130*columnas;
      hijo._y += 140*filas;
      i++;
      columnas++;
      if (columnas == maxcolumnas) {
         filas++;
         columnas = 0;
      }
   }
}
creapizarras(15, 5, 38, 81);
//cantidad y ubicacion pizarritas
//funcion para suma  
function crea_operacion() {
   num1 = Math.round(Math.random()*limite);
   num2 = Math.round(Math.random()*limite);
   nm1.text = num1;
   nm2.text = num2;
   //rdo = "";
}
crea_operacion();
//llamo a la funcion
function sumatoria(num1:Number, num2:Number):Number {
   //aca me trabooooooooo
   return (num1+num2);
}
var resul:Number = sumatoria(num1, num2);
hijo.numero._text.text = resul;
//sale el resultado en la ultima pizarra

Por kuky

50 de clabLevel



 

Argentina

msie7
Citar            
MensajeEscrito el 23 Abr 2008 04:07 am
kuky

Hola man!!! Sube el swf para tener una mejor idea y perspectiva de lo que pretendes hacer

Por esutoraiki

Claber

548 de clabLevel

4 tutoriales

Genero:Masculino  

Aplicaciones para Web

opera
Citar            
MensajeEscrito el 24 Abr 2008 06:47 am

Por kuky

50 de clabLevel



 

Argentina

msie7
Citar            
MensajeEscrito el 25 Abr 2008 09:08 pm
kuky

Hola man!!!, ya baje el archivo, te recomiendo para el futuro no colgar archivos en ese sitio fue engorroso bajarlo.

Ya vi la idea básica, y creo que lo entendi. El sabado le dedico algo de tiempo al código que posteaste y te doy algunas sugerencias.

Por esutoraiki

Claber

548 de clabLevel

4 tutoriales

Genero:Masculino  

Aplicaciones para Web

opera
Citar            
MensajeEscrito el 26 Abr 2008 12:44 am
Gracias amigo, muchas gracias....el sabado despues de las 19:00 estoy frente a la maquinola, esperando....
Un abrazo enorme.

Por kuky

50 de clabLevel



 

Argentina

msie7
Citar            
MensajeEscrito el 28 Abr 2008 12:47 pm
Amigazo, logre que salgan los resultados falsos en los otros textos dinamicos, era con un bucle for (me tiraron una ayudita ), lo que no puedo ahora es variar la ubicación del resultado verdadero, salgo de una y me meto en otra :crap:

Código :

function sumatoria() {
   resul = num1+num2;
   //aca me trabooooooooo//IUPI....ENCONTRE LA SOLUCION ES ESTE BUCLE
   for (var e = 0; e<14; e++) {
      ojo = _root["koses"+e];
      ojo.numero._text.text = Math.round(Math.random()*1000);
   }
   hijo.numero._text.text = resul;
}
sumatoria();
//sale el resultado en la ultima pizarra
nuevo.onRelease = function() {
   nuevo.play();
   crea_operacion();
   sumatoria();
};

Por kuky

50 de clabLevel



 

Argentina

msie7
Citar            
MensajeEscrito el 02 May 2008 10:54 am
kuky

Hola man!!!

Disculpa el anterior sabado, tuve mucho trabajo y no pude dedicarte algo de tiempo.

Veo que ya pudiste arreglar el problema, y también veo tu nuevo problema. Yo saque algo de tiempo y te fabrique un ejemplo, el cual se encuentra en la siguiente dirección

http://download.yousendit.com/01E3372F65A3AAD2

Para las personas que no alcancen a descargar el archivo, solamente necesitan crear en el escenario un boton con el nombre de instancia j_otro_btn. Dos campos de textos dinámicos llamados num1_txt y num2_txt . Un movieclip llamado b0_mc. Crear una capa llamada acciones y poner el siguiente código:

Código :

stop();
//Inicialización de variables
var respuesta_correcta:Number;
var limite:Number = 1000;
var n_filas:Number = 5;
var n_columnas:Number = 5;
var nombre_campo:String;
var nombre_boton:String;
var nivel:Number = 1;
var posicion_x:Number = 20;
var posicion_y:Number = 130;
var ancho_texto:Number = 80;
var alto_texto:Number = 25;
var fila_correcta:Number;
var columna_correcta:Number;

//me genera los dos numero aleatoriamente
function crea_operacion() {
   num1 = Math.round(Math.random() * limite);
   num2 = Math.round(Math.random() * limite);
   _root.num1_txt.text = num1;
   _root.num2_txt.text = num2;

   resultado = num1 + num2;
   return resultado;

}


//me crea los campos
function crea_campos() {

   //Determino aleatoriamente la posición de la respuesta correcta
   fila = Math.round(Math.random() * (n_filas - 1));
   columna = Math.round(Math.random() * (n_columnas - 1));

   //Si se necesita ver la posicion de la respuesta habilitar el siguiente trace
   //trace(fila + " " + columna);

   //creo las filas
   for (i = 0; i < n_filas; i++) {//for(1)
      p_y = Number(posicion_y + (i * (alto_texto + 20)));

      //creo las columnas
      for (j = 0; j < n_columnas; j++) {//for(2)
         nombre_campo = "casilla_" + i + j + "_txt";
         p_x = Number(posicion_x + (j * (ancho_texto + 20)));

         texto = this.createTextField(nombre_campo, nivel++, p_x, p_y, ancho_texto, alto_texto);
         //propiedades del campo
         texto.border = true;
         texto.type = "dynamic";
         texto.multiline = true;
         texto.selectable = false;

         //Dtermino en cual posición debe quedar la respuesta correcta
         if (fila == i && columna == j) {//if(1)
            texto.text = _root.respuesta_correcta;
         } else {//if(1)
            texto.text = Math.round(Math.random() * (limite * 2));
         }//if(1)

         //propiedades del texto
         var texto_fmt:TextFormat = new TextFormat();

         texto_fmt.font = "Verdana";
         texto_fmt.size = 16;
         texto_fmt.align = "center";


         texto.setTextFormat(texto_fmt);
      }//for(2)
   }//for(1)
   _root.fila_correcta = fila;
   _root.columna_correcta = columna;
}

//elimino los campos
function eliminar_campos() {
   for (var prop in this) {//for(3)
      if (this[prop] instanceof TextField) {//if(2)
         var texto_txt:TextField = this[prop];
         if (texto_txt._name != "num2_txt" && texto_txt._name != "num1_txt") {//if(3)
            texto_txt.removeTextField();
         }
         //if(3) 
      }
      //if(2) 
   }//for(3)
}

//crea los botones necesarios
function crea_botones() {
   for (i = 0; i < n_filas; i++) {//for(4)
      p_y = Number(posicion_y + (i * (alto_texto + 20)));
      for (j = 0; j < n_columnas; j++) {//for(5)
         p_x = Number(posicion_x + (j * (ancho_texto + 20)));
         nombre_boton = "b" + i + j + "_mc";
         duplicateMovieClip(b0_mc, nombre_boton, this.getNextHighestDepth());
         setProperty(nombre_boton, _x, p_x);
         setProperty(nombre_boton, _y, p_y);
         setProperty(nombre_boton, _height, alto_texto);
         setProperty(nombre_boton, _width, ancho_texto);
      }
   }
}


//Acciones para el boton que genera un nnuevo juego
_root.j_otro_btn.onRelease = function() {
   _root.respuesta_correcta = crea_operacion();
   eliminar_campos();
   crea_campos();
   crea_botones();
};

//inicializo
_root.respuesta_correcta = crea_operacion();
crea_campos();
crea_botones();

Claro esta teniendo en cuenta el pequeño detalle de que, no se que freddy :roll: le metio la mano a esto y ahora aparecen las comillas dobles con el caracter de escape es decir si aparece una comilla doble con un backslash antes. En ese caso quitar el backslash.

Espero que este código y el archivo te sirva de referencia.

Por esutoraiki

Claber

548 de clabLevel

4 tutoriales

Genero:Masculino  

Aplicaciones para Web

opera
Citar            
MensajeEscrito el 02 May 2008 11:08 am
kuky

Hola man!!!, ahora bien, estas son las sugerencias:

- En la función en la que creas las pizarras en mi opinión es recomendable asignarle los valores.
- Localiza primero una posición aleatoria en donde vas a poner el resultado de manera correcta, así puedes anexar despues valores aleatorios en el resto de posiciones
- Crea los botones con los cuales puedes hacer la selección aparte
- No le pongas un diseño rigido de fondo, ya que si cambias el numero de pizarras se vería descuadrado con respecto a ese diseño.
- Para detectar si el usuario presiono la respuesta correcta, es altamente sugerible, no hacer la comparación con el valor de la casilla sino con que casilla presiono, es decir si localizas primero la posición donde va la respuesta, pues esa misma posición te sirve de referente para determinar si el usuario escogio la respuesta correcta.

Básicamente, esas son mis sugerencias al respecto, espero que sto más el ejemplo que te fabrique te den más luces en la idea.

No le fabrique la función que detecta en que casilla presiono el usuario, y si es la respuesta correcta, ya que la idea es que este ejemplo sea una ayuda, más no hacer en la totalidad el proyecto. :evil:

Por esutoraiki

Claber

548 de clabLevel

4 tutoriales

Genero:Masculino  

Aplicaciones para Web

opera
Citar            
MensajeEscrito el 02 May 2008 11:10 am
Otro consejo, No uses el maligno (Internet Explorer), ay mejores navegadores y gratuitos

Por esutoraiki

Claber

548 de clabLevel

4 tutoriales

Genero:Masculino  

Aplicaciones para Web

opera
Citar            
MensajeEscrito el 03 May 2008 02:48 am
A la pelotita.......que codigazo amigo!!!! :D
Voy a tratar de seguir los consejos que me diste.Baje bien el archivo pero no lo pude abrir en flash 8, debe ser CS3, gracias igual,por brindarme un poco de tu tiempo.

Un abrazo.

Por kuky

50 de clabLevel



 

Argentina

msie7
Citar            
MensajeEscrito el 03 May 2008 07:35 pm

Por esutoraiki

Claber

548 de clabLevel

4 tutoriales

Genero:Masculino  

Aplicaciones para Web

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.