Заявления не работают, но где?

Пытаюсь выполнить последнее задание на квартал, сбалансировать свою работу и другие занятия. Мне бы хотелось, чтобы дополнительная пара глаз рассказывала мне, где в мире мои утверждения выходят за рамки моей функции:

Это файл реализации. Связанный заголовок не выдает ошибок.

Я получаю следующие ошибки:

1.) В файле из tests.cpp: 7: 0: GBoard.cpp: 31: 2: error: ожидаемый неквалифицированный идентификатор перед "for"

for (int r=0; r<15; r++)

2.) GBoard.cpp: 31: 14: ошибка: «r» не называет тип

for (int r=0; r<15; r++)

Но я почти уверен, что 2 - это часть моего кода, каким-то образом находящаяся вне функции.

Вот мой код, части отредактированы, поэтому я не попадаю под плагиат:

bool Gfunction::makeMove(int redacted,int redacted,char secret)
{

    if (redacted >= 0 && redacted < 15 && redacted >= 0 && redacted<15)
    {
        if (redacted() == UNFINISHED && function[redacted][redacted] == '.')
        function[redacted][redacted] = secret;
        return true;
    }   
        else
    {
        return false;

    }

    int track = 0;


    for(int r=0;r<15;r++)
    {
        track = 0;
            for(int c=0;c<15;c++)
            {
                    if (function[r][c] == secret)
                    {
                track++;
                    if (track==5)
                        {
                                if (secret == 'x')
                                secret squirrel stuff = X_WON;
                                else
                            secret squirrel stuff = O_WON;
                                return true;
                    }
                }
                else
                {
                    track = 0;
                }
        }

    }   



    for(int r=0;r<15;r++)
    {
            track = 0;
            for(int c=0;c<15;c++)
            {
                    if (function[r][c] == secret)
                    {  
                        track++;
                        if (track==5)
                        {
                            if (secret == 'x')
                                secret squirrel stuff = X_WON;
                                else
                                secret squirrel stuff = O_WON;
                                return true;
                        }

                    }
                        else
                    {
                            track = 0;
                    }
            }

    }



        int r = 0, c = 0;
        for(int redacted = 0; redacted<15; redacted++)
        {
            r = redacted;
                c = 0;
                track = 0;
                while(r < 15 && c < 15)
                {
                    if (function[r][c] == secret)
                    {
                        track++;
                        if (track == 5)
                        {
                                if (secret == 'x')
                                secret squirrel stuff = X_WON;
                                else
                                secret squirrel stuff = O_WON;
                                return true;
                        }
                }
                        else
                        {
                                track = 0;
                        }
                                r++;
                                c++;
        }
    }

    for(int redacted = 0; redacted<15; redacted++)
    {
            r=0;
            c=redacted;
            track=0;
            while(r<15 && c<15)
                {
                    if (function[r][c] == secret)
                    {
                            track++;
                            if (track == 5)
                            {
                                if (secret == 'x')
                                secret squirrel stuff = X_WON;
                                else
                                secret squirrel stuff = O_WON;
                                return true;
                        }
            }
                        else
                        {
                                track = 0; 
                        }
                                r++;
                                c++;
                }
        }


    for(int redacted=0; redacted<15; redacted++)
    {
        r=redacted;
        c=15-1;
        track=0;
        while(r<15 && c>=0)
        {
                    if (function[r][c] == secret)
                    {
                        track++;
                        if (track == 5)
                {
                    if (secret == 'x')
                            secret squirrel stuff = X_WON;
                            else
                            secret squirrel stuff = O_WON;
                            return true;
                        }
            }
                            else
                    {
                            track = 0;
                    }
                            r++;
                            c--;
        }
    }


    for(int redacted=15-1;redacted>=0;redacted--)
    {
            r=0;
            c=redacted;
            track=0;
            while(r<15 && c>= 0)
            {
                    if (function[r][c] == secret)
                    {
                        track++;
                        if (track == 5)                    
                        {
                                if (secret == 'x')
                                secret squirrel stuff = X_WON;
                                else
                                secret squirrel stuff = O_WON;
                                return true;
                        }
            }
                        else
                        {
                            track = 0;
                        }
                            r++;
                            c--;
            }
        } 


    for(int r=0;r<15;r++)
    {
            for(int c=0;c<15;c++)
            {
            if (function[r][c] == '.')
                {
                    secret squirrel stuff = UNFINISHED;
                    return true;
            }
        }
    }  
        secret squirrel stuff = DRAW;
        return true;
}

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

Some programmer dude 28.11.2018 09:51

Вот почему мы должны структурировать код как логически, так и даже физически. Между прочим, моя ставка - что-то произошло между строками 76-101. Я подозреваю, что у этого for есть несбалансированные брекеты.

luk32 28.11.2018 09:56

Мне пришлось удалить некоторые из моих комментариев / руководств, чтобы код правильно отображался в комментарии /, чтобы меня не поразили плагиатом. Спасибо за руководство. Я уже искал закрытие}, но не смог найти, где его не хватает.

Beausmith94 28.11.2018 10:09

Между прочим, большая часть кода, который вы показываете, все равно никогда не запустится, поскольку вы всегда вернетесь из функции внутри первого if else.

Some programmer dude 28.11.2018 10:11

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

Some programmer dude 28.11.2018 10:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
42
1

Ответы 1

Дважды проверьте свои самые сокровенные утверждения if. Например:

if (track == 5)
{
    if (secret == 'x')
        secret squirrel stuff = X_WON;
        else
        secret squirrel stuff = O_WON;
        return true;
}

может быть

if (track == 5)
{
    if (secret == 'x')
        secret squirrel stuff = X_WON;
    else
        secret squirrel stuff = O_WON;
    return true;
}

или

if (track == 5)
{
    if (secret == 'x')
        secret squirrel stuff = X_WON;
     else{
        secret squirrel stuff = O_WON;
        return true;
     }
}

в зависимости от вашей логики алгоритма.

Другие вопросы по теме