Autor Tema: [F1] optimizando el codigo, jugando con AS3  (Leído 2883 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado salvadoresc

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 11652
  • Adobe Certified Expert en ACISEAPRENDE
    • Foro de Diseno - Pixeles al Desnudo
[F1] optimizando el codigo, jugando con AS3
« : enero 19, 2011, 08:44:02 pm »
resulta que me puse a jugar un rato con flash  :D y estoy travesenadolo la cosa es, que ahorita me enfrento a un dilema, ya que tengo dos variables, las cuales cada una puede tener valores desde cero hasta 4. y segun los valores de estas dos variables puedo tener diferentes combinaciones, que segun la combinacion me deberian asignar 8 diferentes resultados.

la cosa que he hecho una serie de decisiones para poder determinar cual combinacion es la que tengo y lo trate de hacer asi:

Código: [Seleccionar]
if (erv == 0 && env == 0) {
puntosPares=2;
}
if (erv == 0 && env == 1 || env == 2 || env == 3 || env == 4  ) {
puntosPares=3;
}
if (erv == 1 && env == 0 ) {
puntosPares=4;
}
if (erv == 2 && env == 0 ) {
puntosPares=5;
}
if (erv == 1 ||  erv == 2 && env == 3 || env == 4 ) {
puntosPares=6;
}
if (erv == 3 ||  erv == 4 && env == 0 || env == 1 || env == 2 ) {
puntosPares=7;
}
if (erv == 1 ||  erv == 2 && env == 1|| env == 2 ) {
puntosPares=8;
}
if (erv == 3 ||  erv == 4 && env == 3 || env == 4 ) {
puntosPares=9;
}

asi deberian de ser las asignaciones de valores
Citar
var1              var2                 resultado
0                    0                     1
0                 1,2,3,4               2
1                       0                  3
2                        0                4
1,2                   3,4                5
3,4                 0,1,2               6
1,2                  1,2                 7
3,4                  3,4                 8

pero de la forma en que lo tengo si selecciono la combinacion 1,0  puntosPares me devuelve 8  :sorry:
estaba pensando modificarlo y evaluar en if separados por ejemplo asi:
Código: [Seleccionar]
if (erv == 1 ||  erv == 2 ) {
if (env == 1 || env == 2 ) {
puntosPares=8;
}
}

que opinan? cual podría ser la mejor manera de evaluar estas condiciones?
Awaken my child, and embrace the glory that is your birthright. Know that I am the Overmind; the eternal will of the Swarm.

haycoctelesamor.com

Desconectado salvadoresc

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 11652
  • Adobe Certified Expert en ACISEAPRENDE
    • Foro de Diseno - Pixeles al Desnudo
Re: [F1] optimizando el codigo, jugando con AS3
« Respuesta #1 : enero 19, 2011, 10:53:11 pm »
me respondo a mi mismo  :rofl:

bueno no exactamente, como mencione antes combinar los IF me funciono, siento que quizas podria haber sido mas eficiente pero al menos me funciono  :D
Código: [Seleccionar]
if (erv == 0 && env == 0) {
puntosPares=2;
}
if (erv == 0  ) {
if(env == 1 || env == 2 || env == 3 || env == 4){
puntosPares=3;
}
}
if (erv == 1 && env == 0 ) {
puntosPares=4;
}
if (erv == 2 && env == 0 ) {
puntosPares=5;
}
if (erv == 1 ||  erv == 2  ) {
if(env == 3 || env == 4){
puntosPares=6;
}
}
if (erv == 3 ||  erv == 4 ) {
if(env == 0 || env == 1 || env == 2){
puntosPares=7;
}
}

if (erv == 1 ||  erv == 2  ) {
if( env == 1|| env == 2){
puntosPares=8;
}
}
if (erv == 3 ||  erv == 4  ) {
if(env == 3 || env == 4){
puntosPares=9;
}
}

gracias a los que leyeron  :thumbsup: igual si consideran alternativas, ponganlas.  :sur:
Awaken my child, and embrace the glory that is your birthright. Know that I am the Overmind; the eternal will of the Swarm.

haycoctelesamor.com

Desconectado Ideas

  • Sv Member
  • ***
  • Mensajes: 315
  • Jujuy huyo con mis riguas!!
Re: [F1] optimizando el codigo, jugando con AS3
« Respuesta #2 : enero 19, 2011, 11:58:25 pm »
Código: [Seleccionar]
combinacion(4,3);

function combinacion(ev:Number, en:Number)
{
switch (ev)
{
case 0:
if (en == 0)
{
trace("Puntos Pares 1");
}
if (en != 0)
{
trace("Puntos Pares 2");
}
break;

case 1:
if(en== 0)
{
trace("Puntos Pares 3");
}
if(en==1 || en==2)
{
trace("Puntos 7");
}
if(en>2)
{
trace("Puntos 5");
}
break;

case 2:
if(en==0)
{
trace("Puntos 4");
}
if(en==1 || en==2)
{
trace("Puntos 7");
}
if(en>2)
{
trace("Puntos 5");
}
break;

case 3:
case 4:
if(en <=2)
{
trace("Puntos 6");
}
if(en >=3)
{
trace("Puntos 8");
}
break;

}
}


Esta anterior en un bucle de 100000 repeticiones me genera 387ms vs 420ms de los if.

ó


Código: [Seleccionar]
function combinacion(ev:Number, en:Number)
{
switch (ev)
{
case 0:
switch(en)
{
case 0:
trace("Puntos 1");
break;
case 1: case 2: case 3: case 4:
trace("Puntos 2");
break;
}
break;

case 1:
switch(en)
{
case 0:
trace("Puntos 3");
break;
case 1: case 2:
trace("Puntos 7");
break;
case 3: case 4:
trace("Puntos 5");
break;
}
break;

case 2:
switch(en)
{
case 0:
trace("Puntos 4");
break;
case 1: case 2:
trace("Puntos 7");
break;
case 3: case 4:
trace("Puntos 5");
break;
}
break;

case 3: case 4:
switch(en)
{
case 0: case 1: case 2:
trace("Puntos 6");
break;
case 3: case 4:
trace("Puntos 8");
break;
}
break;
}
}



« Última Modificación: enero 20, 2011, 12:13:58 am por Ideas »
Juass

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: [F1] optimizando el codigo, jugando con AS3
« Respuesta #3 : enero 20, 2011, 12:51:42 pm »
Código: [Seleccionar]
combinacion(4,3);

function combinacion(ev:Number, en:Number)
{
switch (ev)
{
case 0:
if (en == 0)
{
trace("Puntos Pares 1");
}
if (en != 0)
{
trace("Puntos Pares 2");
}
break;

case 1:
if(en== 0)
{
trace("Puntos Pares 3");
}
if(en==1 || en==2)
{
trace("Puntos 7");
}
if(en>2)
{
trace("Puntos 5");
}
break;

case 2:
if(en==0)
{
trace("Puntos 4");
}
if(en==1 || en==2)
{
trace("Puntos 7");
}
if(en>2)
{
trace("Puntos 5");
}
break;

case 3:
case 4:
if(en <=2)
{
trace("Puntos 6");
}
if(en >=3)
{
trace("Puntos 8");
}
break;

}
}


Esta anterior en un bucle de 100000 repeticiones me genera 387ms vs 420ms de los if.

ó


Código: [Seleccionar]
function combinacion(ev:Number, en:Number)
{
switch (ev)
{
case 0:
switch(en)
{
case 0:
trace("Puntos 1");
break;
case 1: case 2: case 3: case 4:
trace("Puntos 2");
break;
}
break;

case 1:
switch(en)
{
case 0:
trace("Puntos 3");
break;
case 1: case 2:
trace("Puntos 7");
break;
case 3: case 4:
trace("Puntos 5");
break;
}
break;

case 2:
switch(en)
{
case 0:
trace("Puntos 4");
break;
case 1: case 2:
trace("Puntos 7");
break;
case 3: case 4:
trace("Puntos 5");
break;
}
break;

case 3: case 4:
switch(en)
{
case 0: case 1: case 2:
trace("Puntos 6");
break;
case 3: case 4:
trace("Puntos 8");
break;
}
break;
}
}

Yo lo haría así:

Código: [Seleccionar]
var resultado:Array = Array();
resultado[0] = [1,2,2,2,2];
resultado[1] = [3,7,7,5,5];
resultado[2] = [4,7,7,5,5];
resultado[3] = [6,6,6,8,8];
resultado[4] = [6,6,6,8,8];

Para obtener las respuestas:
Código: [Seleccionar]
nuevoValor = resultado[var1][var2];

Y te garantizo que aunque el memory footprint del mío es más grande, la ejecución es más rápida jijijijiji
« Última Modificación: enero 20, 2011, 03:47:26 pm por mxgxw »


Desconectado hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 3345
Re: [F1] optimizando el codigo, jugando con AS3
« Respuesta #4 : enero 20, 2011, 01:25:22 pm »
Yo lo haría así:

Código: [Seleccionar]
var resultado:Array = Array();
resultado[0] = [1,2,2,2,2];
resultado[1] = [3,7,7,5,5];
resultado[2] = [4,7,7,5,5];
resultado[3] = [6,6,6,8,8];
resultado[4] = [6,6,6,8,8];

Para obtener las respuestas:
Código: [Seleccionar]
nuevoValor = resultado[var1][var2];

Y te garantizo que aunque el memory footprint del mío es más grande, la ejecución es más rápida jijijijiji

Menos codigo = mas legible y mas mantenible...quedate con esta opcion salvadoresc  :thumbsup:
« Última Modificación: enero 20, 2011, 03:48:03 pm por mxgxw »

Desconectado salvadoresc

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 11652
  • Adobe Certified Expert en ACISEAPRENDE
    • Foro de Diseno - Pixeles al Desnudo
Re: [F1] optimizando el codigo, jugando con AS3
« Respuesta #5 : enero 20, 2011, 01:43:44 pm »
excelente  con el detalle que te decia que ahi falta el cuarto valor de la variable uno pero se arregla facil por que es exactamente los mismos resultados de la 3 asi que o se agrega o si hay un cuatro se le resta uno XD da igual. pero si creo que vamos a modificar esto, igual tengo que hacerle unos ligeros cambios cosmeticos al FLA. de momento estoy esperando que me instalen la CS5 por que mi lenovo cayo en combate =/

Awaken my child, and embrace the glory that is your birthright. Know that I am the Overmind; the eternal will of the Swarm.

haycoctelesamor.com

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: [F1] optimizando el codigo, jugando con AS3
« Respuesta #6 : enero 20, 2011, 03:44:21 pm »
excelente  con el detalle que te decia que ahi falta el cuarto valor de la variable uno pero se arregla facil por que es exactamente los mismos resultados de la 3 asi que o se agrega o si hay un cuatro se le resta uno XD da igual. pero si creo que vamos a modificar esto, igual tengo que hacerle unos ligeros cambios cosmeticos al FLA. de momento estoy esperando que me instalen la CS5 por que mi lenovo cayo en combate =/

Sorry no me fije ya lo arreglo fksajdfhkjfsa


Desconectado salvadoresc

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 11652
  • Adobe Certified Expert en ACISEAPRENDE
    • Foro de Diseno - Pixeles al Desnudo
Re: [F1] optimizando el codigo, jugando con AS3
« Respuesta #7 : enero 21, 2011, 04:46:18 pm »
ya lo implemente y quedo nice, solo encontre un ligero error:

en as hay que usar el constructor new para construir el arreglo XD
Código: [Seleccionar]
var resultado:Array = new Array();
encontre otros errorcitos que tenia por otro lado y ya estamos hoy sigo agregando mas tonteras ><
Awaken my child, and embrace the glory that is your birthright. Know that I am the Overmind; the eternal will of the Swarm.

haycoctelesamor.com