public Coordinate GetRandomNonRockCoordinate(Random r) { do { var randomColumn = r.Next(0, 7); var randomRow = r.Next(0, 7); var field = _boardLayout[randomRow, randomColumn]; if (field.Piece.Type != PieceType.Rock) { return(CoordinateProvider.GetCoordinate(randomColumn, randomRow)); } } while(true); }
public static ImportedMoveList FromImportableString(string importableString) { var chunks = Enumerable.Range(0, importableString.Length / 2).Select(i => importableString.Substring(i * 2, 2)); var l = new ImportedMoveList(); foreach (var chunk in chunks) { var col = chunk[0]; var row = Convert.ToInt32(Char.GetNumericValue(chunk[1])); var c = CoordinateProvider.GetCoordinate(col, row); l.Add(c); } return(l); }
public Coordinate GetRandomEmptyCoordinate(Random r) { if (GetNumberOfFreeSpaces() > 0) { do { var randomColumn = r.Next(0, 7); var randomRow = r.Next(0, 7); var field = _boardLayout[randomRow, randomColumn]; if (field.Piece.Type == PieceType.Empty) { return(CoordinateProvider.GetCoordinate(randomColumn, randomRow)); } } while(true); } return(Coordinate.InvalidCoordinate); }
public Board(Field[ , ] initialLayout) { for (var rowIndex = 0; rowIndex < RowLength; rowIndex++) { for (var columnIndex = 0; columnIndex < ColLength; columnIndex++) { var originalField = initialLayout[rowIndex, columnIndex]; var coordinate = CoordinateProvider.GetCoordinate(columnIndex, rowIndex); var newField = new Field(new Piece(originalField.Piece.Type, originalField.Piece.OuterColor, originalField.Piece.InnerColor), coordinate); var newField1 = new Field(new Piece(originalField.Piece.Type, originalField.Piece.OuterColor, originalField.Piece.InnerColor), coordinate); _initialLayout[rowIndex, columnIndex] = newField1; _boardLayout[rowIndex, columnIndex] = newField; if (newField1.Piece.Type != PieceType.Rock) { _maximumFreeSpaces++; } } } }
public List <Coordinate> GetAllEmptySpaces() { var emptyCoordinates = new List <Coordinate>(); if (IsFull()) { return(emptyCoordinates); } for (var rowIndex = 0; rowIndex < RowLength; rowIndex++) { for (var columnIndex = 0; columnIndex < ColLength; columnIndex++) { var field = _boardLayout[rowIndex, columnIndex]; if (field.Piece.Type == PieceType.Empty) { emptyCoordinates.Add(CoordinateProvider.GetCoordinate(columnIndex, rowIndex)); } } } return(emptyCoordinates); }