Разорвать и перезапустить пока цикл c ++ Windows - PullRequest
0 голосов
/ 03 февраля 2012

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

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

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

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

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

Так что я хочу разорвать оставшуюся часть цикла while, но продолжаю работать.

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

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

Ответы [ 2 ]

4 голосов
/ 03 февраля 2012

Звучит так, как будто вы хотите использовать continue:

while (someCondition)
{
  doSomething();

  if (someOtherCondition)
    continue;

  doSomethingElse();
}

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

1 голос
/ 03 февраля 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...
    ... 
    ...
}
...