cách đơn giản nhất là bạn gen ngẫu nhiên ra 1 game. viết 1 giải thuật để xem game này có solvable hay không. nếu có thì đưa người chơi, còn không thì gen lại.
còn đàng hoàng hơn thì bạn cần để ý chút việc match như vậy khá giống đang đi trên 1 đường đi -> mình có thể map nó qua graph (đồ thị).
game có thể giải -> đi qua mọi node trong đồ thị với giới hạn là phải đi qua M node giống nhau liên tục trong giới hạn N bước. nếu tồn tại đường đi, đi qua mọi node -> đường đi đó là 1 chu trình hamilton “đặc biệt”. gọi đặc biệt vì nó có giới hạn như trên
-> bạn có thể tìm cách gen 1 đồ thị sao cho nó tồn tại 1 chu trình hamilton.
còn không gen được thì bạn cũng có giải thuật để kiểm tra xem game có solvable hay không.