Hace 13 años | Por NormaJean a romancortes.com
Publicado hace 13 años por NormaJean a romancortes.com

A base de pinceladas, ejes axiales, transparencias y vectores, se ha obtenido un diminuto árbol navideño que apenas ocupan bites. El navegador en el que mejor funciona es "Chrome". No va en internet explorer.

Comentarios

e

#1 Nos has rickrolleado de la forma menos esperada en tu último enlace de relacionados! jajaja. Eso si que es una buena forma de felicitarnos las fiestas!

D

#28 Felicidades por tu magnífico trabajo.

zahir147

Eres un crack! #28 , pero lo que hasta ahora me pregunto es cómo en esa misma competición en versión anterior hicieron un Ajedrez en 1kb con js!

D

#30 Lee aquí: http://nanochess.110mb.com/chess4_es.html

La verdad es que es el juego de ajedrez es alucinante. En la parte visual colaboré muy muy levemente, aunque no creo que sea ni digno de mención, todo el mérito ha de ser para Óscar Toledo.

En la parte visual, es más fácil de lo que pueda aparentar, gracias a que hay piezas de ajedrez como caracteres Unicode. Creo que en total la interfaz visual ocupaba unos 200 bytes o así.

Luego, para que el juego juegue no es tan sencillo. Por un lado has de tener la posición inicial de las piezas en el tablero, una valoración aproximada del valor de cada pieza y si la pieza es blanca o negra. Por muy compacto que lo hagas, entre los datos y la forma de acceder a ellos, como mínimo se van unos 100 bytes... y el juego aún no juega.

Las reglas de juego más comunes se pueden más o menos compactar. Por ejemplo, una dama hace el mismo movimiento que una torre y un álfil, el rey el mismo movimiento que una dama, pero moviendo sólo a las casillas más cercanas. El caballo tiene movimientos especiales y probablemente hay que tratarlo como caso aparte. Los movimientos más raros son los del peón, que tiene dos pasos, uno hacia alante en cualquier momento, coronación, comer al paso. Y también el enroque, que es especialmente raro y necesita comprobar que las torres no hayan sido movidas antes, que no haya jaque en mitad, etc...

El juego de Óscar tiene reglas parciales, no es un ajedrez completo. No tiene enroque, la coronación es simpre a dama y no hay comer al paso. Quitando estas reglas, no es que se vuelva especialmente sencillo compactarlo todo en los ~700 bytes restantes, pero definitivamente más factible que con el ajedrez completo.

Lo que sí que ocupa bastante poco es el algoritmo de inteligencia artificial empleado. Si no me equivoco, es un minimax con profundidad fija (4 ply, creo), y no creo que esa parte ocupe más de 100 o 200 bytes...

En fin, el juego es maravilloso... lo que me asusta pensar es en la cantidad de horas que se puede haber tomado para el desarrollo...

D

#28 No hace falta que lo jures: @texeltexel

Deberías tener cuidado y respetar las normas: http://www.meneame.net/legal.php#tos

Tras el rapapolvo, felicitarte por tu creatividad y espero que nos sigas enseñando mas cosillas chulas. El árbol de navidad no he podido visualizarlo, por que mi ordenador se queda corto de cpu:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1570 jose 20 0 368m 182m 28m R 98 18.4 11:13.09 firefox-bin

Aun así, si he visto el código y los gif animados y me ha gustado mucho. Sigue así. Un saludo.

D

#35 Efectivamente, aprendí cómo iba Menéame cuando empecé con el blog y a enviar mis propias cosas; pensaba que no era problema, fue "la novatada". Si te fijas son cosas de 2008... Ahora que ya conozco la mecánica del sitio, la verdad es que la sigo siempre y me parece excelente.

s

#17 Tuesta el procesador.

Yo programo en Actionscript y javascript. Eso mismo, echo con actionscript, no creo que tueste el procesador ni la mitad. No tengo tiempo para traducirlo pero no debería ser muy complicado. Idear el código, claro, tiene mucho mérito.

Acabo de leer a #28. Deduzco que se basará en fractales el árbol no?

D

#38 No, no son fractales. Si lees el post explicativo, verás que simplemente son ramas que salen desde el eje central. Cada rama sale en una dirección aleatoria de forma perpendicular a dicho eje, y su longitud es proporcional a la distancia del origen de la rama a la copa del árbol. Cada rama, durante su trayectoria, es doblada levemente y aleatoriamente, para que las ramas no sean totalmente rectas y parezca más real. El resultado sí que es muy similar a un fractal, pero no lo es dado que no tiene la propiedad de auto-similitud a escala.

Y respecto a si sería más rápido en Actionscript que en Javascript, es posible, pero no creo que se pueda conseguir una gran diferencia de velocidad respecto al resultado con Chromium 9. En números, y suponiendo que hablamos de software rendering:

- Hay unos 2500 sprites
- Cada sprite es de 32x32 píxeles RGBA, es decir, 4kb
- El total de datos a dibujar es de 10 megas
- El total de datos a leer para realizar el blending con la capa alpha es de 10 megas
- Por tanto, en cada frame gastamos 20 megas de ancho de banda

En mi ordenador la velocidad de renderizado es aproximadamente 25 imágenes por segundo, por tanto está usando 500 megas por segundo. La velocidad máxima teórica de mi ram es de 4 gigas por segundo, en la práctica es extremadamente difícil de alcanzar más de 2 gigas por segundo con algo que no sea simplemente leer datos de forma lineal.

Por tanto, en el mejor de los casos se podría conseguir que renderizase unas 4 veces más rápido, y tendría que ser código nativo ejecutable optimizado al máximo para el efecto. SIMD y precaching obligatorio para poner a la memoria a esa velocidad.

Flash, por muy rápido que sea, no puede llegar a esos niveles, así que como máximo podría ir quizás al doble de velocidad... y eso con suerte. Te doy la razón en que estaría interesante probarlo y ver qué tal.

D

#2 "Pronto ya no habrá kb. Y lloraremos."

Si se acaban, ya plantaremos más.

D

Feliz navidad a todos.

e

Mi procesador colapsó soy el único?

D

#17 prueba en chrome y ya verás, como la seda.
A mí casi me peta firefox, pero en chrome fluido desde el primer segundo

k

#17 #18 Idem, Firefox 3.5 y Epiphany petan, chrome y rekonq van de PTM

frankiegth

En Firefox v3.6.13 funciona perfectamente.

akerbeltz

#31 ¿Lo has probado en Chrome? Yo también pensaba que funcionaba perfectamente hasta que lo he visto en Chrome...

j

#31 Firefox 3.6 lento y a tirones, Chrome, rápido y fluido.

frankiegth

Para #41. En mi viejo Pentium 4 a 2 Gigahercios funciona perfectamente con Firefox v3.6.

j

#42 ¿comparaste los dos? porque yo he vuelto a hacer la prueba y va más rápido en chrome. Mozilla 3.6.13 y Chrome 8.0

glezjor

Si toda la parafernalia de navidades y fiestas semejantes sueles ser kitsch, este arbolito lo es particularmente

Gaiden

Buscad alguna demo 4k de la demoscene y caeros de culo si de verdad os impresiona ese arbol de navidad..

D

#8 Esta misma, por ejemplo



También había un concurso de programación en Javascript - http://wildmag.de/compo/ - cuyo límite eran 256 bytes, lamentablemente eso fue en el 2002 y la mayoría de las entradas solo funcionaban en ie6. Con la salida de HTML5 y canvas a escena la verdad es que abren muchas más posibilidades y estaría bien que se volvieran a organizar concursos de esa índole.

j

#8 Hombre, no tiene nada que ver hacer una demo con JavaScript que con C/C++... pero nada, vamos.

#9 Seguramente lo sabes, pero por si acaso. Esa demo lo que hace es animar llamas fractales (un tipo de fractal que es un IFS no lineal, inventado por Scott Draves). Si te gusta, el salvapantallas Electric Sheep (http://community.electricsheep.org/samples) te encantará (supongo)

c

#8 Las demos de los concursos de la scene suelen medir el tamaño del ejecutable, mientras que en este caso el tamaño era el del código fuente, que creo que tiene más mérito, ya que al fin y al cabo el nombre que utilices en el código de un programa compilado es indiferente para el tamaño del binario final, mientras que en el concurso de javascript influye enormemente.

z

En Opera 11 va como un tiro.

ajripa

Ops! Me va mejor en Safari.

D

En Konqueror no va, sólo sale la imagen estática del árbol, pero en Firefox sí va.

Engel_des_Chaos

me pone la CPU al 25% lol (IntelR CoreTM i5 750 x267 GHz)

fooBar

...que apenas ocupan bites.
Serán bytes, digo yo...

D

#3 o bits

DaniTC

#3 #5 Supongo que si en español (al igual que en inglés) es bit, su plural es bites. Es un caso similar a la palabra "robot", que el plural es robotes.

D

#5 o en aleman biten lol

Tom__Bombadil

#3 ¿Y qué es un byte sino ocho bits?

oci0

El árbolito precioso pero el código enrevesado para mi nivel de javascript...

P

El arbolito es muy mono pero la nieve del fondo sobra!

D

¿felices fiestas? ¿qué es eso?

David_VG

#11 Un deseo de que el período de fiestas que hay en los próximos días sean felices para los que reciben el mensaje.

¿O crees que esto va por necesidad del nacimiento de alguien?

D

#12 ¿O crees que esto va por necesidad del nacimiento de alguien?

Afortunadamente no son mis fiestas; son otras. Es bueno que se separe lo que son las fiestas de lo que es la verdadera navidad en Cristo.

D

Pues no se si hay crisis o no pero yo se que este año estoy sin trabajo y los canapes seran de pate del barato , mientras algunos comeran caviar irani , langosta , salmon fume , champagne frances y demas delicatessen

D

#21 Conclusión: crea un negocio de importación de toda esa mierda de lujo.