Искусство программирования на языке сценариев командной оболочки




Программирование на языке сценариев командной оболочки - стр. 312


let "row = $r + 1" # По нижней строке. IsValid $t_bot $row if [ $? -eq "$TRUE" ] then if [ ${array[$t_bot]} = "$ALIVE1" ] then let "count += 1" fi fi

done

if [ ${array[$cell_number]} = "$ALIVE1" ] then let "count -= 1" # Убедиться, что сама проверяемая ячейка fi #+ не была подсчитана.

return $count

}

next_gen () # Обновить массив, в котором содержится информация о новом "поколении". {

local array local i=0

array=( `echo "$1"` ) # Преобразовать в массив.

while [ "$i" -lt "$cells" ] do IsAlive "$1" $i ${array[$i]} # "Живая"? if [ $? -eq "$ALIVE" ] then # Если "живая", то array[$i]=. #+ записать точку. else array[$i]="_" # Иначе -- символ подчеркивания fi #+ (который позднее заменится на пробел). let "i += 1" done

# let "generation += 1" # Увеличить счетчик поколений.

# Подготовка переменных, для передачи в функцию "display". avar=`echo ${array[@]}` # Преобразовать массив в строку. display "$avar" # Вывести его. echo; echo echo "Поколение $generation -- живых особей $alive"

if [ "$alive" -eq 0 ] then echo echo "Преждеверменное завершение: не осталось ни одной живой особи!" exit $NONE_ALIVE # Нет смысла продолжать fi #+ если не осталось ни одной живой особи

}

# =========================================================

# main ()

# Загрузить начальное поколение из файла. initial=( `cat "$startfile" | sed -e '/#/d' | tr -d '\n' |\ sed -e 's/\./\. /g' -e 's/_/_ /g'` ) # Удалить строки, начинающиеся с символа '#' -- комментарии. # Удалить строки перевода строки и вставить пробелы между элементами.

clear # Очистка экрана.

echo # Заголовок echo "=======================" echo " $GENERATIONS поколений" echo " в" echo " игре \" ЖИЗНЬ\"" echo "======================="

# -------- Вывести первое поколение. -------- Gen0=`echo ${initial[@]}` display "$Gen0" # Тлько вывод.


Содержание  Назад  Вперед