Đúng đúng, chỉ cần ít phút là nó phải có lời giải, tuy nhiên không thể hi vọng có 1 lời giải hoàn hảo đc...
Hiện em cũng đang xây dựng theo hướng tương tác đối tượng:
Đây là ý tưởng xây dựng của em:
(về lớp Sao Tử Vi):
// Thong tin thoi gian
private NAMANSAO _NamAnSao;
private THANGANSAO _ThangAnSao;
private NGAYANSAO _NgayAnSao;
private GIOANSAO _GioAnSao;
// Thong tin gioi tinh
private GIOITINH _GioiTinh;
// Thong tin chinh ve Sao
private SAOTUVI _SaoTuVi;
private List<LOAISAO> _LoaiSao;
private PHUONGVISAO _PhuongViSao;
private TINHAMDUONG _TinhAmDuong;
private NGUHANHSAO _NguHanhSao;
private TINHDACHAM _TinhDacHam;
private VITRIANSAO _ViTriAnSao;
// Cac thong tin khac ve Sao
private string _TenSao;
private string _YNghia;
Làm cách này bộ an sao chạy chậm hơn vì nó phải dựng đối tượng Sao tử vi và tiến hành các định vị, định tính => rồi mới hình thành đối tượng Cung số tử vi => từ đó hình thành lên đối tượng Lá số tử vi. Nhưng kiểm soát được đối tượng sao.
private List<LOAISAO> _LoaiSao;
=> Hôm trước có nhờ làng nước liệt kê giúp các loại sao. Một sao mang nhiều loại, loại này được nhét vào 1 danh sách. Đây là 1 phần trong việc xây dựng luật giải đoán.
=> Đối tượng sao này còn một thuộc tính chi phối nó đó là mối quan hệ với các sao khác, đây là một mảng có trước. Ví dụ với Phong Cáo, ta có quan hệ: Phong Cáo - Thai Phụ - Quốc Ấn - Tướng Quân... Theo tính toán của em, chỉ có khoảng ~ 1000 quan hệ là cùng.
=> Để xây dựng lời giải, ta căn cứ vào đối tượng Cung số tử vi, lấy liệt kê các bộ sao theo quan hệ kia rồi chèn lời giải ứng cho quan hệ đó.

Chung quy lại, em nghĩ cũng ko phải phức tạp khi ta quy hoạch được rõ ràng các đối tượng.