public GameState(uint i_AmountOfPlayers, uint i_NumRows, uint i_NumCols) { uint diagonalSize = Math.Min(i_NumRows, i_NumCols); m_TotalNumOfSetFunctionCalls = 0; m_DiagonalState = new BoardLineState(BoardLineState.eLineType.Diagonal, i_AmountOfPlayers, diagonalSize); m_AntiDiagonalState = new BoardLineState(BoardLineState.eLineType.AntiDiagonal, i_AmountOfPlayers, diagonalSize); r_RowsState = createStateArray(BoardLineState.eLineType.Row, i_AmountOfPlayers, i_NumCols, i_NumRows); r_ColsState = createStateArray(BoardLineState.eLineType.Col, i_AmountOfPlayers, i_NumRows, i_NumCols); r_FreePoints = createBoardPointsLinkedList(i_NumRows, i_NumCols); }
// Creates a line state array of same eLineType private BoardLineState[] createStateArray(BoardLineState.eLineType i_Type, uint i_AmountOfPlayers, uint i_LineLength, uint i_AmountOfItems) { BoardLineState[] lineStateArr = new BoardLineState[i_AmountOfItems]; for (int i = 0; i < i_LineLength; i++) { lineStateArr[i] = new BoardLineState(i_Type, i_AmountOfPlayers, i_LineLength); } return lineStateArr; }