Gioco della vita di Conway
I parametri x e y sono la dimensione del “campo di gioco”; la geometria utilizzata è quella toroidale.
Le regole impostate sono:
– una casalle “morta” diventa viva se ha esattamente 3 caselle vive a fianco;
– una casella “viva” continua a vivere se ha 2 o 3 caselle vive a fianco;
– negli altri casi (meno di 2 caselle o più 3 caselle vive a fianco) una casella viva muore.
awk 'BEGIN{ x=64;y=32; srand(); printf "\x1B[2J"; for(i=0;i<y;i++)for(j=0;j<x;j++)b[j,i]=int(rand()+.5); while(1){ printf "\x1B[1;1H"; for(i=0;i<y;i++){for(j=0;j<x;j++){printf "%s",b[j,i]?".":" ";a[j,i]=b[j,i]}print;} for(i=0;i<y;i++){for(j=0;j<x;j++) { L=a[(j-1)%x,(i-1)%y]+a[(j-1)%x,i]+a[(j-1)%x,(i+1)%y]+a[j,(i-1)%y]+a[j,(i+1)%y]+a[(j+1)%x,(i-1)%y]+a[(j+1)%x,i]+a[(j+1)%x,(i+1)%y]; b[j,i]=((a[j,i]==0 && L==3)||(a[j,i]==1 &&(L==2||L==3)))?1:0; }}}}'
Labirinto infinito
L’output di questo codice a molti potrebbe risultare familiare:
awk 'BEGIN{while(1)printf "%s",int(rand()+.5)?"/":"\\";}'
La nostra inutilità di sistema preferita
$ cowsay moo _____ < moo > ----- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||