public GameResult GetGameResult()
        {
            Bitmap frame      = GetGameFrame_Global();
            Bitmap victoryLoc = frame.Clone(CONST_VICTORY_SCAN_REGION, frame.PixelFormat);

            if (Bitmap_CV.HaystackContainsNeedle(victoryLoc, Properties.Resources.game8_victory))
            {
                victoryLoc.Dispose();
                frame.Dispose();
                return(GameResult.Victory);
            }
            Bitmap defeatLoc = frame.Clone(CONST_DEFEAT_SCAN_REGION, frame.PixelFormat);

            if (Bitmap_CV.HaystackContainsNeedle(defeatLoc, Properties.Resources.game8_defeat))
            {
                defeatLoc.Dispose();
                frame.Dispose();
                return(GameResult.Defeat);
            }

            frame.Dispose();
            victoryLoc.Dispose();
            defeatLoc.Dispose();
            return(GameResult.Unknown);
        }
        public CurrencyType RecognizeCardType(Bitmap cardImage) // cardImage = haystack
        {
            CurrencyType currencyType = CurrencyType.Unknown;

            foreach (KeyValuePair <CurrencyType, System.Drawing.Image> kvp in CONST_KNOWN_CARD_TYPES)
            {
                if (Bitmap_CV.HaystackContainsNeedle(cardImage, (Bitmap)kvp.Value))
                {
                    currencyType = kvp.Key;
                    break;
                }
            }
            Console.WriteLine($"[MemoryGame] RecognizeCardType: Recognized card as {currencyType}");
            return(currencyType);
        }