Вход/Регистрация
Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 8: Программирование на Visual C# искусственного интеллекта. Издание 2. Продолжение 1
вернуться

Жарков Валерий

Шрифт:

2.1. Общие сведения

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

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

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

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

В программе в методе GetInputStates в строках:

if (gamePadUp ||

keyboard.IsKeyDown(Keys.Up))

rightPaddlePosition -= moveFactorPerSecond;

if (gamePadDown ||

keyboard.IsKeyDown(Keys.Down))

мы видим, что Игрок 1 управляет правой ракеткой при помощи клавиш со стрелками Up и Down.

В методе GetInputStates в строках:

if (gamePad2Up ||

keyboard.IsKeyDown(Keys.W))

leftPaddlePosition -= moveFactorPerSecond;

if (gamePad2Down ||

keyboard.IsKeyDown(Keys.S) ||

keyboard.IsKeyDown(Keys.O))

leftPaddlePosition += moveFactorPerSecond;

мы видим, что Игрок 2 управляет левой ракеткой при помощи клавиш W, S и O.

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

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

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

1. После запуска игры, на экране появляется форма с меню Singleplayer, Multiplayer и Exit (рис. 2.1). Клавишами со стрелками выбираем нужную команду и нажимаем клавишу Enter.

2. Появляется поле игры, на котором справа находится синяя (Blue) ракетка Игрока 1, а слева – красная (Red) ракетка Компьютера в роли Игрока 2 (по первому режиму игры Singleplayer) или Игрока 2 (по второму режиму игры Multiplayer).

Вверху слева и справа находятся два табло с тремя жизнями Lives в виде начальных трёх шаров для двух игроков (рис. 2.2).

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

Рис. 2.1. Выбираем режим игры Singleplayer или Multiplayer.

Рис. 2.2. Справа – ракетка Игрока 1, слева – ракетка Игрока 2, мяч – в нижнем правом углу.

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

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

5. Игра прекращается, когда один из игроков потеряет все жизни.

6. Победителем считается игрок, у которого сохранилась хотя бы одна жизнь (на рис. 2.3 – это Игрок 2 с красной ракеткой Red). Мы видим сообщение Red Won. Чаще всего, Компьютер (в роли Игрока 2) побеждает.

  • Читать дальше
  • 1
  • ...
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: