#!/bin/bash # # Copyright (C) 2007 LAFKON/Christoph Haag. # # This is free software, and you may redistribute it under the GPL. # This Software comes with absolutely no warranty, for details, # see the license (http://www.lafkon.net/gpl.txt) # # 001111111 # ACCUMULATION OF CONNECTORS IS DEFINED HERE # 010001100 # ACCUMULATION OF CONNECTORS IS DEFINED HERE # 011000111 # ACCUMULATION OF CONNECTORS IS DEFINED HERE # 010010111 # ACCUMULATION OF CONNECTORS IS DEFINED HERE # 001110000 # ACCUMULATION OF CONNECTORS IS DEFINED HERE # 001011000 # ACCUMULATION OF CONNECTORS IS DEFINED HERE # 111111111 # ACCUMULATION OF CONNECTORS IS DEFINED HERE # 000000011 # AKKUMULATION OF CONNECTORS IS DEFINED LOFTY # 010000001 # AKKUMULATION OF CONNECTORS IS DEFINED LOFTY # 000011001 # AKKUMULATION OF CONNECTORS IS DEFINED LOFTY # 100011001 # ACCUMULATION OF CONNECTORS IS DEFINED LOFTY VERT=$1 HORIZ=`expr $2 \* $3` LSDIR=cols+rows/multipage/$1x$HORIZ #LSDIR=$3 TILEDIR=tiles TILEPATH=i/$TILEDIR SELECTOR= VARCONNECTORS=`sed -n '/ACCUMULATION/p' ./ioioi4multipage.sh |\ sed -n '/sed/!p' |\ cut -d "#" -f 2 |\ rl --count=1` ################################################# # TEST TO SUPPLY OPTIONAL COMMANDLINE ARGUMENTS # TEST=`echo $4 | tr -d 0 | cut -c 1` TEST=`expr $TEST + 1` if [ $TEST -gt 1 ] ; then VARCONNECTORS=$4 fi ################################################# echo $VARCONNECTORS J=1 while [ $J -le $VERT ] do LS=$J.list I=1 while [ $I -le $HORIZ ] do # GENERATE 2 DIFFERENT RANDOM NUMBERS # RBNDOM=`echo $RANDOM | cut -c 1` RCNDOM=`echo $RANDOM | cut -c 1` LSBEFORE=$LSDIR/$((J - 1)).list LINE=`expr $HORIZ + 1 - $I` if [ $J -gt 1 ] then F3=`sed -n "$((LINE))p" $LSBEFORE | cut -d _ -f 2` else F3=0 fi if [ $I -ge $((HORIZ - 4)) ] || [ $I -le 4 ] && [ $J -le $((VERT - 1)) ] then SELECTOR="-v HO" else SELECTOR="svg" fi if [ $I -le 1 ] then F1=0 # F1=`echo $VARCONNECTORS | cut -c $RBNDOM` F2=0 # F3 IS DEFINED AT LOOPSTART F3=0 # F4=`echo $VARCONNECTORS | cut -c $RCNDOM` F4=0 RNDMZR=`ls $TILEDIR |\ grep $SELECTOR |\ grep $F1"_"$F2"_"$F3"_"$F4"_".svg |\ rl --count=1` echo $TILEPATH/$RNDMZR > $LS I=`expr $I + 1` elif [ $I -lt $((HORIZ - 1)) ] # $HORIZ -5 -> AUSFRANSEN then F1=`echo $VARCONNECTORS | cut -c $RBNDOM` F2=$F4 # F3 IS DEFINED AT LOOPSTART F4=`echo $VARCONNECTORS | cut -c $RCNDOM` RNDMZR=`ls $TILEDIR |\ grep $SELECTOR |\ grep $F1"_"$F2"_"$F3"_"$F4"_".svg |\ rl --count=1` echo $TILEPATH/$RNDMZR >> $LS I=`expr $I + 1` else F1=0 F2=$F4 # F3 IS DEFINED AT LOOPSTART F4=0 RNDMZR=`ls $TILEDIR |\ grep $SELECTOR |\ grep $F1"_"$F2"_"$F3"_"$F4"_".svg |\ rl --count=1` echo $TILEPATH/$RNDMZR >> $LS I=`expr $I + 1` fi done ################################################ ## HAPPY END ################################### ################################################ if [ $J -ge $((VERT - 1)) ] ### FADE OUT ### then rm $LS I=1 while [ $I -le $HORIZ ] do VARCONNECTORS=`sed -n '/LOFTY/p' ./ioioi4multipage.sh |\ sed -n '/sed/!p' |\ cut -d "#" -f 2 |\ rl --count=1` LS=$J.list LSBEFORE=$LSDIR/$((J - 1)).list LINE=`expr $HORIZ + 1 - $I` # IF BOTTOM-CONNECTION = 0 -> TOP-CONNECTION = 0 # F1=`sed -n "$((LINE))p" $LSBEFORE | cut -d _ -f 2` # IF BOTTOM-CONNECTION = 1 -> TOP-CONNECTION = RANDOM # if [ $F1 -ge 1 ] then F1=`echo $VARCONNECTORS | cut -c $RBNDOM` fi # IF LAST LINE -> TOP-CONNECTION = 0 # if [ $J -ge $VERT ] then F1=0 fi F2=$F4 F3=`sed -n "$((LINE))p" $LSBEFORE | cut -d _ -f 2` F4=`echo $VARCONNECTORS | cut -c $RBNDOM` # PREVENT FLYING INSTRUMENTS # if [ $F3 -le 0 ] && [ $J -ge $VERT ] then F4=0 SELECTOR=HO fi if [ $I -ge $((HORIZ - 2)) ] || [ $I -le 1 ] then SELECTOR=C fi # CLOSE LEFT BORDER # if [ $I -ge $((HORIZ - 1)) ] then F4=0 fi ### GREP $SELECTOR FOR HAPPY END ### RNDMZR=`ls $TILEDIR |\ grep $SELECTOR |\ grep $F1"_"$F2"_"$F3"_"$F4"_".svg |\ rl --count=1` echo $TILEPATH/$RNDMZR >> $LS I=`expr $I + 1` done fi ################################################ ################################################ ################################################ # ZEILEN UMDREHEN UND WIEDER AUSGEBEN # sed '1!G;h;$!d' $LS > /tmp/$LS.tmp rm $LS cat /tmp/$LS.tmp > $LSDIR/$LS J=`expr $J + 1` done exit 0;