Programarea e pe val si cred ca nu e nevoie sa-ti mai argumentez acest lucru, asa ca iti prezint doar un mic program care face… valuri! 🙂
Click (de doua ori) pe butonul de sus (Reseteaza), apoi (o data) pe butonul de jos (Executa) si apoi arunca o piatra facand click in oricare dintre cele 100 de puncte ale mini-ecranului din dreapta:
var e = Matrice(10, 10);
function InitEcran()
{
var i;
var j;
i = 0;
while (i<10)
{
j = 0;
while (j<10)
{
e[i][j] = 0;
j = j+1;
}
i = i+1;
}
}
function DeseneazaEcran()
{
var i;
var j;
i = 0;
while (i<10)
{
j = 0;
while (j<10)
{
if (e[i][j] != 0)
{
Aprinde(j+1, 10-i, ALBASTRU);
}
else
{
Stinge(j+1, 10-i);
}
j = j+1;
}
i = i+1;
}
}
function FunctieMouse(ev)
{
var xm = XMouse(ev);
var ym = YMouse(ev);
if (xm<1 || xm>10) return;
if (ym<1 || ym>10) return;
if (e[10-ym][xm-1] == 0)
{
e[10-ym][xm-1] = 1;
Aprinde(xm, ym, VERDE);
}
}
function FunctieDesenare()
{
if (TimpScurs(1000/4)==1)
{
MiscaValPeEcran();
DeseneazaEcran();
}
Animeaza(FunctieDesenare);
}
function MiscaValPeEcran()
{
var e2 = Matrice(10, 10);
var i;
var j;
i = 0;
while (i<10)
{
j = 0;
while (j<10)
{
e2[i][j] = e[i][j];
j = j+1;
}
i = i+1;
}
i = 0;
while (i<10)
{
j = 0;
while (j<10)
{
var v0 = e[i][j];
var v1 = 0; if (j+1<10) v1 = e[i][j+1];
var v3 = 0; if (j-1>=0) v3 = e[i][j-1];
var v2 = 0; if (i-1>=0) v2 = e[i-1][j];
var v4 = 0; if (i+1<10) v4 = e[i+1][j];
var s = v1+v2+v3+v4;
if (v0 == 1)
e2[i][j] = 0;
else
if (s==1) e2[i][j] = 1;
else e2[i][j] = 0;
j = j+1;
}
i = i+1;
}
e = e2;
}
InitEcran();
DeseneazaEcran();
StartAnimatie(FunctieDesenare);
AscultaMouse(FunctieMouse);
Frumoase valuri, nu-i asa? 🙂 Daca nu stii ce “magie” ascund in spate “incantatiile” din stanga, iata aici primii pasi catre deslusirea lor.
Alatura-te celor peste 3000 de oameni din armata noastra de creiere cu muschi si vei primi testul care iti va spune daca ai sau nu minte de programator:
Cu drag,
Florin