public bool Prefer(Man man) { if (null != engaged) { foreach (Man m in rank) { if (m.Equals(man)) { engaged.ChangeStatus(); return(true); } if (m.Equals(engaged)) { return(false); } } } return(true); }
public void pair() { Man m = GetFree(men); while (m != null) { Woman w = m.GetChoice(); while (m.IsFree()) { if (w.Prefer(m)) { w.SetEngaged(m); m.ChangeStatus(); } m.Next(); w = m.GetChoice(); } m = GetFree(men); } }