Пример #1
0
        protected void checkStaleMate()
        {
            _staleMate = true;
            var posFuncs = new List <BoardUtil.PosFunc>()
            {
                checkPos
            };

            BoardUtil.functionToEachPos(posFuncs, Info.Board);
            if (_staleMate)
            {
                endGame(true);
            }
        }
Пример #2
0
        protected override void turnEnded()
        {
            if (getTurn() % intervalInfluence == 0)
            {
                foreach (var id in _unInfluencedPoses.Keys)
                {
                    var player = Info.getPlayer(id);
                    if (player.isLoser())
                    {
                        continue;
                    }

                    _unInfluencedPoses[id].Clear();
                }
            }

            BoardUtil.functionToEachPos(new List <BoardUtil.PosFunc> {
                placeProcess
            }, Info.Board);

            if (getTurn() % intervalInfluence == 0)
            {
                foreach (var id in _unInfluencedPoses.Keys)
                {
                    if (_unInfluencedPoses[id].Count > 0)
                    {
                        var rand = Random.Range(0, _unInfluencedPoses[id].Count);
                        Info.Board.getPiece(_unInfluencedPoses[id][rand]).getAttribute <CoVidAttribute>().influenced(getTurn());
                    }
                }
            }

            Info.checkLoser();
            if (Info.getRemainPlayerNum() <= 1)
            {
                endGame();
            }
        }