Python中的Biomorph实现

Python中的Biomorph实现,python,Python,我正试图创建Dawkins的biomorphs的Python实现,正如他在《盲人钟表匠》一书中所描述的那样 它的工作原理是这样的:显示的是一个父生物体,以及它的后代,它们只是父生物体的突变版本。然后,用户点击它想要繁殖的后代,所有的后代将根据累积选择“进化” 我不确定的是如何开始使用Python。我已经创建了应该使用的遗传算法和l系统程序。l-system程序在给定某些参数的情况下进化树(这是我在biomorph实现中的目标),遗传算法程序进化l-system程序中创建的基因型 什么样的库比较

我正试图创建Dawkins的biomorphs的Python实现,正如他在《盲人钟表匠》一书中所描述的那样

它的工作原理是这样的:显示的是一个父生物体,以及它的后代,它们只是父生物体的突变版本。然后,用户点击它想要繁殖的后代,所有的后代将根据累积选择“进化”

我不确定的是如何开始使用Python。我已经创建了应该使用的遗传算法和l系统程序。l-system程序在给定某些参数的情况下进化树(这是我在biomorph实现中的目标),遗传算法程序进化l-system程序中创建的基因型

  • 什么样的库比较好用(乌龟、pygame等)? 我对海龟很熟悉,但文档中说,“要在一个屏幕上使用多个海龟,必须使用面向对象的界面。”我不确定这意味着什么。我之所以想到在一个屏幕上使用多个海龟,是为了在一个屏幕上显示其父代及其子代,就像在在线应用程序中一样。然后,用户可以通过鼠标事件点击想要繁殖的生物体。这是个好主意,还是有更好的方法

提前感谢。

根据图形要求,我认为对于轻量级应用程序,您可以使用PyQt或PyGame。对于要求更高的实时图形需求,您可以使用类似PyOgre或PyOpenGL的东西


您可能还需要研究图形布局/数据可视化算法或库(例如dot),具体取决于您的UI目标。

pygame
绝对是我会使用的库。您的程序在结构上类似于游戏(响应鼠标事件、在屏幕上绘图等)。面向对象可能意味着您必须执行类似于
t1=Turtle()
t1.draw(10)
的操作。但我同意Blender的观点:我想看看pygame。谢谢你的建议。我将开始研究它。这几乎很有趣,两年前我写了一个变异树的遗传算法。但另一种方法是,选择两个个体(父母),通过合并和变异遗传密码来创建新的群体。我一下班回家就发帖。哦,我真想读那本书。:)这很酷,听起来像是标准的遗传算法。这将是有趣的看到(你有突变和组合概率吗?)我最终使用pygame,它工作得很好!我想我只是不知道如何在黑板上画生物形态。幸运的是,这个网站有伪代码: