Example #1
0
        private static Schlag Schlag(CardValues card)
        {
            var cardString = card.ToString();

            char[]   cardList = { '7', '8', '9', 'U', 'O', 'K', '1', 'A' };
            Schlag[] schlaege = Enum.GetValues(typeof(Schlag)).Cast <Schlag>().ToArray();

            for (int c = 0; c < cardList.Length; c++)
            {
                if (cardString[1] == cardList[c])
                {
                    return(schlaege[c]);
                }
            }
            throw new InvalidOperationException("Schlag nicht gefunden");
        }
Example #2
0
        private Color Farben(CardValues card)
        {
            var cardId = card.ToString();

            if (cardId[0] == 'E')
            {
                return(Color.Eichel);
            }
            if (cardId[0] == 'G')
            {
                return(Color.Gras);
            }
            if (cardId[0] == 'H')
            {
                return(Color.Herz);
            }
            if (cardId[0] == 'S')
            {
                return(Color.Schellen);
            }

            throw new ArgumentException("Wrong Card");
        }
Example #3
0
        public void Draw(Graphics grp)
        {
            using (Font fnt = new Font("Gungsuh", 11, FontStyle.Bold))
            {
                Assembly        asm          = this.GetType().Assembly;
                ResourceManager recMag       = new ResourceManager("Card.CardImages", asm);
                Bitmap          bigTypeImage = new Bitmap((Image)recMag.GetObject("Big" + _type.ToString()));
                bigTypeImage.MakeTransparent();
                Bitmap bigTypeImageRev = new Bitmap((Image)bigTypeImage.Clone());
                bigTypeImageRev.RotateFlip(RotateFlipType.Rotate180FlipNone);
                Image     smallTypeImage = (Image)recMag.GetObject("Small" + _type.ToString());
                Image     numImage       = (Image)recMag.GetObject(IsBlack() ? "BlackNum" : "RedNum");
                Rectangle numRect        = new Rectangle(_topLeft.X + 1, _topLeft.Y + 1, 11, 14);
                Rectangle typeRect       = new Rectangle(_topLeft.X + 1, _topLeft.Y + 15, 11, 11);

                grp.FillRectangle(Brushes.White, _topLeft.X + 1, _topLeft.Y + 1, InnerWidth, InnerHeigth);

                grp.DrawLine(Pens.Black, _topLeft.X + 1, _topLeft.Y, _topLeft.X + Width - 2, _topLeft.Y);
                grp.DrawLine(Pens.Black, _topLeft.X + 1, _topLeft.Y + Heigth - 1, _topLeft.X + Width - 2, _topLeft.Y + Heigth - 1);
                grp.DrawLine(Pens.Black, _topLeft.X, _topLeft.Y + 1, _topLeft.X, _topLeft.Y + Heigth - 2);
                grp.DrawLine(Pens.Black, _topLeft.X + Width - 1, _topLeft.Y + 1, _topLeft.X + Width - 1, _topLeft.Y + Heigth - 2);
                if (_value == CardValues.Ace && _type == CardType.Spade)
                {
                    Image face = (Image)recMag.GetObject("AceOfSpade");
                    grp.DrawImage(face, _topLeft.X + 15, _topLeft.Y + 24, 40, 40);
                }
                else if (IsFace())
                {
                    Image face = (Image)recMag.GetObject(_value.ToString() + "Of" + _type.ToString());
                    grp.DrawImage(face, _topLeft.X + LeftRight, _topLeft.Y + TopDown, Width - 2 * LeftRight, Heigth - 2 * TopDown);
                }
                else
                {
                    #region Draw Main
                    const int size  = 15;
                    const int top   = 10;
                    const int right = 16;
                    Rectangle dest  = new Rectangle(0, 0, size, size);
                    switch (_value)
                    {
                    case CardValues.One:
                        dest.X = _topLeft.X + (Width - size) / 2;
                        dest.Y = _topLeft.Y + (Heigth - size) / 2;
                        grp.DrawImage(bigTypeImage, dest);
                        break;

                    case CardValues.Two:
                        dest.X = _topLeft.X + (Width - size) / 2;
                        dest.Y = _topLeft.Y + top;
                        grp.DrawImage(bigTypeImage, dest);
                        dest.Y = _topLeft.Y + Heigth - size - top;
                        grp.DrawImage(bigTypeImageRev, dest);
                        break;

                    case CardValues.Three:
                        dest.X = _topLeft.X + (Width - size) / 2;
                        dest.Y = _topLeft.Y + (Heigth - size) / 2;
                        grp.DrawImage(bigTypeImage, dest);
                        goto case CardValues.Two;

                    case CardValues.Four:
                        dest.X = _topLeft.X + right;
                        dest.Y = _topLeft.Y + top;
                        grp.DrawImage(bigTypeImage, dest);
                        dest.X = _topLeft.X + Width - right - size;
                        grp.DrawImage(bigTypeImage, dest);
                        dest.Y = _topLeft.Y + Heigth - top - size;
                        grp.DrawImage(bigTypeImageRev, dest);
                        dest.X = _topLeft.X + right;
                        grp.DrawImage(bigTypeImageRev, dest);
                        break;

                    case CardValues.Five:
                        dest.X = _topLeft.X + (Width - size) / 2;
                        dest.Y = _topLeft.Y + (Heigth - size) / 2;
                        grp.DrawImage(bigTypeImage, dest);
                        goto case CardValues.Four;

                    case CardValues.Six:
                        dest.X = _topLeft.X + right;
                        dest.Y = _topLeft.Y + (Heigth - size) / 2;
                        grp.DrawImage(bigTypeImage, dest);
                        dest.X = _topLeft.X + Width - right - size;
                        dest.Y = _topLeft.Y + (Heigth - size) / 2;
                        grp.DrawImage(bigTypeImage, dest);
                        goto case CardValues.Four;

                    case CardValues.Seven:
                        dest.X = _topLeft.X + (Width - size) / 2;
                        dest.Y = _topLeft.Y + top + 20;
                        grp.DrawImage(bigTypeImage, dest);
                        goto case CardValues.Six;

                    case CardValues.Eight:
                        dest.X = _topLeft.X + right;
                        dest.Y = _topLeft.Y + top + 20;
                        grp.DrawImage(bigTypeImage, dest);
                        dest.X = _topLeft.X + Width - right - size;
                        grp.DrawImage(bigTypeImage, dest);
                        dest.Y = _topLeft.Y + Heigth - top - 20 - size;
                        grp.DrawImage(bigTypeImageRev, dest);
                        dest.X = _topLeft.X + right;
                        grp.DrawImage(bigTypeImageRev, dest);
                        goto case CardValues.Four;

                    case CardValues.Nine:
                        dest.X = _topLeft.X + (Width - size) / 2;
                        dest.Y = _topLeft.Y + (Heigth - size) / 2;
                        grp.DrawImage(bigTypeImage, dest);
                        goto case CardValues.Eight;

                    case CardValues.Ten:
                        dest.X = _topLeft.X + (Width - size) / 2;
                        dest.Y = _topLeft.Y + top + 10;
                        grp.DrawImage(bigTypeImage, dest);
                        dest.Y = _topLeft.Y + Heigth - top - 10 - size;
                        grp.DrawImage(bigTypeImageRev, dest);
                        goto case CardValues.Eight;
                    }
                    #endregion
                }

                grp.DrawImage(numImage, numRect, new Rectangle(11 * (int)_value, 0, 11, 14), GraphicsUnit.Pixel);
                grp.DrawImage(smallTypeImage, typeRect);

                smallTypeImage.RotateFlip(RotateFlipType.Rotate180FlipNone);
                numImage.RotateFlip(RotateFlipType.Rotate180FlipNone);

                numRect.Offset(Width - 2 * 1 - 11, Heigth - 2 * 1 - 14);
                typeRect.Offset(Width - 2 * 1 - 11, Heigth - 15 * 2 - 11);
                grp.DrawImage(numImage, numRect, new Rectangle(11 * ((int)CardValues.King - (int)_value), 0, 11, 14), GraphicsUnit.Pixel);
                grp.DrawImage(smallTypeImage, typeRect);
            }
        }