Google

Tetris, no tengo que explicarlo ---pero hay que llenar de palabras este párrafo---, es un clásico lleno de clones y variantes; tantos que es difícil recordar el original. En esta ocasión les traigo una más de sus versiones entre las existentes para la línea de comandos: Micro Tetris. (La imagen que sigue no es de Micro Tetris, pero me encantó como una suerte de Tetris Arborescente.)

Instalación

Descarga los 8 K de la recién publicada versión 1.2.0.

wget ftp://ftp.vmlinux.org/pub/People/jocke/micro-tetris/tetris-1.2.0.tar.bz2

Descomprime.

tar jxvf tetris-1.2.0.tar.bz2

Ingresa al directorio y compila e instala ---claro, previamente es necesario que tengas instalado make, GCC y los archivos de cabecera esenciales de lenguaje C.

cd tetris-1.2.0
make && sudo make install

La historia detrás de Micro Tetris pueden leerla en el archivo README. Resulta que las 424 líneas de tetris.c están basadas en las 19 del ganador del concurso de código C ofuscado al mejor juego. De hecho, me permito presentárselas. Pueden copiarlas en un archivo .c y luego compilarlas. Les aseguro que funciona perfectamente.

long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K
=0,i=276,j,k,q[276],Q[276],n=q,m,x=17,f[]={7,-13,-12,1,8,-11,-12,-1,9,-1,1,
12,3,-13,-12,-1,12,-1,11,1,15,-1,13,1,18,-1,1,2,0,-12,-1,11,1,-12,1,13,10,-12,
1,12,11,-12,-1,1,2,-12,-1,12,13,-12,12,13,14,-11,-1,1,4,-13,-12,12,16,-11,-12,
12,17,-13,1,-1,5,-12,12,11,6,-12,12,24};u(){for(i=11;++i<264;)if((k=q[i])-Q[i]
){Q[i]=k;if(i-++I||i%12<1)printf("33[%d;%dH",(I=i)/12,i%122+28);printf(
"33[%dm  "+(K-k?0:5),k);K=k;}Q[263]=c=getchar();}G(b){for(i=4;i--;)if(q[i?b+
n[i]:b])return 0;return 1;}g(b){for(i=4;i--;q[i?x+n[i]:x]=b);}main(C,V,a)char
V,a;{h[3]=1000000/(l=C>1?atoi(V[1]):2);for(a=C>2?V[2]:"jkl pq";i;i--)*n++=i<
25||i%12<2?7:0;srand(getpid());system("stty cbreak -echo stop u");sigvec(14,v,
0);t();puts("33[H33[J");for(n=f+rand()%7*4;;g(7),u(),g(0)){if(c<0){if(G(x+
12))x+=12;else{g(7);++w;for(j=0;j<252;j=12(j/12+1))for(;q[++j];)if(j%12==10){
for(;j%12;q[j--]=0);u();for(;--j;q[j+12]=q[j]);u();}n=f+rand()%74;G(x=17)||(c
=a[5]);}}if(c==a)G(--x)||++x;if(c==a[1])n=f+4*(m=n),G(x)||(n=m);if(c==a[2])G
(++x)||--x;if(c==a[3])for(;G(x+12);++w)x+=12;if(c==a[4]||c==a[5]){s=sigblock(
8192);printf("33[H33[J33[0m%dn",w);if(c==a[5])break;for(j=264;j--;Q[j]=
0);while(getchar()-a[4]);puts("33H33[J33[7m");sigsetmask(s);}}d=popen(
"stty -cbreak echo stop 23;sort -mnr -o HI - HI;cat HI","w");fprintf(d,
"%4d from level %1d by %sn",w,l,getlogin());pclose(d);}

Uso

Simplemente ejecuta esto en tu línea de comandos:

tetris

Seis teclas serán tu mando de control a lo largo de varios niveles de dificultad.

Comentarios

Minimalista. Eficiente. Genial.

Imagen: [Fotero

Más guías y consejos

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito