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; } }
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)); }
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)); }