C ++指针数组没有正确输入数据

时间:2016-02-01 21:48:56

标签: c++ pointers multidimensional-array

我正在用C ++开展一个学校项目。

目前我的问题在于' placePiece'功能。我似乎无法将播放器的char值正确地放入代表游戏板的数组中,它总是似乎分配了' p' (玩家)和' c' (计算机)重视游戏板内完全随机的单元格。

放置片段功能:

    bool placePiece(char** pBoard, int colSize, int rowSize, int columnSelection, char player)
    {    
            char* pRow = pBoard[columnSelection];
            for (int j = colSize; j >0; j--){
                if(pRow[j] == ' '){
                    pRow[j] = player;
                    return true;
                }
            }

        return false;
    }

印刷板功能:

void printBoard(char** pBoard, int colSize, int rowSize){

    for(int i = 0; i < rowSize; i++){       //Print the current values of each cell
        char* pRow = pBoard[i];
        for (int j = 0; j < colSize; j++) {
            if(j==0){
            std::cout << "|" << pRow[j] << "|";
            }else{
                std::cout << pRow[j] << "|";
            }
        }
        std::cout << std::endl<<std::endl;
    }

}

int main(总而言之,显然有很多缺失的代码可以完全完成未包含在此处的项目,因为它与手头的问题无关。)

    int main(){

        srand (time(NULL));

        int32_t connectedPiecesToWin = 0;
        int32_t rowSize = 0;
        int32_t colSize = 0;


        std::cout << "How many connected pieces does it take to win?" << std::endl;
        std::cin >> connectedPiecesToWin;

        rowSize = connectedPiecesToWin + 2;
        colSize = connectedPiecesToWin + 3;

        char** pBoard = NULL;    
        // initialize board
        //Assign first dimension
        pBoard = new char*[rowSize];

        //Assign second dimension
        for(int i = 0; i < rowSize; i++){
            pBoard[i] = new char[colSize];
            char* pRow = pBoard[i];
            for(int j=0;j<colSize;j++){
                pRow[j] = ' ';
            }
        }

        char player = 'p';
        do
        {
            int columnChoice = 0;

            do
            {
                if (player == 'p')
                {
                        printBoard(pBoard, colSize, rowSize);
                        std::cout << "Player's column: ";
                        std::cin >> columnChoice;
                }
                else
                {
                    // computers turn
                    columnChoice = rand() % colSize;
                }
            } while (!placePiece(pBoard, colSize, rowSize, columnChoice, player));

printBoard(pBoard, colSize, rowSize);
        return 0;
    }

0 个答案:

没有答案