def q_prod(sym):
"""Production rule for Q"""
ret = []
prev_ang = 0
for _ in range(int(random() * 2 + 3)):
ang = random() * 10 + 30
ret.extend([LSymbol("/", {"a": prev_ang + 75 + random() * 10}),
LSymbol("&", {"a": ang}),
LSymbol("!", {"w": sym.parameters["w"] * 0.2}),
LSymbol("["),
LSymbol("A", {"w": sym.parameters["w"] * 0.3,
"l": 1.5 * sqrt(sym.parameters["w"]) * (random() * 0.2 + 0.9)}),
LSymbol("]"),
LSymbol("!", {"w": sym.parameters["w"]}),
LSymbol("^", {"a": ang}),
LSymbol("F", {"l": sym.parameters["l"]})])
ret.append(LSymbol("Q", {"w": max(0, sym.parameters["w"] - __base_width__ / 14),
"l": sym.parameters["l"]}))
return ret
评论列表
文章目录