Juego de la vida

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

A continuación, vamos a estudiar una posible implementación del juego de la vida con scripts de bash y arrays.

El mayor problema para resolver esto en bash es que no podemos hacer directamente arrays bidimensionales. Por eso, debemos recurrir al truco de poner array[y*tamaño+x].

Preparación de la pantalla

La pantalla, al principio, es un array bidimensional de un tamaño determinado que tiene valores aleatorios entre '0' y '1'. Debemos hacer una función que la genere:

generar_pantalla ()
{
  ancho=$1
  for ((i=0;i<$((ancho*ancho));i++))
  do
  pantalla[$i]=$(echo $((RANDOM%2)))
  done
}

Si queremos mostrarla, podemos hacer esto:

echo "${pantalla[@]}" | tr -d ' ' |sed -r "s/.{$ancho}/&\n/g"

De esta manera, el script para generar y mostrar el juego de la vida en bash queda así:

#!/bin/bash

generar_pantalla ()
 {
   ancho=$1
   for ((i=0;i<$((ancho*ancho));i++))
   do
   pantalla[$i]=$(echo $((RANDOM%2)))
   done
 }

ancho=$1 
generar_pantalla $ancho
echo "${pantalla[@]}" | tr -d ' ' |sed -r "s/.{$ancho}/&\n/g"