Constantes

Started by scuws, April 26, 2010, 07:54:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Windgate

Quote from: DCelso on April 27, 2010, 12:07:08 AM
wind, sí que llevan tipo, lo que pasa es que bennu por defecto usa int. Prueba a crear una constante de una cadena e imprimirla sin poner string.

Sí que llevan tipos de dato predefinidos como string, char, float e int, pero no es posible definir constantes para estructuras, vectores, etc. A eso me refería, ya me he encontrado proyectos en los que interesaría tener un vector de enteros protegido frente a manazas :P

Nada, es una simple sugerencia para la 2.0
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

si, llevan tipos... la cosa es que las constantes no son variables... son como defines de datos, pero con tipo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

pues si llevan tipos la wiki está mal, Splinter me gustaría que me pusieras exactamente cómo se usan las constantes, diferencias con #defines y cuando usar una u otra constante para documentar la wiki corretamente, gracias.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Rein (K´)ah Al-Ghul

creo q lo q dice splinter es que las constantes se adapatan al tipo de dato cuando son declaradas...

Const
numeroEntero = 15347;
CadenaDeCaracteres = "...";
NumeroFlotante = 12.54;
END

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

Windgate

Sí, eso es lo que quiere decir. No es necesario prefijarlas con int ni nada parecido, se adaptan al tipo del dato que se les asigna siempre que sea un tipo de dato predefinido.

La verdad es que sobre constantes no hay mucho que discutir, tal y como están ahora mismo son simples y funcionales.

En cuanto a la diferencia entre DEFINE y CONST: Con DEFINE es posible declarar un "patrón" de sintaxis, de forma que por ejemplo puedas definir la función

#define write_simple ( a ) write ( 0 , 0 , 0 , 0 , a );

Y por ahí abajo se ha dicho que CONST sustituye en ejecución mientras que DEFINE sustituye durante la compilación. Qué friki es este lenguaje joder...
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

DCelso

eso lo dije yo y ahora lo dudo, Splinter podrá resolvernos la duda.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

Quote from: Rein (K´)ah Al-Ghul on April 27, 2010, 06:49:51 PM
creo q lo q dice splinter es que las constantes se adapatan al tipo de dato cuando son declaradas...

Const
numeroEntero = 15347;
CadenaDeCaracteres = "...";
NumeroFlotante = 12.54;
END



como tambien se adaptan las variables...

como dice wind, defines permite declarar patrones de reemplazo... las constantes, me referia a que se comportan como un define, pero a nivel de poner un valor fijo. No son variables dentro del dcb.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Mr Matsusaka

Ya que se esta tratando el tema de la compilacion de constantes me gustaria preguntar... ¿se ofuscar el codigo?
En caso negativo, ¿existe la opcion?

Windgate

Quote from: Mr Matsusaka on April 27, 2010, 09:59:48 PM
Ya que se esta tratando el tema de la compilacion de constantes me gustaria preguntar... ¿se ofuscar el codigo?
En caso negativo, ¿existe la opcion?

Si te refieres a distribuir el juego sin el código abierto, puedes distribuir sólo el .dcb ya compilado para que sólo se interprete, aunque esa práctica la considero un poco... Gay ;D

Yo que soy así :P
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Mr Matsusaka

Quote from: Windgate on April 27, 2010, 10:31:48 PM
Quote from: Mr Matsusaka on April 27, 2010, 09:59:48 PM
Ya que se esta tratando el tema de la compilacion de constantes me gustaria preguntar... ¿se ofuscar el codigo?
En caso negativo, ¿existe la opcion?

Si te refieres a distribuir el juego sin el código abierto, puedes distribuir sólo el .dcb ya compilado para que sólo se interprete, aunque esa práctica la considero un poco... Gay ;D

Yo que soy así :P

Yo solo quiero ofuscar para reducir el tamaño del dcb
El prg se puede distribuir aunque ofusques el dcb

Windgate

Oh ya entiendo... Te refieres al renombrado automático de funciones, variables, etc. a nombres más cortos, ¿No?

Quizás con algún parámetro del bgdc, lo sabrá mejor Splinter... Yo ni idea
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

no entiendo...

ofuscar o comprimir?

codigo o dcb?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Mr Matsusaka

Quote from: SplinterGU on April 28, 2010, 01:07:42 PM
no entiendo...

ofuscar o comprimir?

codigo o dcb?

En mi anterior curro hacia juegos de movil, y alli el ofuscador era importantisimo para conseguir jars de tamaño minusculo corriendo en moviles. Al menos hasta donde yo entiendo, ofuscacion es tambien compresion de datos, pues se cambian todas las variables por letras y numeros cortisimos, reduciendo considerablemente el codigo. Aparte de eso hay luego ofuscadores que ademas te quitan codigo innecesario (comentarios, ifs vacios, variables que no se usan) reduciendo el codigo muchisimo.

Todo esto se guarda en el jar, el codigo original se queda tal cual.
Lo que estaria genial seria conseguir un dcb reducidisimo tras haber compilado con ofuscacion.
De todos modos entiendo que en proyectos de pc no sea necesario nada similar, pues no estamos tan limitados en cuanto a espacio en disco, aunque tal vez para GP2X/Wiz si vendria de lujo ahorrar un poquito de espacio.

SplinterGU

para bennu no hay nada...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Hombre, creo que los nombres de variables y eso en el DCB no se guardan, sino referencias a direcciones de memoria de la zona reservada a contener tales cosas. Ya lo de quitar código inservible y demás ya es trabajo del programador, por eso los programadores de java se han llevado la fama de "vagos" y el lenguaje de "hacer cosas innecesarias si el programador es más o menos decente".
Ademas, me parece que java usa código en plan scripts (texto plano), bennu usa un fichero binario.
Aparte de eso, no se si el compilador hace alguna optimización similar a C o no, pero ¿el DCB va comprimido con la ZLIB? Para Bennu los ficheros con este formato de compresión son transparentes (salvo con FREAD/FWRITE, que es manual).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)