Giochi e divertimento

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