Tetris en un par líneas de código

Tags: , ,

Este es otro de los post reencauchados de mi antiguo blog.

Se trata de un tetris programado en python, son tan sólo 15 líneas de código, cada línea no contiene más de 80 caracteres:


import random,pygame;R=range;L=len;W=10;Q=H=20;P=pygame;G=255;v=lambda b:['0'*W
]*(H-L(b))+b;a=p=x=y=c=d=0;D=P.display;T=P.USEREVENT;m=lambda i,j:j-y in R(L(p)
)and i-x in R(L(p[0]))and'0'!=p[j-y][i-x]and`d+1`or b[j][i];S=D.set_mode((W*Q,H
*Q));k=lambda p,x,y:1-max(p[i][j]!='0'and(y+i>=H or x+j<0or x+j>=W or’0?!=b[i+y
][j+x])for j in R(L(p[0]))for i in R(L(p)));n=E=b=v([]);P.time.set_timer(T,100)
exec(”while E!=P.QUIT:\n E=P.event.wait().type;K=P.key.get_pressed()\n if n:d=”
“random.randrange(7);q=’111?;p=[[’1?*4],[’010?,q],[’110?,’011?],[’011?,’110?],”
“[q,’100?],[’11?,’11?],[q,’001?]][d];x=W/2-L(p[0])/2;y=n=0\n if E==T:\n [P.dr”
“aw.rect(S,[(h,g,f)for f in(0,G)for g in(0,G)for h in(0,G)][int(m(i/H,i%H))],(”
“(i/H*Q,i%H*Q),(Q,Q)))for i in R(W*H)];t='’.join;z=[t([p[L(p)-1-i][j]for i in ”
“R(L(p))])for j in R(L(p[0]))];p,x,y=[p,z][K[P.K_UP]*k(z,x,y)],x-(K[P.K_LEFT]*”
“k(p,x-1,y))+(K[P.K_RIGHT]*k(p,x+1,y)),y+(K[P.K_DOWN]*k(p,x,y+1));B=[t([m(i,j)”
“for i in R(W)])for j in R(H)];e=sum(r.find(’0?)<0for r in B);D.flip();c+=1\n "
" if c%5<1:\n if k(p,x,y+1)<1:\n if y<1:break\n a+=e and 2**e;n=b=v([r"
" for r in B if~r.find('0')])\n else:y+=1\n");print 'GAME OVER: score %i'%a

Y gracias a Anieto me encuentro con este otro tetris es en Javascript, en más o menos 8 líneas de código:


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y()
{C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/
A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1
if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t
%7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;)
Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X
[i]?"&#9632;":"&#65343;";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script>
</body>
</html>

Jython, interprete para python basado en java

Tags: , , , , , ,

Esta no es nueva noticia, sólo que me parecio curioso ver una IDE para python basada en Java.

Jython es una implementación de alto nivel para python desarrollada por completo en Java, tipicamente los interpretes para para python están escritos en C. Jython funciona de manera muy particular, ya que construye las clases de python creando un byte code que es posible ejecutarse en la Java Virtual Machine (JVM), gracias a esto es posible tener un puente entre estos dos lenguajes, las aplicaciones hechas en python puede utilizar la biblioteca de clases de Java y las aplicaciones de Java pueden utilizar scripts de python.

Jython puede ser utilizado en Java para las siguientes tareas:

  • Scripts embebidos: Los programadores de java pueden incluir las librerias de Jython en sus sistemas, permitiendo así a los usuarios finales desarrollar scripts que le añadan funcionalidad a sus aplicaciones.
  • Experimentación interactiva: Jython proporciona un interprete interactivo que puede utilizarse para interactuar con los paquetes de Java o correr aplicaciones Java. Esto permite a los programadores experimentar y depurar cualquier sistema en Java.
  • El rápido desarrollo de aplicaciones: Los programas en python son tipicamenta más cortos que los hechos en java, esto se traduce directamente en un aumento en la productividad. La interacción entre python y java permite mezclar libremente dos lenguajes.

[Leer mas]

DWebPro

Tags: , , , , , ,

Ha deseado alguna vez distribuir su sitio web dinámico en un CD o DVD y pensó que no fuera posible?

Tal vez ha intentado hacerlo en el pasado pero ha sido frustrado en el obtener el código especí­fico para el sitio web, de tal forma que pudiera trabajar apropiadamente.

O aún peor, tal vez ha intentado alguno de esos programas informáticos que cobran regalias sobre cada CD o DVD que distribuye!

En el pasado, cuando deseaba distribuir su sitio web en un CD/DVD, debí­a REESCRIBIR EL SITIO WEB ENTERO para que el mismo pudiera extraer apropiadamente la información y funcionar tal como lo hace en la web. De echo, solí­a ser una experiencia tan mala para las empresas; que pocas empresas se encontraban dispuestas a realizar la tarea.

DWebPro es un servidor web independiente desarrollado especí­ficamente para la distribución de sitios web dinámicos(por ejemplo PHP/MySQL, ASP.Net/Ms Access) en CD o DVD sin la necesidad de rescribir el código del sitio web. Con DWebPro, su empresa puede fácilmente crear CDs o DVDs demostrando capacidades asombrosas de su sitio web, todo sin necesidad de estar conectado a Internet.

De echo, DWebPro es el único programa informático que nativamente soporta tantos lenguajes de servidor para ser utilizados en CD/DVD. El mismo soporta:

    • PHP
    • Perl
    • Python
    • Ruby
    • Rebol
    • Delphi Web Script II
    • ASP 3.0
    • ASP.Net
    • JSP/Servlet
    • Zope
    • Coldfusion
    • EXE/CGI/ISAPI

    Leer Más: DWebPro

    Antes de irte

    ¿Ya te vas? Aqui encontraras cosas interesantes