Прервите и перезапустите, пока цикл С++ Windows

Я начинающий программист, так что будьте вежливы.

Ну, я пытаюсь написать простую игру Terminal Backgammon, просто для удовольствия, но у меня есть проблема.

Вся игра проходит в цикле while, который повторяется до тех пор, пока никто не переместит все свои кубики в конец доски. Простое целое число управляет тем, кто играет черным или белым.

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

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

Поэтому я как бы хочу сломать остальную часть цикла while, но оставить его в рабочем состоянии.

Мне немного сложно объяснить проблему, но я надеюсь, что вы понимаете.

Большое спасибо - Мартин


person user680881    schedule 03.02.2012    source источник
comment
Не могли бы вы опубликовать несколько примеров кода?   -  person Jedidja    schedule 03.02.2012


Ответы (2)


Похоже, вы хотите использовать continue:

while (someCondition)
{
  doSomething();

  if (someOtherCondition)
    continue;

  doSomethingElse();
}

В этом примере, если someOtherCondition истинно, оператор continue заставит программу вернуться к началу цикла, а не продолжить выполнение следующих операторов. Если someOtherCondition ложно, doSomethingElse() запустится как обычно.

person Carl Norum    schedule 03.02.2012
comment
Большое спасибо, это именно то, что мне нужно :D - person user680881; 03.02.2012

Я думаю, это примерно то, что вы хотите знать. Надеюсь, поможет.

while( keepRunning )
{
    bool noPossibleMoves = checkForPossibleMoves();

    setup for each loop iteration
    Do things here that are always necessary.
    if( noPossibleMoves )
    {
        continue;  // This will go to the top of the while loop
    }
    wait for user input etc...
    ... 
    ...
}
person JimR    schedule 03.02.2012
comment
Спасибо большое, очень помог полностью! - person user680881; 03.02.2012