Exemplo n.º 1
0
        public static void SolveQuiz(AbstractEmulator emulator)
        {
            // Capture screen with quiz
            Bitmap screen = emulator.PrintWindow();
            //screen = ConvertToFormat(screen, PixelFormat.Format24bppRgb);

            string quizPattern = GetQuizPattern(screen, emulator.Width, emulator.Height);

            if (string.IsNullOrEmpty(quizPattern))
            {
                Debug.WriteLine("No Quiz found");
                return;
            }

            for (int i = 1; i <= 8; i++)
            {
                (Point point, Bitmap img)answer = GetAnswer(screen, i);
                if (IsCorrectAnswer(answer, quizPattern, screen.Width, screen.Height))
                {
                    Debug.WriteLine("Found answer at pos: " + i);
                    emulator.Click(answer.point);
                }
            }

            // TODO: Put this in config settings
            emulator.Click(new Point((int)(emulator.Width * 0.501), (int)(emulator.Height * 0.835)));
        }
Exemplo n.º 2
0
 public CairosRunner(CairosFilter filter, string logFile, string fullLogFile, CairosRunnerConfig runnerConfig,
                     AbstractEmulator emulator, RunnerLogger logger) : base(logFile, fullLogFile, runnerConfig, emulator, logger)
 {
     Filter            = filter;
     MinEnergyRequired = 8;
     MaxRunTime        = new TimeSpan(0, 2, 0); //This would be overriden
 }
Exemplo n.º 3
0
 public RiftRunner(RiftFilter filter,
                   string logFile,
                   string fullLogFile,
                   RiftRunnerConfig runnerConfig,
                   AbstractEmulator emulator,
                   RunnerLogger logger) : base(logFile, fullLogFile, runnerConfig, emulator, logger)
 {
     Filter = filter;
 }
Exemplo n.º 4
0
 public AbstractRunner(string logFile, string fullLogFile, T runnerConfig, AbstractEmulator emulator, RunnerLogger logger)
 {
     LogFile      = logFile;
     FullLogFile  = fullLogFile;
     Emulator     = emulator;
     RunnerConfig = runnerConfig;
     Helper.UpdateRunConfig(emulator, runnerConfig);
     Logger = logger;
 }
Exemplo n.º 5
0
 public DimensionalRunner(DimensionalFilter filter,
                          string logFile,
                          string fullLogFile,
                          DimensionalRunnerConfig runnerConfig,
                          AbstractEmulator emulator,
                          RunnerLogger logger)
     : base(logFile, fullLogFile, runnerConfig, emulator, logger)
 {
     Filter = filter;
 }
Exemplo n.º 6
0
        public void TestPrintWindow()
        {
            NoxEmulator emulator = new NoxEmulator();

            IntPtr parent     = AbstractEmulator.FindWindow("Qt5QWindowIcon", "Nox");
            IntPtr subWindow  = AbstractEmulator.FindWindowEx(parent, IntPtr.Zero, "Qt5QWindowIcon", "ScreenBoardClassWindow");
            IntPtr mainWindow = AbstractEmulator.FindWindowEx(subWindow, IntPtr.Zero, "Qt5QWindowIcon", "QWidgetClassWindow");
            IntPtr sub        = AbstractEmulator.FindWindowEx(mainWindow, IntPtr.Zero, "subWin", "sub");

            emulator.PrintWindow(parent);
        }
Exemplo n.º 7
0
        public void TestMatchImage()
        {
            NoxEmulator emulator = new NoxEmulator();

            IntPtr parent = AbstractEmulator.FindWindow("Qt5QWindowIcon", "Nox");
            Bitmap source = emulator.PrintWindow(parent);

            Bitmap crop = BitmapUtils.CropImage(source, new Rectangle(800, 550, 400, 200));


            string test1 = @"C:\Users\Administrator\Desktop\1\dungeonEnergy.png";
            string test2 = @"E:\SWRunner\Resources\general\gift_box.png";

            Assert.AreEqual(1, QuizSolver.FindMatchImage(crop, new Bitmap(test2)));
        }
Exemplo n.º 8
0
        public static void UpdateRunConfig <T>(AbstractEmulator emulator, T runConfig) where T : AbstractRunnerConfig
        {
            FieldInfo[] fields = runConfig.GetType().GetFields();

            foreach (FieldInfo field in fields)
            {
                if (field.FieldType == typeof(PointF))
                {
                    PointF point = (PointF)field.GetValue(runConfig);
                    point.X = emulator.Width * point.X;
                    point.Y = emulator.Height * point.Y;
                    field.SetValue(runConfig, point);
                }
            }
        }
Exemplo n.º 9
0
        public void TestPrintScreen()
        {
            NoxEmulator emulator  = new NoxEmulator();
            IntPtr      paintHwnd = AbstractEmulator.FindWindow(null, "Untitled - Paint");

            Bitmap src = emulator.PrintWindow(paintHwnd);

            Rectangle cropRect = new Rectangle(100, 100, 80, 80);
            Bitmap    target   = new Bitmap(cropRect.Width, cropRect.Height);

            using (Graphics g = Graphics.FromImage(target))
            {
                g.DrawImage(src, new Rectangle(0, 0, target.Width, target.Height),
                            cropRect,
                            GraphicsUnit.Pixel);
            }
            target.Save("C:\\TestWin32\\test1.png", ImageFormat.Png);

            Helper.GetQuizImages(src);
        }
Exemplo n.º 10
0
 public ToARunner(string logFile, string fullLogFill, ToaRunnerConfig runnerConfig, AbstractEmulator emulator,
                  RunnerLogger logger) : base(logFile, fullLogFill, runnerConfig, emulator, logger)
 {
     MaxRunTime = new TimeSpan(0, 5, 0);
 }