哈喽比特

>

资源

>

蚂蚁殖民地模拟器

发表于2025-10-21 15:10:44 | 总阅读数:473 次

预览此【ONE HTML】执行效果:ant_colony.html

这是一个基于 单HTML页面蚂蚁殖民地模拟器,由 Christopher Powroznik 开发,用于参加 One HTML Page Challenge

以下是其核心内容整理:


核心概念

  • 模拟蚂蚁在二维网格中挖掘隧道、寻找食物、繁殖后代。
  • 使用纯 HTML + CSS + JavaScript 实现,无需外部依赖。
  • 仅支持 Chrome 桌面版,Safari 和 iOS 不支持。

世界结构

  • 网格系统:每个格子可以是:
    • 未挖掘(
    • 已挖掘(空白或隧道)
    • 有物体(蚂蚁、食物、女王)
  • 使用 gridobjects 两个对象存储地图和实体。

实体类型

类型字母功能
女王 QQ每隔一定时间生成新蚂蚁或女王
蚂蚁 AA挖掘隧道、寻找食物、移动
食物9~1可被蚂蚁消耗,耗尽后消失

⚙️ 行为机制

蚂蚁行为:

  • 每 tick 移动一次,优先寻找食物。
  • 饥饿值下降,耗尽则死亡并变成食物。
  • 使用视线扫描(sight)决定移动方向。

女王行为:

  • 每 30 tick 尝试繁殖一次:
    • 有 2% 概率生成新女王
    • 否则生成新蚂蚁

统计信息

  • 实时显示:
    • 女王数、蚂蚁数、食物数
    • 已探索格子数、运行时间(tick)
    • 食物掉落概率、女王出生概率、繁殖间隔

关键参数

参数名含义
foodChance0.03挖掘时生成食物的概率
queenChance0.02女王繁殖出新女王的概率
birthTime30女王繁殖间隔(tick)
tickTime50ms每逻辑帧间隔
drawTime50ms每渲染帧间隔

移动与视线系统

  • 蚂蚁/女王使用 sight() 函数扫描四个方向:
    • 返回每个方向最先遇到的物体类型和距离
  • 使用 priorityDirection() 决定移动方向:
    • 优先朝向食物或空白区域
    • 可设置距离惩罚(distanceNegative)

技术亮点

  • 使用类(WorldObject, Bug, Ant, Queen, Food)封装实体行为
  • 使用 coord(x, y) 作为键值存储地图和实体
  • 使用 setInterval + requestAnimationFrame 实现逻辑与渲染分离
  • 使用 Unicode 字符绘制隧道结构(如 ╣║╗╝╚╔╩╦╠═╬

总结一句话

这是一个用 单HTML文件 实现的 自组织蚂蚁殖民地模拟器,展示了如何通过简单规则生成复杂行为,适合用于学习 面向对象设计、状态管理、简单AI行为模型

版权声明

本站资源收集于网络,只做学习和交流使用,版权归原作者所有。

若为付费内容,请在下载后24小时之内自觉删除,若作商业用途请购买正版。

由于未及时购买和付费发生的侵权行为,与本站无关,本站发布的内容若侵犯到您的权益,请联系邮箱 websitesfeedback@gmail.com 删除,我们将及时处理!