コード例 #1
0
ファイル: CardReader.cs プロジェクト: enijkamp/pokerbot
        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);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
ファイル: CardReader.cs プロジェクト: enijkamp/pokerbot
        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);
        }