Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 2: Программирование на Visual C# искусственного интеллекта (продолжение 1). Валерий Алексеевич Жарков. Читать онлайн. Newlib. NEWLIB.NET

Автор: Валерий Алексеевич Жарков
Издательство: Издательские решения
Серия:
Жанр произведения: Компьютеры: прочее
Год издания: 0
isbn: 9785005680433
Скачать книгу
для современной версии Visual Studio.

      Кратко, сюжет игры заключается в следующем. После старта игры появляется форма Form1, слева на форме (точнее, в клиенткой области формы) находится ракетка Игрока 1, справа – ракетка Игрока 2 (по первому режиму игры) или Компьютера в роли Игрока 2 (по второму режиму игры). Мяч произвольным образом прыгает в пределах 4-х границ формы, отскакивая от верхней и нижней границ формы и двух ракеток. Левая граница формы – это ворота Игрока 1, а правая граница формы – это ворота Компьютера в роли Игрока 2 или самого Игрока 2. Если мяч коснётся левой или правой границ формы, считается, что один игрок забил мяч в ворота другого игрока, счёт увеличивается в пользу забившего мяч игрока, а мяч снова появляется в произвольной точке формы и летит в произвольном направлении, заданном генератором случайных числе класса Random.

      В задачу пользователя в роли Игрока 2 (по первому режиму игры, заданному по умолчанию) входит – при помощи клавиш со стрелками перемещать правую ракетку по вертикали снизу вверх и сверху вниз таким образом, чтобы отбить мяч и не дать мячу коснуться правой границы формы, так как после каждого такого касания (пропущенного в ворота мяча) Игроку 1 начисляется 1 очко. Пользователь в роли Игрока 2 должен стараться (по возможности) ракеткой отбить мяч таким образом, чтобы забить его в ворота Игрока 1.

      Левая ракетка Игрока 1 старается отбить мяч и не дать мячу коснуться левой границы формы, так как после каждого такого касания (пропущенного в ворота мяча) Компьютеру в роли Игрока 2 начисляется 1 очко (как забившему мяч).

      Таким образом, для заданного по умолчанию первого режима игры (Игрок 1 против пользователя в роли Игрока 2), в методе-конструкторе Form1 используется строка:

      _player2 = new Bat (pictureBox2, ClientSize. Width – 30 —

      Bat. Width, Keys. Up, Keys.Down, 0, ClientSize. Height);

      Видно, что пользователь (Игрок 2) перемещает ракетку вверх при помощи клавиши Keys. Up, а вниз – Keys.Down.

      По второму режиму игры (Игрок 1 против Компьютера в роли Игрока 2), в методе-конструкторе Form1 комментируем приведённую выше строку и раскомментируем строку:

      _player2 = new Bat (pictureBox2, ClientSize. Width – 30 —

      Bat. Width, 0, ClientSize. Height);

      Теперь Компьютер (в роли Игрока 2) будет перемещать правую ракетку по вертикали снизу вверх и сверху вниз и отбивать ракеткой мяч, чтобы не пропустить его мимо ракетки в правые ворота.

      Победителем считается игрок, который за отведённое на игру время большее число раз поразил ворота соперника.

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

      13.2. Правила игры

      1. После запуска игры появляется форма Form1, на клиентской области которой слева находится ракетка Игрока 1, справа – ракетка Игрока 2 (по первому режиму игры) или Компьютера в роли Игрока 2 (по второму режиму игры). Вверху находится табло для подсчёта очков (в виде двух элементов управления Label); в начале игры счёт 0:0, рис. 13.1.

      Две ракетки и мяч разработаны на основе элемента управления PictureBox.

      Мяч произвольным образом прыгает в пределах 4-х границ формы, отскакивая от границ