Я пытаюсь спроектировать структуру данных для реализации движка переписывания L-System на C ++, и я просто не могу никуда добраться: (.
Мне нужно хранить строку символов (символы). Существует несколько типов символов (это определяется алфавитом LSystem). Допустим, у нас есть типы «A», «B», «C». Теперь каждый тип символа может иметь различные параметры. Например, символу типа A будет некоторое расстояние, а у символа - угол. Символ C не имеет параметров. Строка может выглядеть как «ABABC».
Затем мне нужно перебрать строку и выполнить некоторые действия, которые также связаныдля каждого типа символа. «A» может означать «нарисовать линию длины« расстояние »(расстояние является параметром A), B« повернуть »угол« градусы »и закончить рисование C.
Я пыталсяесть класс Symbol и дочерний элемент для каждого типа символа (класс SymbolA, класс SymbolB, класс SymbolC), но я не знаю, как создать строку. Я хотел бы избежать приведения типов и тому подобного.
Есть ли кто-нибудь, у кого была похожая проблема или есть идея, которая может мне помочь, пожалуйста?