Visual C++ 7.1Visual Studio .NET 2003Windows 2003.NET 1.1Windows 2000Windows XP中级开发Visual StudioWindowsC++.NETC#
昆虫生命模拟






1.39/5 (15投票s)
2004年1月3日
2分钟阅读

107871

1137
一篇关于昆虫生命模拟的文章。
引言
此程序模拟昆虫(虫子或病毒)的生命周期。所有昆虫都有一定的生命周期。它们出生,然后在其生命周期内生存,或者由于某种原因在其生命周期之前死亡。这是一个使用一些生命规则的昆虫生命周期模拟程序。规则在规则部分列出。该程序是用 C# 实现的。
工作原理
一旦您运行演示程序并按下“昆虫”>>“绘制”菜单,它将在屏幕上创建所有可能的绿色框。每个框代表昆虫。绿色表示昆虫已死亡,红色表示昆虫还活着。(我选择了红色作为活动状态,因为最初我决定标题为“病毒生命模拟”,而病毒只要活着就不好,但后来我更改了标题,认为“病毒”这个词总是给程序员留下计算机病毒的印象。)您可以通过单击昆虫来更改其状态。如果您使一些昆虫彼此相邻地存活,它将生成一个遵循生命周期规则的模式。
生命周期规则。
- 昆虫将永远在生命结束时死亡。生命结束是 10 秒(硬编码以获得良好的模式)。
- 如果两个昆虫活着,则会导致新的昆虫出生。
- 如果有三个或更多昆虫活得靠近,则由于过度拥挤,一个昆虫将死亡。
内存要求。
此演示程序为每个昆虫绘制 16*16 像素的可能框。每个昆虫都是 InsectControl
类的实例,它保存内存。在我的计算机中,我拥有 1152*864 的屏幕分辨率,这使我能够创建大约 4000 个昆虫,并占用 22MB 的内存。因此,内存要求取决于此应用程序的屏幕分辨率。
代码描述。
我创建了一个名为 InsectControl
的用户控件。此控件有一个 1 秒间隔的计时器,用于更新昆虫的状态。每个昆虫都保存有关其孩子的信息。每个昆虫最多有 8 个孩子(见图)。位于角落的昆虫将有较少的孩子。每秒,每个昆虫都会检查它们孩子的状态,并遵循上述规则来决定自己的状态。
已知问题
- 在所有昆虫创建完成之前,无法接受任何命令。
- 关闭时,它不会清除应用程序的实例,因此请使用任务管理器进行清理。
享受模拟。