Я пытаюсь заполнить массив целыми числами, используя для циклов - PullRequest
0 голосов
/ 28 марта 2020

Я очень новичок в объектно-ориентированном программировании, и у меня возникли проблемы с правильной работой метода InitializeBoard в проекте скользящей головоломки. Я продолжаю получать сообщение об ошибке «выражение должно иметь тип указателя на объект» и другую ошибку, в которой говорится, что «нижний индекс требует массив или тип указателя». Вот код, над которым я сейчас работаю ...

// EXTERNAL DEPENDENCIES
#include "SlidingPuzzle.h"

// CONSTRUCTOR METHOD(S)
SlidingPuzzle::SlidingPuzzle() {
    this->rows = 3;
    this->cols = 3;
    InitializeBoard();
}

SlidingPuzzle::SlidingPuzzle(int newRows, int newCols) {
    // Attempt to set the requested number of rows
    if (this->setRows(newRows) == false) {
        this->rows = 3;
    }

    // Attempt to set the requested number of cols
    if (this->setCols(newCols) == false) {
        this->cols = 3;
    }

    InitializeBoard();
}

// SETTERS
bool SlidingPuzzle::setRows(int newRows) {
    // Only accept the new number of rows if number is non-negative
    bool newValueAccepted = false;
    if (newRows > 0) {
        this->rows = newRows;
        newValueAccepted = true;
    }

    return newValueAccepted;
}

bool SlidingPuzzle::setCols(int newCols) {
    // Only accept the new number of cols if number is non-negative
    bool newValueAccepted = false;
    if (newCols > 0) {
        this->cols = newCols;
        newValueAccepted = true;
    }

    return newValueAccepted;
}

// UTILITY METHOD(S)
void SlidingPuzzle::InitializeBoard() {
    int count = 1;

    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            this->theBoard[i][j] = count;
            count++;
        }
    }
}

Мне кажется, что все хорошо до конца кода, когда я пытаюсь написать метод инициализации платы. Кто-нибудь может диагностировать мои проблемы? Я думаю, что меня смущает то, как использовать указатель с массивом

---- EDIT -----

my header file...
// PRE-PROCESSOR
#ifndef __SLIDINGPUZZLE__
#define __SLIDINGPUZZLE__

#define COLOR_DEFAULT   7
#define COLOR_RED       12
#define COLOR_GREEN     10

#define SLIDE_UP        1
#define SLIDE_DOWN      2
#define SLIDE_LEFT      3
#define SLIDE_RIGHT     4

// EXTERNAL DEPENDENCIES
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;

// SLIDING PUZZLE OBJECT SPECIFICATION
class SlidingPuzzle {
private:
    int rows;
    int cols;
    int** theBoard;

public:
    // CONSTRUCTOR METHOD(S)
    SlidingPuzzle();
    SlidingPuzzle(int newRows, int newCols);

    // GETTER METHOD(S)
    int getRows();
    int getCols();

    // SETTER METHOD(S)
    bool setRows(int newRows);
    bool setCols(int newCols);

    // UTILITY METHOD(S)
    void InitializeBoard();
    void PrintBoard();
    bool SlideTile(int directionCode);
    void ScrambleBoard();

};

#endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...