Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 8: Программирование на Visual C# искусственного интеллекта. Издание 2. Продолжение 1. Валерий Алексеевич Жарков
Чтение книги онлайн.

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

СКАЧАТЬ target="_blank" rel="nofollow" href="#_2.jpg"/>

      Рис. 1.3. Последующие шестнадцать карт в увеличенном масштабе.

      На этом рисунке закончились 13 карт 1, 2, 3, …,13 первой масти трефы – club. Первая карта любой масти – Туз (Ace – A).

      Рис. 1.4. Последующие шестнадцать карт в увеличенном масштабе.

      На этом рисунке закончились 13 карт 14, 15, 16, …, 26 второй масти бубны – diamond и 13 карт 27, 28, 29, …, 39 третьей масти черви – heart. И здесь первая карта масти – Туз (Ace – A).

      Ниже показаны 13 карт 40, 41, 42, …, 52 последней четвертой масти пики – spade.

      Рис. 1.5. Последние тринадцать карт в увеличенном масштабе.

      Значения очков каждой карты следующие: Туз (Ace – A) = 1 или 11; как 1-я, 2-я или 3-я карта – Туз даёт 11 очков; с Валетом, Дамой и Королём, Туз даёт 11 очков и в сумме 10+11=21 эти две карты называются PocketJack, который бьёт карты соперника, даже набравшие 21; как 4-я и последующая карта – Туз даёт 1 очко; цифры на картах от 2 до 9 означают очки этой карты;

      карта с числом 10 card with number 10, Валет (Jack – J), Дама (Queen – Q), Король (King – K) = по 10 очков.

      1.3. Загрузка в проект изображений карт

      Чтобы добавить имеющиеся у нас файлы карт в проект, необходимо сначала добавить в проект папку для этих файлов, затем скопировать в эту папку файлы, а затем свойства этих файлов задать как Embedded Resource, как подробно будет описано далее при создании проекта игры.

      Лучший способ загрузить файлы карт в программу при её выполнении – создать массив этих карт в классе Image или Bitmap. После этого изображения могут тогда быть нарисованы на поле игры playfield, когда потребуется. Чтобы загрузить изображения карт в массив, возможны два варианта кода. По первому варианту, код имеет следующий вид:

      static private Image[] cardImages = new Bitmap[53];

      System.Reflection.Assembly execAssem =

      System.Reflection.Assembly.GetExecutingAssembly();

      for (int i=0 ; i< 53 ; i++ )

      {

      cardImages[i] =

      new Bitmap(execAssem.GetManifestResourceStream (

      @"PocketJack.cardImages."+i+@".gif"));

      }

      Видно, что в этом варианте проект имеет имя PocketJack, папка с файлами карт имеет имя cardImages, а в массиве cardImages все файлы карт с именами “i” должны иметь расширение (.gif).

      По второму варианту, который мы применим далее в программе, код имеет следующий вид:

      public Image CardImage

      {

      get

      {

      int dispNo = CardNo;

      if (!FaceUp)

      {

      dispNo = 0;

      }

      if (cardImages[dispNo] == null)

      {

      cardImages[dispNo] = new Bitmap(

      execAssem.GetManifestResourceStream(

      @"PocketJack.images." + dispNo + @".gif"));

      }

      return cardImages[dispNo];

      }

      }

      Видно, что в этом варианте проект имеет имя PocketJack, папка с файлами карт имеет имя images, а в массиве cardImages все файлы карт с именами “dispNo” должны иметь расширение (.gif).

      1.4. Рисование изображений карт

      Следующий шаг в разработке игры – процесс рисования карт. Изображение каждой карты должно иметь скруглённые СКАЧАТЬ