ZMWSLI0-SL2021-GR11/cw1/unity_artifitial_world-st/Assets/LSystem/SampleLSystem.txt

32 lines
1.3 KiB
Plaintext

#axiom
A
#rules
#komentarz
#podstawowe przekształcenie
X-> AX
# instrukcja z rozgałęzieniem
Y->A[A]A
#parametryczne symbola są rozpoznawane po literze i liczbie argumentów czyli B, B(0) i B(0,0) to różne symbole
#w regułach dla parametrycznych symboli w poprzedniku definiuje się nazwę parametru. ta instrukcja zamieni C(1) na C(1.1) a C(2) na C(2.1)
C(a) -> C(a+0.1)
# ta instrukcja wykona się, jeżeli a>1 i a<2 przecinek oznacza iloczyn logiczny
B(a) : a>1,a<2 -> C(a)B(0)
# ta instrukcja wykona się, jeżeli poprzednia się nie wykonała i gdy a<=1
B(a) : a<=1 -> B(2*a)
# ta instrukcja się wykona, jeżeli poprzednie 2 się nie wykonają
B(a) -> B(0)
# instrukcja się wykona, jeżeli następnikiem A jest B(a) i a>0
A > B(a) : a>0 -> B(a)[A]
# instrukcja się wykona, jeżeli poprzednikiem A jest B(a) i a>0 (i jeżeli poprzednia się nie wykonała)
B(a) < A a>0 -> B(a)[A]
# instrukcja się wykona, jeżeli poprzednikiem A jest B(a), następnikiem jest C(b) oraz a+b>0 (i jeżeli poprzednia się nie wykonała)
B(a) < A > C(b) a+b>0 -> CC
# wykona się jedna z trzech opcji z wagami odpowiednio 0.2, 0.6 i 0.3 - wagi nie muszą się sumować do 1. można stochastyczność łączyć z powyższymi rozszerzeniami.
C(a) -> #stochastic
p=0.2 AB(1)
p=0.6 B(1)A
p=0.3 AA
#stochastic end
#rules end