置顶

Cell要不要知道Field?

翁恺 发表于2023年04月17日
<p>在城堡游戏中,Handler是知道Game的;在细胞自动机中,Cell是不知道Field的。在现在版本的狐狸与兔子中,Cell也是不知道Field的。</p><p>那么,如果让Cell知道Field会怎样呢?两种做法各有什么优缺点呢?</p><p><br/></p>
2 回复

    1楼

  • Zhai Yi Xin 发表于2023年07月06日
    1 | 0 | 举报
    <p>在城堡游戏中,HandlerGo需要使用并修改game.currentRoom。在细胞自动机中,需知道某个细胞邻居细胞的数量然后决定这个细胞的死活,这是由CellMachine做的。在狐狸与兔子中,为了让动物移动,首先field.getFreeNeighbour()得到有空的位置,然后传给animal.move()得到一个随机的位置,然后再传给field.move()将这个cell搬到那个位置上。这里field和animal的交互都是要经手第三方的,如果要不经手第三方,可以这么做:直接把feild传给animal.move(),然后animal调用field.getFreeNeighbour(),选好位置之后再调用field.move()把自己搬到那个位置上。不过这样animal.move()里有feild之后,以后要修改Field就要修改Animal,而不是第三方。而且如果以后容器不只有Field,还有比如说三维空间的话,这个函数就不能复用了。因此,这就好像把animal.move()绑在了feild上。</p>
    Zhai Yi Xin 发表于2023年07月06日
    添加评论
  • 2楼

  • Moonems 发表于2023年07月28日
    0 | 0 | 举报
    <p>知道field:耦合度较高,后期程序扩展比较困难</p><p>不知道field:可扩展性强,但需要第三方来进行操作</p>
    Moonems 发表于2023年07月28日
    添加评论