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>
|