####################################################################################################################################### # # # G E N E R A T I O N D ' U N L A B Y R I N T H E : # # # # # # Author of '$xiirv/.LABY.11.1.$U' : # # # # Jean-Francois Colonna (LACTAMME, 20161116170309). # # # ####################################################################################################################################### $Z setParam _____Graine 7 $Z setParam _____Taille 6 $Z setParam _____Dilatation 9 $Z # Argument introduit le 20161117080942... # $Z setParam _____AttenuationI 0.8 $Z # Argument introduit le 20161117080942... # $Z setParam _____AttenuationM 0.5 $Z # Argument introduit le 20161118122331... # $Z setParam _____Palette $xiP/arc_ciel.B3 $Z # L'interet de la palette '$xiP/arc_ciel.G2' est d'etre a luminance constante et ainsi de # $Z # permettre une visualisation "equitable" des differents sous-ensembles... # $Z # # $Z # La modification du 20161120091525 est due au fait que les deux palettes '$xiP/arc_ciel.G2' # $Z # et '$xiP/arc_ciel.B2' sont strictement identiques, mais que pour des raisons expliquees # $Z # dans 'v $xigP/arc_ciel.G2$Z 20161120090908', c'est '$xiP/arc_ciel.B2' qu'il convient # $Z # d'utiliser... # $Z set NoMbRe=$#_____Liste $Z FilSTmpB FLaByRiNtHe $Z alias GLaBy 'set GGrAiNe=\!:1 ; \\ $Z set LiStE=(\!:2*) ; \\ $Z (shuffle $GGrAiNe $LiStE) >>! $FLaByRiNtHe ; \\ $Z unset GGrAiNe LiStE' $Z # Generation de la definition du labyrinthe... # $Z set KoMpTeUr=0 $Z set GrAiNe=$_____Graine $Z while ($KoMpTeUr < $NoMbRe) $Z GLaBy $GrAiNe $_____Liste $Z @ GrAiNe = $GrAiNe + 1 $Z @ KoMpTeUr = $KoMpTeUr + 1 $Z end #20161125114351____:$Z $CA $FLaByRiNtHe | \ # #20161125114351____:$Z $SE -e "s/ //g" \ # #20161125114351____:$Z -e 's/$'"/$ReToUr/" \ # #20161125114351____:$Z > $FLaByRiNtHe.1 # $Z $CA $FLaByRiNtHe | \ $Z $SE -e "s/ //g" \ $Z -e "s/^/=/" \ $Z -e 's/$'"/,/" \ $Z > $FLaByRiNtHe.1 $Z set LaByRiNtHe=`$CA $FLaByRiNtHe.1 | $xcp/substitue.01$X c01="\n" s01=""` $Z FilSTmpE FLaByRiNtHe $Z FilSTmpB FILaByRiNtHe $Z set ArGuMeNtS="$K_VIDE" $Z set ArGuMeNtS="$ArGuMeNtS"" A=$NOIR" $Z set ArGuMeNtS="$ArGuMeNtS"" message=$LaByRiNtHe" $Z set ArGuMeNtS="$ArGuMeNtS"" bibliotheque=04" $Z set ArGuMeNtS="$ArGuMeNtS"" taille=$_____Taille" $Z set ArGuMeNtS="$ArGuMeNtS"" centrer=VRAI" $Z $xci/message$X \ $Z $ArGuMeNtS \ $Z marquer_interieur_contours=FAUX \ $Z R=$FILaByRiNtHe.1 \ $Z $formatI $Z # Generation du labyrinthe "narrow". # $Z $xci/message$X \ $Z $ArGuMeNtS \ $Z marquer_interieur_contours=VRAI \ $Z R=$FILaByRiNtHe.2 \ $Z $formatI $Z # Generation du labyrinthe "narrow" avec marquage de son interieur. # $Z $xci/eor$X A1=$FILaByRiNtHe.1 \ $Z A2=$FILaByRiNtHe.2 \ $Z R=$FILaByRiNtHe.narrow \ $Z $formatI $Z # Recuperation des marqueurs de l'interieur du labyrinthe "narrow". # $Z $xci/dilate.01$X \ $Z A=$FILaByRiNtHe.1 \ $Z points=$_____Dilatation \ $Z dilater=VRAI \ $Z R=$_____ImageR \ $Z $formatI $Z $xci/contours.22$X A=$_____ImageR \ $Z optimiser_increment=VRAI \ $Z R=$FILaByRiNtHe.1.all \ $Z $formatI $Z $xci/seuil$X A=$FILaByRiNtHe.1.all \ $Z R=$FILaByRiNtHe.1.all.masque \ $Z $formatI $Z # Remplissage de tous les contours. # $Z $xci/contours.22$X A=$_____ImageR \ $Z M=$FILaByRiNtHe.narrow \ $Z optimiser_increment=VRAI \ $Z R=$FILaByRiNtHe.1.narrow \ $Z $formatI $Z $xci/seuil$X A=$FILaByRiNtHe.1.narrow \ $Z R=$FILaByRiNtHe.1.narrow.masque \ $Z $formatI $Z # Remplissage des contours du labyrinthe "narrow". # $Z $xci/eor$X A1=$FILaByRiNtHe.1.all.masque \ $Z A2=$FILaByRiNtHe.1.narrow.masque \ $Z R=$FILaByRiNtHe.1.wide.masque \ $Z $formatI $Z # Localisation du remplissage du labyrinthe "wide". # $Z FilSTmpB FPaLeTtE $Z $xciP/S_NIVEAU$X \ $Z paletteA=$_____Palette \ $Z niveau=$NOIR \ $Z ROUGE=VRAI nR=$NOIR \ $Z VERTE=VRAI nV=$NOIR \ $Z BLEUE=VRAI nB=$NOIR \ $Z paletteR=$FPaLeTtE $Z # Il est imperatif que le NOIR reste NOIR car, en effet, il correspond aux interstices # $Z # du carrelage (introduit le 20161030095958). # $Z set FaCtEuR_PaRtAgE=0.5 $Z set TrAnS_PaLeTtE=$GRIS_4 $Z # Ainsi on partage en deux la palette '$_____Palette' : la partie [$GRIS_0,$GRIS_4[ pour # $Z # '$FILaByRiNtHe.1.narrow' et [$GRIS_4,$GRIS_8] pour '$FILaByRiNtHe.1.wide'... # $Z $xciP/S_NIVEAU$X \ $Z paletteA=$FPaLeTtE \ $Z niveau=$TrAnS_PaLeTtE \ $Z ROUGE=VRAI nR=$NOIR \ $Z VERTE=VRAI nV=$NOIR \ $Z BLEUE=VRAI nB=$NOIR \ $Z paletteR=$FPaLeTtE $Z $xci/and$X A1=$FILaByRiNtHe.1.all \ $Z A2=$FILaByRiNtHe.1.narrow.masque \ $Z $formatI | \ $Z $xci/scale$X a=$FaCtEuR_PaRtAgE \ $Z b=$GRIS_0 \ $Z $formatI | \ $Z $xci/vraies_C$X \ $Z p=$FPaLeTtE \ $Z R=$FILaByRiNtHe.1.narrow \ $Z $formatI $Z $xci/and$X A1=$FILaByRiNtHe.1.all \ $Z A2=$FILaByRiNtHe.1.wide.masque \ $Z $formatI | \ $Z $xci/scale$X a=$FaCtEuR_PaRtAgE \ $Z b=$TrAnS_PaLeTtE \ $Z $formatI | \ $Z $xci/vraies_C$X \ $Z p=$FPaLeTtE \ $Z R=$FILaByRiNtHe.1.wide \ $Z $formatI $Z execRVB "$xci/or_02$X \ $Z A1=$FILaByRiNtHe.1.narrow%s \ $Z A2=$FILaByRiNtHe.1.wide%s \ $Z $formatI | \ $Z $xci/scale$X \ $Z a=$_____AttenuationI \ $Z $formatI | \ $Z $xci/cache$X \ $Z M=$_____ImageR \ $Z R=$_____ImageR.1%s \ $Z $formatI" $Z # Generation de l'image Resultat montrant tous les contours remplis. # $Z $xci/and$X A1=$FILaByRiNtHe.1.all \ $Z A2=$FILaByRiNtHe.1.narrow.masque \ $Z $formatI | \ $Z $xci/vraies_C$X \ $Z p=$FPaLeTtE \ $Z R=$_____ImageR.1.narrow \ $Z $formatI $Z $xci/scale$X A=$FILaByRiNtHe.1.narrow.masque \ $Z a=$_____AttenuationM \ $Z R=$FILaByRiNtHe.1.narrow.masque.1 \ $Z $formatI $Z $xci/scale$X A=$FILaByRiNtHe.1.wide.masque \ $Z a=$_____AttenuationM \ $Z R=$FILaByRiNtHe.1.wide.masque.1 \ $Z $formatI $Z execRVB "$xci/scale$X \ $Z A=$FILaByRiNtHe.1.narrow%s \ $Z a=$_____AttenuationI \ $Z $formatI | \ $Z $xci/cache$X \ $Z M=$_____ImageR \ $Z $formatI | \ $Z $xci/or_02$X \ $Z A2=$FILaByRiNtHe.1.wide.masque.1 \ $Z R=$_____ImageR.1.narrow%s \ $Z $formatI" $Z # Generation de l'image Resultat montrant le labyrinthe "narrow" rempli. # $Z execRVB "$xci/scale$X \ $Z A=$FILaByRiNtHe.1.wide%s \ $Z a=$_____AttenuationI \ $Z $formatI | \ $Z $xci/cache$X \ $Z M=$_____ImageR \ $Z $formatI | \ $Z $xci/or_02$X \ $Z A2=$FILaByRiNtHe.1.narrow.masque.1 \ $Z R=$_____ImageR.1.wide%s \ $Z $formatI" $Z # Generation de l'image Resultat montrant le labyrinthe "wide" rempli. # $Z FilSTmpE FILaByRiNtHe $Z FilSTmpE FPaLeTtE