相关疑难解决方法(0)

什么是最好的战舰AI?

战舰!

早在2003年(当时我17岁),我就参加了战舰AI编码比赛.即使我输掉了那场比赛,我也玩得很开心并从中学到了很多东西.

现在,我想在这场比赛中复活,寻找最好的战舰AI.

这是框架,现在托管在Bitbucket上.

获奖者将获得+450声望!比赛将于2009年11月17日开始.不接受17日零时以外的参赛作品或编辑.(中央标准时间)提前提交您的参赛作品,这样您就不会错过机会!

为了保持这个目标,请遵循竞争精神.

游戏规则:

  1. 游戏将在10x10网格上进行.
  2. 每个参赛者将5艘船(长度分别为2,3,3,4,5)放置在其网格上.
  3. 没有船只可能重叠,但它们可能相邻.
  4. 然后竞争对手轮流对对手开枪.
    • 游戏的一个变种允许每次击球射击多次射击,每个幸存的船只射击一次.
  5. 如果击球下沉,命中或未命中,对手将通知对手.
  6. 当任何一个玩家的所有船只都沉没时,游戏结束.

比赛规则:

  1. 竞争的精神是找到最好的战舰算法.
  2. 任何被视为违反竞争精神的东西都将被取消资格.
  3. 干扰对手是违背竞争精神的.
  4. 多线程可以在以下限制下使用:
    • 在轮到你的时候,不超过一个线程可能正在运行.(但是,任意数量的线程可能处于"暂停"状态).
    • 没有线程可以以"正常"以外的优先级运行.
    • 鉴于上述两个限制,您将在转弯期间保证至少3个专用CPU核心.
  5. 每个游戏的CPU时间限制为1秒,分配给主线程上的每个竞争对手.
  6. 时间不多会导致当前游戏失败.
  7. 任何未处理的异常都将导致失去当前的游戏.
  8. 允许网络访问和磁盘访问,但您可能会发现时间限制相当令人望而却步.然而,为了减轻时间紧张,增加了一些设置和拆卸方法.
  9. 代码应作为答案发布在堆栈溢出上,或者如果太大则链接.
  10. 条目的最大总大小(未压缩)为1 MB.
  11. 官方说来,.Net 2.0/3.5是唯一的框架要求.
  12. 您的条目必须实现IBattleshipOpponent接口.

评分:

  1. 101场比赛中最好的51场比赛是一场比赛的胜利者.
  2. 所有竞争对手都将相互配对,循环风格.
  3. 然后,最好的一半竞争者将参加双重淘汰赛以确定获胜者.(实际上,2的最小功率大于或等于一半.)
  4. 我将使用TournamentApi框架进行锦标赛.
  5. 结果将在此处公布.
  6. 如果您提交了多个条目,则只有您的得分最高的条目才有资格获得双重条目.

祝好运!玩得开心!


编辑1:
感谢Freed,他在Ship.IsValid函数中发现了一个错误.它已被修复.请下载该框架的更新版本.

编辑2:
由于人们对将统计信息持久存储到磁盘等方面非常感兴趣,因此我添加了一些应该提供所需功能的非定时设置和拆除事件.这是一个半破坏性的变化.也就是说:界面已经过修改以添加功能,但不需要它们.请下载该框架的更新版本.

编辑3:
错误修复1:GameWon并且GameLost只在超时的情况下被调用.
错误修复2:如果引擎在每场比赛中超时,则比赛永远不会结束.
请下载该框架的更新版本.

编辑4:
比赛结果:

.net c# artificial-intelligence

315
推荐指数
10
解决办法
6万
查看次数

标签 统计

.net ×1

artificial-intelligence ×1

c# ×1