Функция генерации случайных чисел не работает должным образом - PullRequest
0 голосов
/ 20 марта 2020

Мне нужна небольшая помощь в этой программе. Я генерирую случайный символ с интервалом в одну секунду в этой программе, когда я впервые запускаю программу с кнопки запуска, она работает нормально и дает мне правильный вывод, но когда я нажимаю на кнопку сброса и снова запускаю программу с кнопки запуска функция случайного выбора не работает должным образом.

Например, если я добавлю 4 символа (qwer), при первом запуске программы мне будет присвоено 4 случайных числа (ewqr), но когда я нажму кнопку сброса и снова введу 4 символ (qwer) и нажмите старт, но я не получаю только 2 числа, что означает, что второй раз функция запускается только два раза вместо 4 раз.

public partial class Form1 : Form
{

    private string str = "";
    int sRandom;
    int checkLength;
    // int checkLength;
    Timer mTimer = new Timer();
    Random mRandom = new Random();
    char[] chars;
    public Form1()
    {
        InitializeComponent();
    }

    private void startbutton_Click(object sender, EventArgs e)
    {

            str = richTextBox1.Text;

        if (richTextBox1.Text != "")
        {
            chars = str.ToCharArray();
            InitializeTimer();
        }

        else
        {
            MessageBox.Show("Some text", "please enter the key you want to practise",
            MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }

    private void resetbutton_Click(object sender, EventArgs e)
    {
        richTextBox1.Clear();
        richTextBox2.Clear();
        str = "";
        sRandom = 0;
        checkLength = 0;
    }

    private void InitializeTimer()
    {
        mTimer.Interval = 1000;
        mTimer.Enabled = true;
        mTimer.Tick += new EventHandler(timer1_Tick);
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        if (checkLength <= chars.Length - 1)
        {

            sRandom = mRandom.Next(chars.Length);
            richTextBox2.Text = chars[sRandom].ToString() + checkLength;

            checkLength++;
        }

        else
        {
            mTimer.Enabled = false;
        }

    }

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