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

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


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

Toolbox, например, окно текста TextBox со справочной информацией для игрока. Когда при помощи мыши игрок раскрывает Меню элемента управления MenuStrip, а затем в этом Меню выбирает команду Помощь (рис. 1.7), рядом с первой формой Form1 появляется эта справочная форма Ащкь2 (рис. 1.8). Напомним, что Меню элемента управления MenuStrip закрывается после его повторного выбора мышью. Эта форма Form2 закрывается щелчком по значку Close, и на экране остаётся одна игровая форма Form1.

      Рис. 1.7. Команда Помощь в Меню. Рис. 1.8. Справочная форма.

      1.16. Добавление рисунка загрузки

      Одним из заключительных этапов разработки игры является добавление в проект и вывод на экран рисунка загрузки (a loading screen) в виде файла loading.gif. Этот рисунок появляется на экране в режиме (mode = GameMode.LoadingDisplay;) при помощи метода Paint в начале загрузки в программу игровых компонентов (например, в виде графических и звуковых файлов) и построения формы, а затем исчезает. Здесь основная проблема – обеспечение видимости фона формы в процессе загрузки. Чтобы сделать игровую фон формы видимым, мы устанавливаем для формы значение свойства Visible, как показано в следующем коде:

      System.Reflection.Assembly asm =

      System.Reflection.Assembly.GetExecutingAssembly();

      loadingImage = new Bitmap(asm.GetManifestResourceStream(

      "PocketJack.images.loading.gif"));

      bankImage = new Bitmap(asm.GetManifestResourceStream(

      "PocketJack.images.bank.jpg"));

      mode = GameMode.LoadingDisplay;

      this.Visible = true;

      В этом коде в строке

      PocketJack.images.loading.gif

      переменная PocketJack означает имя проекта (или пространства имён),

      а переменная images – имя папки, в которой имеется графический файл loading.gif.

      После запуска игры, рисунок загрузки loading.gif появляется в середине экрана и находится на экране все время загрузки игровых компонентов, как определено в следующем коде:

      void paintForm(Graphics g)

      {

      switch (mode)

      {

      case GameMode.LoadingDisplay:

      //We draw all images below the menu:

      g.DrawImage(

      bankImage, 0, StayToolStripMenuItem.Height);

      g.DrawImage(

      loadingImage, 0, StayToolStripMenuItem.Height + 60);

      break;

      case GameMode.PlacingBets:

      g.DrawImage(bankImage, 0, StayToolStripMenuItem.Height);

      Utilities.BigText("Bank : " + pot.PotValue.ToString(),

      10, 40, Color.Black,

      Color.Yellow, messageFont, g);

      Utilities.BigText("Bet : " +

      pot.BetValue.ToString(), 10, 80, Color.Black,

      Color.Yellow, messageFont, g);

      break;

      …

      На рис. 1.9 показан узкий слева – направо рисунок загрузки loading.gif с надписью “POCKET JACK LOADING” поверх фона игры в виде файла bank.jpg. Этот рисунок держится на экране всего несколько секунд, пока не загрузятся все графические и звуковые файлы, а затем исчезает, уступая место информации о размерах Банка и Ставки, показанных на следующем рисунке.

      Рис. 1.9. Рисунок загрузки loading.gif

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

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

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

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

      2.