Je příkladem jednoduchého celularního automatu. "Mravenec" žije na "čtvečkovaném papíře". Pro svůj "život" má jednoduchá pravidla:
Tato jednoduchá pravidla vedou, překvapivě k "cílevědomému" počínání.
1. <script language=JavaScript> 2. document.write("<table border=1>"); 3. for (r=0;r<200;r++){ 4. document.write("<tr>"); 5. for (s=0;s<200;s++){ 6. document.write("<td></td>"); 7. } 8. document.write("</tr>"); 9. } 10. document.write("</table"); 11. </script> |
6. document.write("<td id=\"a"+r.toString()+"_"+s.toString()+"\"></td>"); |
function obarvi(r,s,barva){ if (barva==1){ document.getElementById("a"+r.toString()+"_"+s.toString()).style.backgroundColor="red"; }else{ document.getElementById("a"+r.toString()+"_"+s.toString()).style.backgroundColor="white"; } } |
for (i=0;i<200;i++){ obarvi(i,i,1); } |
<script language=JavaScript> var policka=Array(); document.write("<table border=1>"); for (r=0;r<200;r++){ document.write("<tr>"); policka[r]=Array(); for (s=0;s<200;s++){ policka[r][s]=0; document.write("<td></td>"); } document.write("</tr>"); } document.write("</table"); </script> |
function obarvi(r,s,barva){ if (barva==1){ document.getElementById("a"+r.toString()+"_"+s.toString()).style.backgroundColor="red"; policka[r][s]=1; }else{ document.getElementById("a"+r.toString()+"_"+s.toString()).style.backgroundColor="white"; policka[r][s]=0; } } |
var r0=100; var s0=110; var r1=101; var s1=110; |
function krok(){ dr=r1-r0; ds=s0-s1; if (policka[r1][s1]==1){ smer=-1; obarvi(r1,s1,0); }else{ smer=1; obarvi(r1,s1,1); } r0=r1; s0=s1; r1=r1+smer*ds; s1=s1+smer*dr; } |
for (i=0;i<200;i++){ krok(); } |
<script language=JavaScript> var policka=Array(); document.write("<table border=1>"); for (r=0;r<200;r++){ document.write("<tr>"); policka[r]=Array(); for (s=0;s<200;s++){ document.write("<td id=\"a"+r.toString()+"_"+s.toString()+"\"></td>"); policka[r][s]=0; } document.write("</tr>"); } document.write("</table>"); function obarvi(r,s,barva){ if (barva==1){ document.getElementById("a"+r.toString()+"_"+s.toString()).style.backgroundColor="red"; policka[r][s]=1; }else{ document.getElementById("a"+r.toString()+"_"+s.toString()).style.backgroundColor="white"; policka[r][s]=0; } } var r0=100; var s0=110; var r1=101; var s1=110 function krok(){ dr=r1-r0; ds=s0-s1; if (policka[r1][s1]==1){ smer=-1; obarvi(r1,s1,0); }else{ smer=1; obarvi(r1,s1,1); } r0=r1; s0=s1; r1=r1+smer*ds; s1=s1+smer*dr; } for (i=0;i<15000;i++){ krok(); } </script> |