public TuVungCollection SelectAllTuVung_CongDong() { //Lấy từ vựng trong từ điển cộng đồng hoctuvungLINQDataContext db = new hoctuvungLINQDataContext(); TuVungCollection tuvungColl = new TuVungCollection(); IEnumerable<TuVung> TuVungList; TuVungList = from p in db.TuVungs where p.TuDien.CongDong == true && p.kiemduyet == true select p; //Addrange foreach (TuVung tv in TuVungList) { TuVungBO tvBO = new TuVungBO(); tvBO.TuVungID = tv.TuVungID.ToString(); tvBO.TuVung = tv.TuVung1; tvBO.LoaiTuID = (int)tv.LoaiTuID; tvBO.NghiaTu = tv.NghiaTu; tvBO.ViDu = tv.Vidu; tvBO.TaiKhoan = tv.taikhoan; tvBO.HinhAnh = tv.Hinhanh; tvBO.SoLanSai = (int)tv.SoLanSai; tvBO.SoLanSuDung = (int)tv.SoLanSuDung; tuvungColl.Add(tvBO); } return tuvungColl; }
//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); }
public string [,]TaoOChu(TuVungCollection tuvunglambaitest,ref int len,ref TuVungCollection GoiYOChu) { try { //B1:Lấy ra một từ ngẫunhiên làm từ hàng dọc string tuhangdoc = LayChuHangDoc(tuvunglambaitest); List<char> TuHangDoc = new List<char>();//chuyển string thành List<string> để xử lý TuHangDoc = tuhangdoc.ToList(); //B2: Lấy ra các từ hàng ngang TuVungCollection HangNgangList = new TuVungCollection();//Lưu các đối tượng tuvungBO hàng ngang List<string> HangNgang = new List<string>(); //Lưu các từ hàng ngang int i = 0; int solanloop = 0; while (i < TuHangDoc.Count) { TuVungBO tuhangnganBO = new TuVungBO(); tuhangnganBO = LayChuHangNgang(tuvunglambaitest, TuHangDoc[i]); if (tuhangnganBO == null) return null; string tuhangngang = tuhangnganBO.TuVung; if (KiemTraHopLe(tuhangngang, TuHangDoc[i]) == true && KiemTraTrungTuDoc(tuhangdoc, tuhangngang) == false && KiemTraTrungTuNgang(HangNgang, tuhangngang) == false) { HangNgang.Add(tuhangnganBO.TuVung); HangNgangList.Add(tuhangnganBO); i++; solanloop = 0; } solanloop++; if (solanloop > 30) return null; } //B3: Bố trí ô chữ lên mảng 2 chiều [12,21] len = TuHangDoc.Count; GoiYOChu = HangNgangList; return SapxepOChu(TuHangDoc,HangNgangList) ; } catch { return null; } }
public TuVungCollection SelectTuVung_Viet(string tuvung,string taikhoan) { TuDienDAO tudienDAO = new TuDienDAO(); TuVungCollection tuvungColl = new TuVungCollection(); //Lấy tất cả từ vựng [Công Đồng] tuvungColl = SelectAllTuVung_CongDong(); if (taikhoan != "") { //Lấ tát cả từ vựng[Cá nhân] TuDienCollection tudiencanhan = new TuDienCollection(); tudiencanhan = tudienDAO.SelectTuDien(taikhoan); foreach (TuDienBO td in tudiencanhan) { tuvungColl.Addrange(SelectTuVung_CaNhan("", taikhoan, td.TuDienID)); } TuDienCollection tudienlienket = new TuDienCollection(); tudienlienket = tudienDAO.SelectTuDien_LienKet(taikhoan); foreach (TuDienBO td in tudienlienket) { tuvungColl.Addrange(SelectTuVung_LienKet("", taikhoan, td.TuDienID)); } } //Lấy danh sách từ vựng tìm đựơc TuVungCollection foundColl = new TuVungCollection(); foreach (TuVungBO tv in tuvungColl) { if (tv.NghiaTu.Contains(tuvung)) { //kiểm tra từ đó có tồn tại chưa bool exist = false; if (foundColl.Count > 0)//chỉ kiểm tra khi foundColl>0 { foreach (TuVungBO tv1 in foundColl) { if (tv.TuVungID == tv1.TuVungID) { exist = true; break; } } } if (exist == false)//nếu chưa thì thêm vào foundColl.Add(tv); } } return foundColl; }
public TuVungCollection SelectTuVung_LienKet(string tuvung, string taikhoan, string tudienID) { //Lấy từ vựng trong từ điển liên kết hoctuvungLINQDataContext db = new hoctuvungLINQDataContext(); TuVungCollection tuvungColl = new TuVungCollection(); Guid myguid= new Guid(tudienID); IEnumerable<Nhom_TuDien> nhomtudienList=from p in db.Nhom_TuDiens where p.taikhoan==taikhoan select p; IEnumerable<TuVung> TuVungList; if (tuvung == "") { TuVungList = from p in db.TuVungs where p.TuDienID==myguid select p; } else { TuVungList = from p in db.TuVungs // where p.TuDien.Nhom_TuDiens == nhomtudien && where p.TuVung1.Contains(tuvung) && p.TuDienID == myguid select p; } //Addrange foreach (TuVung tv in TuVungList) { foreach (Nhom_TuDien nhomtd in nhomtudienList) { if(tv.TuDienID==nhomtd.TuDienID) { TuVungBO tvBO = new TuVungBO(); tvBO.TuVungID = tv.TuVungID.ToString(); tvBO.TuVung = tv.TuVung1; tvBO.LoaiTuID = (int)tv.LoaiTuID; tvBO.NghiaTu = tv.NghiaTu; tvBO.ViDu = tv.Vidu; tvBO.TaiKhoan = tv.taikhoan; tvBO.HinhAnh = tv.Hinhanh; tvBO.SoLanSai = (int)tv.SoLanSai; tvBO.SoLanSuDung = (int)tv.SoLanSuDung; tuvungColl.Add(tvBO); } } } return tuvungColl; }