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

Чтение книги онлайн.

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

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

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

style="font-size:15px;">      /// <summary>

      /// Returns true if this is a black card

      /// </summary>

      public bool Black

      {

      get

      {

      return !Red;

      }

      }

      /// <summary>

      /// Returns an image which can be used to draw this card

      /// </summary>

      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];

      }

      }

      /// <summary>

      /// Constructs a card with a partiuclar number

      /// </summary>

      /// <param name="cardNo">number of the card

      /// in the range 1 to 52</param>

      /// <param name="faceUp">true if the card

      /// is to be drawn face up</param>

      public Card(byte cardNo, bool faceUp)

      {

      CardNo = cardNo;

      FaceUp = faceUp;

      }

      /// <summary>

      /// Constructs a face up card with that number

      /// </summary>

      /// <param name="cardNo"></param>

      public Card(byte cardNo)

      : this(cardNo, true)

      {

      }

      /// <summary>

      /// String description of the card

      /// </summary>

      /// <returns>the name and suit of the card</returns>

      public override string ToString()

      {

      return ValueName + " of " + Suit;

      }

      }

      /// <summary>

      /// Provides a container for a number of cards.

      /// May be used to draw the cards and compute their score.

      /// </summary>

      public class CardHand : ArrayList

      {

      /// <summary>

      /// Used as a destination of teh draw action

      /// </summary>

      private static Rectangle drawRect;

      /// <summary>

      /// Draws the hand on the graphics.

      /// </summary>

      /// <param name="g">graphics to draw with</param>

      /// <param name="startx">left edge of first card</param>

      /// <param name="starty">top of first card</param>

      /// <param name="gapx">x gap between each card</param>

      /// <param name="gapy">y gap between each card</param>

      public void DrawHand(Graphics g, int startx, int starty,

      int gapx, int gapy)

      {

      drawRect.X = startx;

      drawRect.Y = starty;

      foreach (Card card in this)

      {

      drawRect.Width = card.CardImage.Width;

      drawRect.Height = card.CardImage.Height;

      g.DrawImage(

      card.CardImage,                  // Image

      drawRect,                  // destination rectange

      0,                                    // srcX

      0,                                    // srcY

      card.CardImage.Width, // srcWidth

      card.CardImage.Height,      // srcHeight

      GraphicsUnit.Pixel,            // srcUnit

      Card.cardAttributes); // ImageAttributes

      drawRect.X += gapx;

      drawRect.Y += gapy;

      }

      }

      /// <summary>

      /// Computes the score of the hand

      /// </summary>

      /// <returns>the value of the score</returns>

      public

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