gpt4 book ai didi

c# - 我们有一个图形设计师,现在他们想要一个基于文本的设计师。建议?

转载 作者:太空狗 更新时间:2023-10-30 02:00:52 25 4
gpt4 key购买 nike

抱歉,我想不出更好的标题。

问题如下:

我们为我们的客户创建了(作为更大应用程序的一部分)他们可以用来构建“场景”的图形设计器。

这些场景由“复合 Material ”组成,而“复合 Material ”又包括的“命令”。这些命令对象都派生自 CommandBase 和实现一个名为 ICompilable 的接口(interface)。

场景类还实现了 ICompilable。当调用 Compile() 时在命令上返回一个字节数组,然后可以将其发送到设备它们的用途(不能透露有关该硬件的太多信息,抱歉)

只是给你一个想法:

var scenario = new Scenario();

scenario.Add(new DelayCommand(1));
scenario.Add(new CountWithValueCommand(1,ActionEnum.Add,1));
scenario.Add(new DirectPowerCommand(23,false,150));
scenario.Add(new WaitCommand(3));
scenario.Add(new DirectPowerCommand(23,false,150));
scenario.Add(new SkipIfCommand(1,OperatorEnum.SmallerThan,10));
scenario.Add(new JumpCommand(2));

byte[] compiledData = scenario.Compile();

图形设计师从用户那里抽象出所有这些并允许他(或她)只需将合成 Material 拖放到设计器表面即可。(复合 Material 可以对命令进行分组,因此我们可以为返回任务提供构建 block )

最近我们的客户来找我们说,“设计师真的很酷,但我们有些人宁愿拥有某种编程语言,只是一些简单的事情。”

(当然对他们来说很简单)

我很想为他们提供一种简单的语言,可以调用各种命令,也可以将 SkipIfCommand 替换为更好的结构等...

我不知道从哪里开始或我的选择是什么(不破坏我们现有的)

我听说有人嵌入了 Python 等语言,人们编写自己的语言和解析器等...

有什么建议吗?

PS:用户只使用复合 Material ,从不使用命令。 复合 Material 在运行时动态加载(连同它们的图形设计器) 并且可能由第三方在单独的程序集中提供。

最佳答案

据我所知,您有两个选择

您可以使用 XML 样式的“标记”让它们定义实体及其分组,但这可能不是最好的。

您的选择是肯定的,您可以嵌入一种语言,但您真的需要这样做吗?那不是太过分了吗?您如何控制它?

如果您只需要非常简单的语法,那么或许可以编写您自己的语言。其实创建一个简单的解释器并不难,只要你有一种严格、明确的语言。看看您使用的是什么编译器的一些示例,c#?

我在大学时用 java 编写了一个非常简单的解释器,它并不像您想的那么难。

关于c# - 我们有一个图形设计师,现在他们想要一个基于文本的设计师。建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/263550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com