El Gambito de 1 Kilobyte

Gambito de Dama, la serie de ficción de Netflix sobre una increíble jugadora de ajedrez, ha sido un éxito arrollador que aún perdura. Desde su lanzamiento a finales del pasado año, fue uno de esos feńomenos que traspasan fronteras y, por supuesto, todas las expectativas que en ella tenía puesta su propia distribuidora.

Gambito de Dama no fue solo una de las series más vistas y aclamadas del año: hace poco se convertía en una de las triunfadoras en la última edición de los Globos de Oro, recibiendo premios a la mejor serie limitada y a la mejor actriz protagonista para Anya Taylor-Joy. Pero llegó mucho más allá de eso.

La serie renovó el interés por el noble juego del ajedrez como no se recordaba: gente queriendo aprender a jugar, la venta de juegos aumentó, crecieron los usuarios de portales de Internet. Tampoco faltaron -y más que van a haber- tableros de ajedrez al estilo del de la serie y otro tipo de productos relacionados que han salido a la venta.

Asimismo, ha sido la inspiración para que desarrolladores creen sus propios juegos de ajedrez basados en la serie. Es el caso de The Kilobyte’s Gambit, un entretenimiento mínimo al extremo cuyo reto es desafiante: ¿puedes superar a 1024 bytes de JavaScript? No digas que sí muy rápido, por si acaso.

Este juego, para nada oficial, es un juego de ajedrez como hay cientos, con la particularidad del tema que toma como referencia y de que es extremadamente sencillo en apariencia: estilo retro Pixel Art, un único modo de juego (el usuario contra la máquina), todo funciona a base de clics, no se pude arrastrar y soltar…

En The Kilobyte’s Gambit, la partida la juegas contra la mismísima Beth Harmon, personaje protagonista de Gambito de dama, aunque lo cierto es que te vas a enfrentar a 1024 bytes de JavaScript… Ni siquiera a eso, de hecho, pues eso es lo que pesa el juego al completo; el motor, desarrollado por el programador mexicano Óscar Toledo, pesa tan solo 1K.

Y bien: ¿puedes superar a 1024 bytes de JavaScript? Puedes probarlos desde cualquier navegador en móvil o PC en esta página.

En la página pueden leer sobre como esta hecho y funciona. Pero puedo adelantarles el código del “motor” de juego:

for(B=y=u=b=0,x=10,z=15,I=[],l=[];l[B]=(“ustvrtsuqqqqqqqq”+”yyyyyyyy}{|~z|{}@G@TSb~?A6J57IKJT576,+-48HLSUmgukgg OJNMLK IDHGFE”).charCodeAt(B)-64,B++<120;I[B-1]=B%x?B/x%x<2|B%x{c^=8;for(var T,o,L,E,D,O=20,G,N=-1e8,n,g,d=S&&X(c,0)>1e4,C,R,A,K=78-h<<9,a=c?x:-x;++O<99;)if((o=I[T=O])&&(G=o&z^c)<7){A=G–&2?8:4;C=9-o&z?l[61+G]:49;do{R=I[T+=l[C]];g=D=G|T+a-e?0:e;if(!R&&(G||A9&&G|A>2){if(!(2-R&7))return K;for(E=n=G|I[T-a]-7?o&z:6^c;E;E=!E&&!d&&!(g=T,D=T<O?g-3:g+2,I[D]<z|I[D+O-T]|I[T+=T-O])){L=(R&&l[R&7|32]*2-h-G)+(G?0:n-o&z?110:(D&&14)+(Ah||12|d){I[T]=n,I[g]=I[D],I[O]=D?I[D]=0:0;L-=X(c,h+1,E=G|A>1?0:T,S,L-N);if(!(h||S-1|B-O|T-b|L<-1e4))return W(I,B=b,c,y=E);E=1-G|A<7|D|!S|R|o1e4;I[O]=o;I[T]=R;I[D]=I[g];D?I[g]=G?0:9^c:0}if(L>N||!h&L==N&&Math.random()1)if(h?s-L2||(T=O,G|A>2|z<o&!R&&++C*–A))}return-K+768{X(8,0,y,V);X(8,0,y,1)};Z=(U)=>{b=U;I[b]&8?W(I,B=b):X(0,0,y,1)}

Eso es todo

Esto me recuerda las competencias de código ofuscado, donde hay maravillas. Quizas luego publique un articulo sobre ello.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *