Java写一个围棋游戏,如何判断是不是死棋(没有生命的儿子)?
根据围棋的规则,编写算法,计算每一颗棋子的棋数,根据棋盘的经纬度和周围棋子的数量就可以判断。
按照围棋的规则,连成一片的棋子享受所有的棋局。连接成块的块定义为一个块组的对象,经纬度最小的块作为对象的唯一标记。每一个棋子落下,棋子组的属性都会发生变化,包括棋子组的合并,棋子组的真气变化。
为了找到每次移动都会受到影响的棋组,可以把每个棋组空中点的经纬度作为索引,这也需要随着棋组的变化而变化;
根据围棋规则,棋数等于0的棋组是死棋。每掉一个棋子后,更新所有棋组的信息,通过遍历将qi数等于0的所有棋组从棋盘中移除。考虑到“劫”的规则,棋手出招后,需要先判断对方的死棋,再判断自己的死棋。符合“劫”的情况,需要追加记录,防止董事会陷入僵局;