Beispiel #1
0
        public void RemoveChip(int column)
        {
            if (column < 0 || column >= Width)
            {
                throw new InvalidColumnException(
                          StringResources.ColumnOutsideTheScope("RemoveChip", column));
            }

            for (int i = 0; i < Height; i++)
            {
                if (fields[i, column].PlayerId == 0)
                {
                    continue;
                }
                fields[i, column].PlayerId = 0;
                LastMove = null;
                return;
            }
        }
Beispiel #2
0
        public void ApplyMove(IMove move)
        {
            Requires.IsNotNull(move, "move");

            if (move.Column < 0 || move.Column >= Width)
            {
                throw new InvalidColumnException(
                          StringResources.ColumnOutsideTheScope("ApplyMove", move.Column));
            }

            if (fields[move.Row, move.Column].PlayerId == 0)
            {
                fields[move.Row, move.Column].PlayerId = move.PlayerId;
                LastMove = move;
                return;
            }

            throw new InvalidColumnException(
                      StringResources.ColumnIsFull("ApplyMove", move.Column));
        }
Beispiel #3
0
        public IMove InsertInColumn(int column, int playerId)
        {
            if (column < 0 || column >= Width)
            {
                throw new InvalidColumnException(
                          StringResources.ColumnOutsideTheScope("InsertInColumn", column));
            }

            for (int i = Height - 1; i >= 0; i--)
            {
                if (fields[i, column].PlayerId > 0)
                {
                    continue;
                }
                fields[i, column].PlayerId = playerId;

                LastMove = PerformMove(i, column, playerId, 4);
                return(LastMove);
            }

            throw new InvalidColumnException(
                      StringResources.ColumnIsFull("InsertInColumn", column));
        }