public CheckerBoard(int rows, int cols, int tileScale = 80) { Rows = rows; Cols = cols; TileScale = tileScale; Board = new Board(rows, cols, tileScale); Reset(rows, cols); }
//public Dictionary<Point, CheckerPiece> CheckerPieceMap { get; set; } //copy constructor public CheckerBoard(CheckerBoard other) { Board = other.Board; MustJump = new[] { other.MustJump[0], other.MustJump[1] }; SelectedPiece = null; JumpMade = null; AllPieces = new List<CheckerPiece>(other.AllPieces.Count()); for (var i = 0; i < other.AllPieces.Count(); i++) { AllPieces.Add(new CheckerPiece(other.AllPieces[i].Row, other.AllPieces[i].Col, other.AllPieces[i].Color, other.AllPieces[i].Status)); if (other.JumpMade == null) continue; if (other.AllPieces[i] == other.JumpMade) { JumpMade = AllPieces[i]; } } }
public void Reset(int rows, int cols) { Rows = rows; Cols = cols; //Place the pieces bool black = true; Board = new Board(rows, cols, TileScale); AllPieces = new List<CheckerPiece>(); for (int row = 0; row < Rows; row++) //top to down { for (int col = Cols - 1; col >= 0; col--) // right to left { if (black) { var numPieceRows = Math.Floor((Rows - 2) / 2.0); if (row < numPieceRows) { var tempPiece = new CheckerPiece(row, col, 0); AllPieces.Add(tempPiece); } else if (row >= Rows - numPieceRows) { var tempPiece = new CheckerPiece(row, col, 1); AllPieces.Add(tempPiece); } } if (col != 0 || Cols % 2 != 0) black = !black; } } MustJump = new[]{false,false}; CheckAllAvailableMoves(); }