//заполняет елементы главной формы случайными словом и переводами к нему private void SetRandomWord() { DBManager db = new DBManager(); DataTable dt = db.SelectWordsForTest(); Random rnd; int[] arrRand = new int[5]; int highRand = dt.Rows.Count; int seedRand; rnd = new Random(); seedRand = rnd.Next(1, int.MaxValue); rnd = new Random(seedRand); //массив случайных чисел - используются в качестве индексов строк со словами-переводами for (int i = 0; i < 5; i++) { arrRand[i] = rnd.Next(0, highRand); } //случайная позиция радиокнопки для правильного ответа //чтобы он не был всегда первым rnd = new Random(); SetTrueAnswerPos(rnd.Next(0, 4)); RadioButton temp = arrRadioBtn[trueAnswerPos]; arrRadioBtn[trueAnswerPos] = arrRadioBtn[0]; arrRadioBtn[0] = temp; lblCategory.Text = dt.Rows[arrRand[0]]["category"].ToString(); lblWord.Text = dt.Rows[arrRand[0]]["wordEN"].ToString(); for (int i = 0; i < arrRadioBtn.Length; i++) { arrRadioBtn[i].Text = dt.Rows[arrRand[i]]["wordRU"].ToString(); } temp = arrRadioBtn[trueAnswerPos]; arrRadioBtn[trueAnswerPos] = arrRadioBtn[0]; arrRadioBtn[0] = temp; }
//заполняет елементы главной формы случайными словом и переводами к нему //возваращает false, если выборка пуста и заполнять нечем (в этом случае нам не надо выводить тест на экран, а предложить пользователю //зайти в настройка и выбрать категории для тестирования) private bool SetRandomWord() { DataTable dt = dbMan.SelectWordsForTest(); //Random rnd; if (dt.Rows.Count != 0) { int[] arrRand = new int[5]; bool[] arrFlag = new bool[5]; int highRand = dt.Rows.Count; int seedRand; var rnd = new Random(); seedRand = rnd.Next(1, int.MaxValue); rnd = new Random(seedRand); int rnum = 0; //массив случайных чисел - используются в качестве индексов строк со словами-переводами for (int i = 0; i < 5; i++) { rnum = rnd.Next(0, highRand); for (int j = 0; j < 5; j++) { if (arrRand[j] == rnum) { break; } else { arrRand[i] = rnum; } } } //случайная позиция радиокнопки для правильного ответа //чтобы он не был всегда первым rnd = new Random(); SetTrueAnswerPos(rnd.Next(0, 4)); RadioButton temp = arrRadioBtn[trueAnswerPos]; arrRadioBtn[trueAnswerPos] = arrRadioBtn[0]; arrRadioBtn[0] = temp; lblCategory.Text = dt.Rows[arrRand[0]]["category"].ToString(); lblWord.Text = dt.Rows[arrRand[0]]["wordEN"].ToString(); for (int i = 0; i < arrRadioBtn.Length; i++) { arrRadioBtn[i].Text = dt.Rows[arrRand[i]]["wordRU"].ToString(); } temp = arrRadioBtn[trueAnswerPos]; arrRadioBtn[trueAnswerPos] = arrRadioBtn[0]; arrRadioBtn[0] = temp; return(true); } return(false); }