Bennu Game Development

Foros en Español => Sugerencias => Topic started by: josebita on July 13, 2012, 11:10:28 AM

Title: Operador "in" de Python
Post by: josebita on July 13, 2012, 11:10:28 AM
Últimamente estoy haciendo algunas cosillas en python y una cosa que encuentro que es muy útil es el operador in.
La forma en que funciona es que busca elementos dentro de elementos más grandes. Por ejemplo:
"Hello" in "Hello, World!"   ----->  TRUE
"Hi" in "Hello, World!"        ------> FALSE

pero también
3 in [1, 2, 3, 4]    -----> TRUE
5 in [1, 2, 3, 4]    -----> FALSE


Evidentemente esto se puede hacer con unas funcioncillas simples en bennu, pero la verdad dado que es algo relativamente común de hacer, tener el operador directamente ahorra un montón de código y aporta claridad.

¿Sería posible hacer algo así en Bennu?
Title: Re:Operador "in" de Python
Post by: KeoH on July 13, 2012, 11:18:31 AM
Eso lo comenté hace tiempo xD http://forum.bennugd.org/index.php?topic=2732.0 (http://forum.bennugd.org/index.php?topic=2732.0)
Title: Re:Operador "in" de Python
Post by: KeoH on July 13, 2012, 11:22:16 AM
Anoche precisamente estaba pensando en este operador para Bennu .. porque tenia una tabla de 400 elementos .. donde queria sacar en otra tabla los elementos sin repetir xD y este operador me habria servido xDD todavia no se como plantearlo xDD hasta las 4 de la mañana me pegué pa no sacarlo xDD
Title: Re:Operador "in" de Python
Post by: josebita on July 13, 2012, 01:26:14 PM
¡Ay, perdona! ahora recuerdo haberlo visto. ¡Apoyo tu petición :) !
Además de para lo que comentabas, el operador vale para cosas como leer contenidos de ficheros y cargarlos a memoria sin duplicados:

value = fgets(fd);
if !(value in list)
    list[n++] = value;
end

O, por ejemplo, para guardar una lista de niveles a los que el usuario puede jugar porque ha desbloqueado los logros adecuados:
for(i=1; i<=MAX_LEVELS; i++)
    if(i in unlocked_levels)
        display_unlocked(i);   <--- Muestra el nivel en el selector de niveles de forma que el usuario lo pueda seleccionar.
    else
         display_locked(i);      <---- Lo muestra de forma que el usuario no lo pueda seleccionar.
    end
end

Y cosas así.

Como digo, no aporta nada que ahora mismo no se pueda hacer, pero sí que simplifica la vida al programador.
Title: Re:Operador "in" de Python
Post by: KeoH on July 13, 2012, 03:58:47 PM
Te comprendo perfectamente xDDD
Title: Re:Operador "in" de Python
Post by: SplinterGU on July 13, 2012, 07:37:40 PM
Quote from: josebita on July 13, 2012, 11:10:28 AM
Últimamente estoy haciendo algunas cosillas en python y una cosa que encuentro que es muy útil es el operador in.
La forma en que funciona es que busca elementos dentro de elementos más grandes. Por ejemplo:
"Hello" in "Hello, World!"   ----->  TRUE
"Hi" in "Hello, World!"        ------> FALSE

pero también
3 in [1, 2, 3, 4]    -----> TRUE
5 in [1, 2, 3, 4]    -----> FALSE


Evidentemente esto se puede hacer con unas funcioncillas simples en bennu, pero la verdad dado que es algo relativamente común de hacer, tener el operador directamente ahorra un montón de código y aporta claridad.

¿Sería posible hacer algo así en Bennu?


podes usar las funciones de busqueda (cadenas y numeros, segun el caso)
Title: Re:Operador "in" de Python
Post by: josebita on July 13, 2012, 07:45:08 PM
Quote from: SplinterGU on July 13, 2012, 07:37:40 PM
podes usar las funciones de busqueda (cadenas y numeros, segun el caso)
Sí, claro. Pero el operador puede ahorrar código y como concepto creo que es más simple.
Title: Re:Operador "in" de Python
Post by: SplinterGU on July 13, 2012, 07:46:24 PM
no lo dudo, prefiero concentrar esfuerzos en tener opengl o incluso otros ports...
Title: Re:Operador "in" de Python
Post by: josebita on July 13, 2012, 07:50:32 PM
Quote from: SplinterGU on July 13, 2012, 07:46:24 PM
no lo dudo, prefiero concentrar esfuerzos en tener opengl o incluso otros ports...
Parece razonable :)
Title: Re:Operador "in" de Python
Post by: SplinterGU on July 13, 2012, 09:06:03 PM
eso espero... :)