Как рандомизировать моделируемые клики с помощью rand - PullRequest
1 голос
/ 18 июня 2020

Я делаю автокликер в С ++. Он работает, но я пытаюсь рандомизировать его, используя минимальное и максимальное целые числа в функции rand.

Он рандомизирует, но никогда не превышает 12 сП. Я новичок в C ++, я пришел из c#.

Вот весь мой код:

#include <iostream>
#include<Windows.h>
#include<stdlib.h>
#include <random>
using namespace std;


int x = 0, y = 0, Mincps, Maxcps, randomized_cps;
bool click = false;
int randomize_cps(int min, int max);

void Menu()
{
    system("color 5");
    cout << "Minimum CPS: ";
    cin >> Mincps;

    system("CLS");

    cout << "Maximum CPS: ";
    cin >> Maxcps;
    system("CLS");

    if (Mincps > 20 || Maxcps > 20 || Mincps < 1 || Maxcps < 1)
    {
        cout << "That CPS is not safe" << endl;
        Sleep(1000);
        system("CLS");
        Menu();
    }

    cout << "AirClicker\n";
    cout << "Made by Deagan";
    Sleep(1500);

    system("CLS");

    cout << "Minimum CPS: ";
    cout << Mincps;

    cout << "\n\n";

    cout << "Maximum CPS: ";
    cout << Maxcps;

    cout << "\n\n";

    cout << "Press X to toggle on and Z to toggle off.\n";
}

void Clicker()
{

    while (1)
    {
        if (GetAsyncKeyState('X'))
        {
            click = true;
        }

        if (GetAsyncKeyState('Z'))
        {
            click = false;
        }

        if (click == true)
        {
            mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
            Sleep(1000 / randomized_cps);
        }
    }
}

int main()
{
    Menu();
    Clicker();
}

int randomize_cps(int min, int max)
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> distr(Mincps, Maxcps);
    randomized_cps = distr(gen);
    return 0;
}

Любая помощь приветствуется, спасибо! Кто-нибудь, пожалуйста, помогите мне с рандомизатором, это должно быть сделано через несколько дней.

1 Ответ

0 голосов
/ 29 июня 2020

Это будет спать для случайного значения от 1 до 20, как вы хотели:

#include <Windows.h>
#include <iostream>
#include <random>

int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution<int> distribution(1, 20);

    while (1)
    {
        int random_value = distribution(generator);
        std::cout << random_value << std::endl;
        Sleep(random_value); // this is already in milliseconds
    }

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...