} //Kiểm Tra có trùng từ hàng ngang nào không private string [,]SapxepOChu(List<char> tuhangdoc,TuVungCollection HangNgangList) { string[,] OChu = new string[12, 21]; for (int a = 0; a < 12; a++) for (int b = 0; b < 21; b++) OChu[a, b] = ""; for (int i = 0; i < tuhangdoc.Count; i++) { char tu=tuhangdoc[i]; string tuhangngang=HangNgangList.Index(i).TuVung; int vitrikytu = tuhangngang.IndexOf(tu); int truoc = tuhangngang.Substring(0, vitrikytu).Length;//chiều dài tính từ đầu đến [vitrikytu] int sau = tuhangngang.Substring(vitrikytu + 1, tuhangngang.Length - truoc - 1).Length; //chiều dài tính từ [vitrikytu] đến cuối int k = 0; for (int j = 10-truoc; j < 10+sau+1; j++) { List<char> temp = new List<char>(); temp = tuhangngang.ToList(); OChu[i, j] = temp[k].ToString(); k++; } } return OChu; }
private TracNghiemCollection TaoDanhSachCauHoi_HinhAnh(TuVungCollection tuvunglambantest, int socauhoilambai) { TracNghiemCollection CauHoiColl = new TracNghiemCollection(); int i = 0; while (i < socauhoilambai) { //Chọn ngẫu nhiên 1 câu hỏi trong tuvunglambaitest int stt = RandomTuVung(tuvunglambantest.Count); TuVungBO temp = tuvunglambantest.Index(stt); //Kiểm tra câu hỏi đã có trong danh sách chưa //Nếu có rồi: Tạo lại -->Kiểm tra //Nếu chưa: Add vào --> i++ while (KiemTraTrungCauHoi(CauHoiColl, temp) == true || temp.HinhAnh.Trim() == "") { stt = RandomTuVung(tuvunglambantest.Count); temp = tuvunglambantest.Index(stt); } TracNghiemBO tnBO = new TracNghiemBO(); tnBO.Choices[0] = temp; CauHoiColl.Add(tnBO); i++; } return CauHoiColl; }
//B2: Lấy ra các từ hàng ngang private TuVungBO LayChuHangNgang(TuVungCollection tuvunglambaitest, char tu) { //Lấy ra các [TuVungBO].[TuVung] có chứ [tu] TuVungCollection tempColl = new TuVungCollection(); foreach (TuVungBO tv in tuvunglambaitest) { if (tv.TuVung.Contains(tu)) { tempColl.Add(tv); } } //chọn ngẫu nhiên một từ if (tempColl.Count == 0) return null; int rand = rd.Next(tempColl.Count); return tempColl.Index(rand); }
//B1: Lấy ra một từ ngẫunhiên làm từ hàng dọc private string LayChuHangDoc(TuVungCollection tuvunglambaitest) { List<char> Tu = new List<char>(); int len = tuvunglambaitest.Count; int rand = rd.Next(len); string temp = ""; while (true) { rand = rd.Next(len); temp = tuvunglambaitest.Index(rand).TuVung; if (temp.Length < 10) { rand = rd.Next(len); break; } } /*char[] TuTemp = temp.ToCharArray(); for (int i = 0; i < TuTemp.Length; i++) Tu.Add(TuTemp[i]);*/ return temp; }
static int tuhangdoclen;//biến chứa chiều dài từ dọc public void TaoBai() { OChuGoiYDropDown.SelectedIndex = 0; rights = 0; OChu = new string[12, 21]; GoiYOChuColl = new TuVungCollection(); tuhangdoclen = 0; OChu = ochuBUS.TaoOChu(TVLambai, ref tuhangdoclen, ref GoiYOChuColl); if (OChu != null) { //Tô màu hàng ngang int i = 0;//biến dòng int j = 0;//biến cột foreach (Control ct in OChuConTentPanel.Controls) { if (ct is TextBox) { if (j < 21) { ((TextBox)ct).BackColor = System.Drawing.Color.White; ((TextBox)ct).Font.Bold = true; ((TextBox)ct).Text = ""; if (OChu[i, j] != "") ((TextBox)ct).BackColor = System.Drawing.Color.LightGreen; j++; if (j == 21) { j = 0; i++; } } if (i == 12 && j == 21) break; } } //Tô màu ô hàng dọc int len = 0; for (int c = 10; c < 200; c += 21) { foreach (Control ct in OChuConTentPanel.Controls) { if (ct.ID == "OChu" + c.ToString()) { ((TextBox)ct).BackColor = System.Drawing.Color.Yellow; len++; break; } } if (len == tuhangdoclen) break; } OChuGoiYTextBox.Text = GoiYOChuColl.Index(0).NghiaTu; } }
private TracNghiemCollection TaoDanhSachCauTraLoi(TuVungCollection tuvunglambantest, TracNghiemCollection CauHoicoll) { int i = 0; while (i < CauHoicoll.Count) { int ques_pos = 1; while (ques_pos < 4) { //Chọn ngẫu nhiên 1 trả lời trong tuvunglambaitest int stt = RandomTuVung(tuvunglambantest.Count); TuVungBO temp = tuvunglambantest.Index(stt); //Kiểm tra câu trả lời đã có trong danh sách trả lời chưa //Nếu có rồi: Tạo lại -->Kiểm tra //Nếu chưa: Add vào --> i++ while (KiemTraTrungCauTraLoi(CauHoicoll.Index(i).Choices, temp, ques_pos) == true) { stt = RandomTuVung(tuvunglambantest.Count); temp = tuvunglambantest.Index(stt); } CauHoicoll.Index(i).Choices[ques_pos] = temp; ques_pos++; } i++; } return CauHoicoll; }