65.9K
CodeProject 正在变化。 阅读更多。
Home

昆虫生命模拟

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.39/5 (15投票s)

2004年1月3日

2分钟阅读

viewsIcon

107871

downloadIcon

1137

一篇关于昆虫生命模拟的文章。

Sample screenshot

引言

此程序模拟昆虫(虫子或病毒)的生命周期。所有昆虫都有一定的生命周期。它们出生,然后在其生命周期内生存,或者由于某种原因在其生命周期之前死亡。这是一个使用一些生命规则的昆虫生命周期模拟程序。规则在规则部分列出。该程序是用 C# 实现的。

工作原理

一旦您运行演示程序并按下“昆虫”>>“绘制”菜单,它将在屏幕上创建所有可能的绿色框。每个框代表昆虫。绿色表示昆虫已死亡,红色表示昆虫还活着。(我选择了红色作为活动状态,因为最初我决定标题为“病毒生命模拟”,而病毒只要活着就不好,但后来我更改了标题,认为“病毒”这个词总是给程序员留下计算机病毒的印象。)您可以通过单击昆虫来更改其状态。如果您使一些昆虫彼此相邻地存活,它将生成一个遵循生命周期规则的模式。

生命周期规则。

  1. 昆虫将永远在生命结束时死亡。生命结束是 10 秒(硬编码以获得良好的模式)。
  2. 如果两个昆虫活着,则会导致新的昆虫出生。
  3. 如果有三个或更多昆虫活得靠近,则由于过度拥挤,一个昆虫将死亡。

内存要求。

此演示程序为每个昆虫绘制 16*16 像素的可能框。每个昆虫都是 InsectControl 类的实例,它保存内存。在我的计算机中,我拥有 1152*864 的屏幕分辨率,这使我能够创建大约 4000 个昆虫,并占用 22MB 的内存。因此,内存要求取决于此应用程序的屏幕分辨率。

代码描述。

我创建了一个名为 InsectControl 的用户控件。此控件有一个 1 秒间隔的计时器,用于更新昆虫的状态。每个昆虫都保存有关其孩子的信息。每个昆虫最多有 8 个孩子(见图)。位于角落的昆虫将有较少的孩子。每秒,每个昆虫都会检查它们孩子的状态,并遵循上述规则来决定自己的状态。

Sample screenshot

已知问题

  1. 在所有昆虫创建完成之前,无法接受任何命令。
  2. 关闭时,它不会清除应用程序的实例,因此请使用任务管理器进行清理。

享受模拟。

© . All rights reserved.