关于AI

今天很冲动,在辅导员的鼓励下我勇敢得去报了传说中的智能体大赛……

不过突然发现我其实什么都不懂….
题目很有趣的:
(官方网站:http://ai.net9.org/2007/

甲虫的游戏

  在原始的草原里,住着一群可爱的小甲虫。在他们的世界里,除了蓝天白云、绿草原野就没有别的东西了…哦~还有他们的邻居蜗牛们。
  在这片草原里,有一块神奇的石头,它不分日夜地发出荧蓝色的光芒。据说在它的作用下,每只昆虫都能够在紧张的心情下,使用自己的精神力量来施展一些小小的魔法。
  有一天,两只寂寞的小甲虫Tracy和Sherry突然想玩捉虫(原来好象叫捉人-_-b)的游戏,于是想拉上蜗牛们一起玩。可是不幸的是,他们只找到了一只蜗牛O’Neal。那么该怎么办才好呢?想啊想啊,想出了一个公平的规则,那就是比赛两次,第一次Tracy和O’Neal合作捉Sherry,而第二次Sherry和O’Neal合作捉Tracy,比谁被捉的时间更短。可是O’Neal很笨,都不知道该怎么才能帮助队友。于是,他们还决定,O’Neal每一步怎么走都听他的Partner。
  正当他们准备开始游戏的时候,竟然听见那块荧蓝色的石头开口说话了…它说:“我已经在这片草原里呆了25000多年了,很是寂寞,从来没有动过,也从来没有看人玩耍过。今天就让我当裁判,陪你们玩一会儿吧。”“那,就让我们能够使用魔法吧!我还从来没见过你的力量呢~~”,Sherry说。“那好吧,!$#$@%@^%$%!^&$#^!#%$!!”,石头说,“你们已经可以使用魔法了,只有你们的精神力才能限制你们使用魔法。不过要记住,你们的精神力只有在恰当的时候才能够使用,否则就毫无效果。比如当你想捉住对方的时候,你的精神力会禁止你使用瞬移。”
  “好~~~~那就让我们开始游戏吧!”
  “好!!”
  于是,草丛里响起了清脆的嬉笑声。

  该你咯~~让你写一个程序,代替Sherry,与Tracy和O’Neal一起玩这个游戏。
  地图长宽均不大于100,地图上仅有空地和障碍物两种,空地甲虫和蜗牛都可以行走,而障碍物则都不能行走。
  甲虫和蜗牛在地图上占有1×1的一小格,除逃避追捕的甲虫外,甲虫和蜗牛都不能占据同一格(当逃避追捕的甲虫和另两位占据同一格的时候,比赛就结束了)。不过蜗牛行走后会留下能够持续8回合的粘液,如果有一只小甲虫不小心走到了还没有干的粘液上,就会被粘住直到那块粘液干为止。
  游戏分两轮,选手的程序一次与O’Neal合作抓Sherry,一次躲避Sherry和O’Neal的围攻。采用回合制,每一回合行动顺序如下:
1. 躲避抓捕的甲虫
2. 与O’Neal合作的甲虫
3. O’Neal
4. O’Neal在8回合前所处位置上的粘液被晒干
  当任何时候,两个生物共同占据一格时,或回和数超过2000后游戏结束。

  魔法是一种行动,每一回合你可以用释放魔法来代替你的行走。
  精神力是一个不可恢复的数值属性,初始时甲虫拥有100点,蜗牛拥有20点,只有当你的精神力足够时才可以释放指定魔法。
  当你想捉住对方时,你能够使用以下魔法:
1
陷阱
  让自己所在格子设为不可行走(走上去后再也不能移动),本方甲虫移动后生效。在已设置过路障和陷阱的格子上不能使用本魔法。
  耗费甲虫55点精神力
2
路障
  在自己所在格子设置路障,走上去后下一回合不能行走,本方甲虫移动后生效。路障一次使用后失效,在已设置过路障和陷阱的格子上不能使用本魔法。
  耗费甲虫5点精神力
3
飞翔
  使出短距离飞翔技能,可以在一回合内到达曼哈顿距离< =4的任意格子。   耗费甲虫55点精神力 4 求雨   蜗牛口念古老的咒语,接下来10回合内下雨,在此期间所有蜗牛的痕迹持续时间增加5回合(使用魔法时地面上已有的痕迹时间也会延长)。   耗费蜗牛10点精神力

当你想逃脱对方的捕捉时,你能够使用以下魔法:
1
瞬移
  瞬间移动到地图的任意位置。
  耗费甲虫55点精神力
2
穿墙
  指定一个方向,无论该方向下一格是否是障碍物都将无条件移动一格。注意在使用该魔法之后的下一回合,你行动完毕之后,不可以仍然滞留在此地,否则被直接判负。
  耗费甲虫30点精神力
3
弹弓
  用弹弓攻击蜗牛使其眩晕5回合不能移动。
  耗费甲虫20点精神力
4
阳光
  使用神秘的魔法使太阳光变强烈10回合,在此期间所有蜗牛的痕迹持续时间减少5回合(使用魔法时地面上已有的痕迹时间也会缩短,而原来剩余时间不足5回合的会瞬间被晒干)。
  耗费甲虫45点精神力

评分标准如下:(假设Tracy和O’Neal抓Sherry)
1.
若结束时Tracy与Sherry占据同一格
Tracy的分数=2500-当前的回合数-Tracy被粘液粘住的回合数*5
Sherry的分数=当前的回合数+Sherry被粘住的回合数*5
2.
若结束时O’Neal与Sherry占据同一格
Tracy的分数=2500-当前的回合数-Tracy被粘液粘住的回合数*5
Sherry的分数=当前的回合数+Sherry被粘住的回合数*5
3.
若结束时,回合数超过2000
Tracy的分数=0
Sherry的分数=500+当前的回合数+Sherry被粘住的回合数*5
选手的得分为两轮比赛得分的和。