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"); }
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"); }
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); } }