C++狮蚁和蚂蚁程序

kimgbo 2014-05-09 03:45:00
问题描述:

本程序练习的目标是创建一个简单的二维的:掠夺者——被掠夺者的模拟。在模拟中,蚂蚁是被掠夺者,狮蚁是掠夺者。这些小生物住在20*20单元的网格中,在同一时间一个生物只能占有一个单元。网格是封闭的,所有生物不准移出边界。我们按时间步来进行模拟,在每个时间步每个生物执行一些动作。

蚂蚁的活动依照如下模型:

*移动。在每一个时间步蚂蚁随即上下左右移动,如果所选方位上的相邻单元格被占据,或是移出网格,蚂蚁将原地不动。

*繁殖。如果蚂蚁存活了3个时间步,在第3个时间步结束后,蚂蚁将进行繁殖。是通过相临的单元格(上下左右)来生成一只新的蚂蚁模拟。如果蚂蚁相邻的单元格没有空的单元,将不进行繁殖。一旦诞生后代,蚂蚁将不在繁殖直到它又存活了3个时间步。

狮蚁的活动模型:

*移动。在每一个时间步,狮蚁将向含有蚂蚁的相邻单元格移动并吃掉蚂蚁。如果相邻的单元格没有蚂蚁,则狮蚁的移动方式与蚂蚁一样。注意狮蚁不能相互残食。

*繁殖。如果狮蚁存活了8个时间步,在第八个时间步结束后它将生下一只新狮蚁,生殖方式与蚂蚁一样。

*饿死。如果一只狮蚁在3个时间步里没有吃到蚂蚁,在3个时间步结束后将被饿死。死去的狮蚁将在网格里剔除。每一轮移动中狮蚁都先于蚂蚁移动。

编程要求:

用C++实现这一模拟,并使用ASCII字符O来表示蚂蚁,X表示狮蚁。绘制网格世界。创建Organism类来封装蚂蚁和狮蚁的共用数据。这个类应该包含一个名为move()的虚拟函数。此函数是在派生类Ant和Doodlebug中定义的。你可能需要另外的数据结构来跟踪哪些生物已经移动了。

用5只蚂蚁和100只狮蚁来初始化这个世界。在每一个时间步后,提示用户回车进行下一个时间步。
...全文
379 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kimgbo 2014-06-19
  • 打赏
  • 举报
回复
我以自己解决,结贴吧
赵4老师 2014-05-13
  • 打赏
  • 举报
回复
buyong 2014-05-13
  • 打赏
  • 举报
回复
什么是“狮蚁”?
baileileiheu 2014-05-12
  • 打赏
  • 举报
回复
menzi11 2014-05-12
  • 打赏
  • 举报
回复
楼主你这是把作业原封不动一字不改还带着错别字地敲上来的吗?
pokler0000 2014-05-12
  • 打赏
  • 举报
回复
hjl0508 2014-05-12
  • 打赏
  • 举报
回复
crisy1991 2014-05-12
  • 打赏
  • 举报
回复
逸萌 2014-05-09
  • 打赏
  • 举报
回复
赵4老师 2014-05-09
  • 打赏
  • 举报
回复
这类问题的关键是: 用两个不同的变量或结构或结构数组比如A和B,分别保存某一刻前和某一刻后的每个对象的状态。然后时间前进过此刻,A=B,……

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧