public static List <CardPattern> readCards(String path) { string[] cards = Directory.GetFiles(path, "card_*.png"); List <CardPattern> patterns = new List <CardPattern>(); foreach (String filepath in cards) { // get png Image png = readPng(filepath); // filename only string filename = Path.GetFileName(filepath); filename = filename.Replace("card_", ""); // crop Image image = cropTransparentLines(png); // colors image = reducer.reduceColors(image); // new pattern Card.SuitEnum suit = toSuit(filename); Card.RankEnum rank = toRank(filename); CardPattern pattern = new CardPattern(image, suit, rank); patterns.Add(pattern); } return(patterns); }
public static List <Card> parse(string cards) { // rank Dictionary <char, Card.RankEnum> ranks = new Dictionary <char, Card.RankEnum>(); ranks.Add('2', Card.RankEnum.Two); ranks.Add('3', Card.RankEnum.Three); ranks.Add('4', Card.RankEnum.Four); ranks.Add('5', Card.RankEnum.Five); ranks.Add('6', Card.RankEnum.Six); ranks.Add('7', Card.RankEnum.Seven); ranks.Add('8', Card.RankEnum.Eigth); ranks.Add('9', Card.RankEnum.Nine); ranks.Add('T', Card.RankEnum.Ten); ranks.Add('A', Card.RankEnum.Ace); ranks.Add('J', Card.RankEnum.Jack); ranks.Add('K', Card.RankEnum.King); ranks.Add('Q', Card.RankEnum.Queen); // suit Dictionary <char, Card.SuitEnum> suits = new Dictionary <char, Card.SuitEnum>(); suits.Add('C', Card.SuitEnum.Clubs); suits.Add('D', Card.SuitEnum.Diamonds); suits.Add('H', Card.SuitEnum.Hearts); suits.Add('S', Card.SuitEnum.Spades); // parse string[] parts = cards.ToUpper().Split(new char[] { ' ' }); List <Card> result = new List <Card>(); if (cards.Length == 0) { return(result); } else { foreach (string part in parts) { Card.RankEnum rank = ranks[part[0]]; Card.SuitEnum suit = suits[part[1]]; result.Add(new Card(suit, rank)); } return(result); } }
public static List <CardPattern> readCardsFromResources() { List <CardPattern> patterns = new List <CardPattern>(); // get a reference to the current assembly Assembly ass = Assembly.GetExecutingAssembly(); // get a list of resource names from the manifest string[] names = ass.GetManifestResourceNames(); foreach (string name in names) { // card? if (name.Contains("card")) { // split string cardName = name.Substring(name.IndexOf("_") + 1); // read from assembly Stream imgStream = ass.GetManifestResourceStream(name); Bitmap bitmap = Bitmap.FromStream(imgStream) as Bitmap; Image image = toImage(bitmap); imgStream.Close(); // crop image = cropTransparentLines(image); // colors image = reducer.reduceColors(image); // new pattern Card.SuitEnum suit = toSuit(cardName); Card.RankEnum rank = toRank(cardName); CardPattern pattern = new CardPattern(image, suit, rank); patterns.Add(pattern); } } return(patterns); }