ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 3) онлайн

Вложенные ветвления if...else

Возможно, вам приходилось видеть приключенческие игры, предназначенные для ранних версий MS DOS. Их суть заключалась в следующем: играющий дви- гал своего «героя» по воображаемому ландшафту и замкам среди волшебников, сокровищ и т. д., нарисованных с помощью текстовых символов. Следующая программа, ADIFELSE, напоминает небольшую часть такой приключенческой игры.

// adifelse.cpp

// приключенческая игра с применением ветвления if...else #include <iostream> using namespace std;

#include <conio.h>        // для getche()

int main() {

  char dir='a';

  int x=10, y=10;

  cout << "Нажмите Enter для выхода...\n";

  while ( dir != '\r' )     // пока не будет нажата клавиша Enter

  {

    cout << "\nВаши координаты: " << x << ", " << y;

    cout << "\nВыберите направление (n,s,e,w): ";

    dir = getche();          // ввод символа

    if ( dir == 'n' )        // движение на север

      y--;

    else

      if ( dir == 's' )      // движение на юг

        y++;

      else

        if ( dir == 'e' )    // движение на восток

          x++;

        else

          if ( dir == 'w' )  // движение на запад

            x--;

  }                          // конец цикла while

  return 0;

 }                            // конец функции main()

Когда игра начинается, вы оказываетесь на бесплодном участке земли. Вы можете передвигаться на север, юг, запад и восток, а программа будет следить за вашими передвижениями и сообщать ваши текущие координаты. Начало дви­жения находится в точке с координатами (10, 10). С вашим героем не будет происходить ничего интересного, куда бы он ни пошел; пустая земля простира­ется во всех направлениях, как видно на рис. 3.11. Позже мы внесем в эту игру немного разнообразия.

Вот пример взаимодействия с нашей игрой:

 

Ваши координаты: 10.                10

Выберите направление            (n.s.e.w): n

Ваши координаты: 10.                9

Выберите направление            (n.s.e.w): e

Ваши координаты: 11.                9

Выберите направление            (n.s.e.w):

 

Рис. 3.11. Волшебное болото

Для выхода из программы нужно нажать клавишу Enter.

Данная программа не является шедевром среди видеоигр, однако в ней де- монстрируется применение вложенных ветвлений. Так, оператор if находится внутри оператора if...else, который, в свою очередь, также является частью ветв- ления if...else. Если первое условие не выполняется, то проверяется второе ус- ловие и т. д. до тех пор, пока не будут проверены все условия. Если какое-либо из условий выполняется, то изменяется соответствующая координата x или у, после чего программа выходит из всех вложенных ветвлений. Подобные вло- женные группы ветвлений называются деревом ветвлений.

 

30