#!/bin/csh
#######################################################################################################################################
# #
# G E N E R A T I O N D E L A D E F I N I T I O N #
# D ' U N A U T O M A T E C E L L U L A I R E B I D I M E N S I O N N E L B I N A I R E : #
# #
# #
# Utilisation : #
# #
# $xci/AutoC_2DB.01$Z <nom_definition> "<regle1> ... <regleN>" [<EditerRegles>] #
# #
# #
# Author of '$xci/AutoC_2DB.01$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, 20030116171028). #
# #
#######################################################################################################################################
set Definition=$1
set Regles=($2)
set EditerRegles=$3
# L'argument '$EditerRegles' a ete introduit le 20030123001229, apres que les conventions #
# {N,B} aient ete remplacees par les conventions {B,W}... #
setArgum EditerRegles $NEXIST
$xci/init$X niveau=$NOIR R=$Definition \
$formatI
# Initialisation a '$NOIR' de la definition... #
source $xci/AutoC_NDB$vv$Y
# Definitions utiles a la definition d'un automate cellulaire binaire. #
if ($#Regles > $dimY) then
EROR "Le nombre de regles maximal est $dimY alors qu'il y en a $#Regles."
else
endif
set Ycourant=$Ymin
# La coordonnee 'Y' represente le numero des regles. #
if ($EditerRegles == $EXIST) then
echo "Regles utilisees : {$Regles}."
else
endif
foreach Regle ($Regles)
set Xcourant=$Xmin
# La coordonnee 'X' represente l'index des points de chaque regle. #
set Points=`echo "$Regle" | $SE -e "s/$SeparateuR/ /g"`
if ($#Points == 2) then
set Spirale=$Points[1]
set Niveau=$Points[2]
set Spirale=`echo "$Spirale" | $SE -e "s/\(.\)/\1 /g" -e 's/ *$//'`
set Niveau=`echo "$Niveau" | $SE -e "s/\(.\)/\1 /g" -e 's/ *$//'`
if ($#Spirale == 0) then
EROR "La regle '$Regle' est mal formee (1)."
else
endif
if ($#Niveau != 1) then
EROR "La regle '$Regle' est mal formee (2)."
else
endif
set RegleC=($Niveau $Spirale)
foreach Point ($RegleC)
if ($Point == $PointNoir_) then
else
if ($Point == $PointBlanc) then
else
EROR "La regle '$Regle' est mal formee (3)."
endif
endif
end
set RegleC=`echo "$RegleC" | $SE -e "s/ *//g"`
$xci/S_points$X A=$Definition \
X=$Xcourant Y=$Ycourant \
iX=1 iY=0 \
niveaux=$RegleC \
R=$Definition \
$formatI
else
EROR "La regle '$Regle' est mal formee (4)."
endif
@ Ycourant = $Ycourant + 1
end
$xci/substitue$X A=$Definition \
substitution=L_SUBSTITUTION_ROUGE \
p=$PaletteNoirBlanc \
$formatI | \
$xci/acces$X \
convertir=VRAI \
R=$Definition \
$formatI
# ATTENTION : '$xci/substitue$X' ne peut evidemment avoir lieu qu'une seule fois sur #
# l'image '$Definition', et ce tout a la fin. La conversion en une image non standard #
# a ete introduite le 20030123165835 afin de prevoir des extensions futures... #