2votos

Snake en JavaScript

por josejuan usando firefox console hace 6 años

¡Lo puedes lanzar en la consola de tu explorador!

Fernando de Genbetadev dice que si haces un Snake en un lenguaje, entonces, ese lenguaje ya casi no tiene secretos para tí.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$.I = function(n, e) { var r = []; while(n--) r.push(e); return $(r) } 
var a = "<tr><td>", b = "</td></tr>"; 
var S = 11, S2 = S * S; 
var J = [S, -1, S2-S, 1], j = 0; 
var T = $(document.body).keypress(function(e){++j;if(e.which == 113) j += 2; j %= 4 }).html("<style>table{width:auto;border-collapse:collapse}td{width:5mm;height:5mm;border:1px solid gray;padding:0;spacing:0}.e{background-color:white}.s{background-color:green}.f{background-color:red}</style><table>"+a+$.I(S,$.I(S,"").get().join("</td><td>")).get().join(b+a)+b+"</table>Use <b>Q</b> and <b>W</b> to move!").find('td').addClass('e').get(); 
var P = $.I(S2,-1).get(); 
var u,v,g; 
P[u=v=g=0]=S2>>1; 
function ro(o,s){$(o).removeClass(s[0]).removeClass(s[1]).addClass(s[2])} 
var t = window.setInterval(function(){ 
    var w = P[u] + J[j]; 
    if(j==1 && ((S+w)%S)==S-1) w+=S; 
    if(j==3 && (w%S)==0) w+=S2-S; 
    var o=$(T[w %= S2]); 
    if(o.hasClass('s')) { alert("OUCH!"); window.clearInterval(t) } 
    if(!o.hasClass('f')) { ro(T[P[v++]],"sse"); v %= P.length } 
    ro(T[P[u = ++u % P.length] = w], "fes"); 
    if((++g % 10)==0) {var l = $(T).filter(".e").get(); ro(l[~~(Math.random() * l.length)],"eef")} 
}, 250) 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.