Валерий Алексеевич Жарков

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 3: Программирование на Visual C# искусственного интеллекта (продолжение 2)


Скачать книгу

форму Form2, выводимую после выбора команды Помощь из меню элемента управления MenuStrip на главной форме Form1.

      1. Мы (пользователи) считаемся как один игрок и играем один на один с компьютером-банкомётом.

      2. Мы устанавливаем в Банке начальную сумму денег, например, 500 долларов и определяем Ставку в игре, равную, например, 5 долларам. В каждой сдаче карт наш выигрыш будет увеличивать Банк, а проигрыш – уменьшать Банк на величину Ставки.

      По окончании игры, если Банк будет больше 500, то мы выиграли у Банкомёта разницу между итоговым значением Банка и начальным значением Банка в 500 долларов.

      Если же по окончании игры Банк будет меньше 500, то мы проиграли Банкомёту разницу между начальным значением Банка в 500 долларов и итоговым значением Банка.

      Естественно, по методике данной главы в приводимом далее проекте мы можем запрограммировать другие варианты Банка, Ставки и условий игры.

      3. В данном варианте игры, наша цель состоит в том, чтобы на экране набрать «в руку» карты с очками, как можно ближе к 21, но не превышая 21, и, к тому же, больше, чем у банкомёта. На экране сначала мы видим вверху карту банкомёта, а внизу – две наши карты с очками этих карт.

      4. После запуска игры на форме появляются команда Себе и команда общего Меню (рис. 1.10), приведённый выше рисунок loading.gif, а затем фон игры в виде приведённого выше изображения bank.jpg и начальный счёт игры:

      Банк: 500 Ставка: 5

      Рис. 1.10. Исходное состояние (заставка) игры. Рис. 1.11. Команда «Ставка +” в Меню.

      Если мы желаем изменить значение Ставки, то при помощи мыши раскрываем Меню элемента управления MenuStrip, в котором выбираем команду «Ставка +” или «Ставка -” (рис. 1.11). Это меню закрывается после его повторного выбора. Значения Банка и Ставки можно также изменить в приведённой далее программе. Для примера, оставляем заданные по умолчанию значения Банка и Ставки. Никаких игровых действий пока не производится.

      5. Для начала игры нажимаем клавишу Enter.

      В верхней части экрана (как свойство Text формы Form1) появляются начальные значения Банка и Ставки (рис. 1.12): Банк: 500 Ставка: 5

      В верхней половине экрана появляется одна закрытая и одна открытая карта банкомёта, а в нижней – две карты игрока с очками этих карт (рис. 1.12). Звучит сопровождение в виде файла pj_bg_noise. wav тревожного шума окружающих игрока и банкомёта групп поддержки.

      6. У нас два варианта действий. Видя наши исходные очки и очки банкомёта, либо,

      по первому варианту, при помощи клавиши Enter (или команды «Карту мне» из Меню, см. предыдущий рисунок) нам взять следующую карту,

      либо, по второму варианту, при помощи мыши выбрать в Меню команду Себе (попросить банкомёт брать карты себе).

      Рис. 1.12. Карта банкомёта и две карты игрока. Рис. 1.13. Счёт игры изменился.

      Мы помним (из предыдущего описания), что банкомёт будет набирать карты себе до тех пор, пока у него не наберётся ровно 17 или более очков. А у нас уже 14 очков. Конечно, можно дать команду Банкомёту брать карты себе (в надежде на перебор карт у него). Но мы решаемся, и при помощи клавиши Enter берём следующую карту. Но, увы, к нам пришла не та карта, и мы видим грустное сообщение «Вы перебрали» с итоговыми нашими очками 22 (рис. 1.13). Звучит