Effendy Hendra Ответов: 2

Не могли бы вы помочь мне исправить мой код ?


я пытался запустить свой код, но вышла ошибка
class Board:public State(){

private:
    vector<int>blocks;

public:
    void generateIntlState() {
        int bIndex = 0;
        intializeBlocks();

    for(int r = 0; r < BOARDSIZE; r++){
        for(int c = 0; c < BOARDSIZE; c++){
            setVal(r,c blocks[bIndex]);
            bIndex ++;
        }
    }
    pushBlockDown();
    }



    void intializeBlocks(){
    int zeroCount = 1;

    for (int i = 1; i < 9; i ++){
        blocks.push_back(i);
        if(zeroCount<=3){
            blocks.push_back(0);
            }
            zeroCount++;
        }
    for( int i = 8; i > 0; i--){
        int num=rand()% i;
        int temp = blocks[i];
        blocks[i] = blocks[num];
        blocks[num] = temp;
        }
}

    void findActHeuristic(priority_queue<Action>&actions, Goal g){
    Action a;
    vector<Action>actions_vec;
    vector<State> states;
    int h = 0;

    for(int r = 0; r < BOARDSIZE; r++){
        for(int c = 0; c < BOARDSIZE; c++){
          if((r != c)&&(isFull(r))&&(isEmptu(c))){
            a.setAction(r,c);
            actions_vec.push_back(a);
            }
        }
    }
    for(int i = 0; i <actions_vec.size(); i++){
        State newState = nextState(actions_vec[i]);
        states.push_back(newState);
        if(newState.getVal(g.getRow(),g.getColumn()) == g.getVal()){
            h = 100;
        }else if(newState.isOnTop(g.getVal())&&(newState.isColumnEmpty(g.getColumn()))){
            h = 95;
        }else if(newState.isOnTop(g.getVal())&&(newState.isBlockEmpty(g.getColumn()))){
            h = 85;
        }else if(newState.isBlockEmpty(g.getRow(),g.getColumn())){
            h = 65;
        }else if(newState.isColumnEmpty(g.getColumn()))&&(getRowPos(g.getVal()) > g.getRow()){
            h = 55;
        }else if(newState.isColumnEmpty(g.getColumn())){
            h = 50;
        }else if(newState.isOnTop(ggetVal())){
            h = 40;
        }else if(newState.isColumnFull(g.getColumn())){
            h = 1;
        }else{
            h = 5;
        }
        actions_vec[i].setHeuristic(h);
        actions.push(actions_vec[i]);
    }


    template<typename T>void priority_queueQ(priority_queue<T>q){
    while(!q.empty()){
        q.top().printGoal();
        q.pop();
        }
        cout << endl;
        }
    }
};

А если я удалю () и выйдет еще одна ошибка

Что я уже пробовал:

Это все ошибка:
error: expected class-name before '(' token|
error: expected '{' before '(' token|
error: expected unqualified-id before ')' token|

Richard Deeming

Четыре почти одинаковых вопроса за два дня. Я думаю, тебе нужно вернуться и перечитать свои записи в классе.

CHill60

И просто для записи, вы нигде не сможете "запустить" свою программу, она даже не будет компилироваться.

2 Ответов

Рейтинг:
1

steveb

Хорошо, давайте посмотрим, с чего мне начать.

class Board:public State(){


должно быть

class Board:public State{


Цикл for

setVal(r, c blocks[bIndex]);


должно быть либо то, либо другое

setVal(r, c, blocks[bIndex]);


или удалите маркер "с".

Я предполагаю, что большинство функций объявлено в классе State? Потому что если это не так, то это еще одна проблема.

И я предполагаю, что у вас есть следующая строка, видимая в вашем коде:

#include <vector>
#include <queue>

using namespace std;


Effendy Hendra

Да если я удалю это будет еще одна ошибка

steveb

Потратьте несколько недель на чтение книги beginners c++ , чтобы получить представление о строгих правилах синтаксиса. На текущем перекрестке вы явно находитесь выше своей головы

Рейтинг:
0

OriginalGriff

Сколько раз вы будете задавать один и тот же вопрос, пока не научитесь исправлять это самостоятельно?
Почему мой код не работает ?[^]
Почему мой код не работает ?[^]
Не могли бы вы помочь мне исправить мой код ?[^]
Если бы вы сделали то, что вам сказали в первый раз, когда вы опубликовали это (и во второй, и в третий), вы могли бы решить эту проблему еще вчера.

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