public CHexagramValueSequencer(ref CHexagramValueSequencer hvs) : this(0) { Trigram(1).Line(2).Value = hvs.Trigram(1).Line(2).Value; Trigram(1).Line(1).Value = hvs.Trigram(1).Line(1).Value; Trigram(1).Line(0).Value = hvs.Trigram(1).Line(0).Value; Trigram(0).Line(2).Value = hvs.Trigram(0).Line(2).Value; Trigram(0).Line(1).Value = hvs.Trigram(0).Line(1).Value; Trigram(0).Line(0).Value = hvs.Trigram(0).Line(0).Value; Trigram(1).Line(2).UpdateInnerValues(); Trigram(1).Line(1).UpdateInnerValues(); Trigram(1).Line(0).UpdateInnerValues(); Trigram(0).Line(2).UpdateInnerValues(); Trigram(0).Line(1).UpdateInnerValues(); Trigram(0).Line(0).UpdateInnerValues(); Trigram(1).Line(2).UpdateOuterValues(); Trigram(1).Line(1).UpdateOuterValues(); Trigram(1).Line(0).UpdateOuterValues(); Trigram(0).Line(2).UpdateOuterValues(); Trigram(0).Line(1).UpdateOuterValues(); Trigram(0).Line(0).UpdateOuterValues(); //UpdateInnerValues(); //UpdateOuterValues(); }
public String DescibeSecondary(bool bValue = false) { if (IsMoving) { CHexagramValueSequencer hvsPrimary = this; CHexagramValueSequencer hvsSeconday = new CHexagramValueSequencer(ref hvsPrimary); hvsSeconday.Move(); return(hvsSeconday.HexagramId() + " " + hvsSeconday.Label + (bValue ? " (" + hvsSeconday.ValueStr + ")" : "")); } return(""); }
public CHexagramValueSequencer AutoCast(ref CHexagramValueSequencer hvs) //////// Random ????????????????????????????? { Random r = true ? Sequences.m_ranSession : new Random(DateTime.Now.Millisecond); for (int l = 0; l < 6; ++l) { int count = (r.Next(5) + 1) * 100 + r.Next(100); for (int c = 0; c < count; ++c) { hvs.Trigram(l / 3).Line(l % 3).Next(true); } } return(hvs); }
public CHexagramArray MultiCast(int nCount) { CHexagramValueSequencer hvs = new CHexagramValueSequencer(63); // more even ???????? for (int i = 0; i < nCount; ++i) { //CHexagramValueSequencer hvs = new CHexagramValueSequencer(63); AutoCast(ref hvs); CHexagram h = new CHexagram(ref hvs); int nIndex = Array.BinarySearch(m_arrHexagram, h); if (nIndex >= 0) { ((CHexagram)m_arrHexagram.GetValue(nIndex)).Add(); } } return(this); }
public CHexagramArray() { CHexagramValueSequencer hvsPrimary = new CHexagramValueSequencer(0); hvsPrimary.First(); for (int p = 0; p < 64; ++p) { for (int s = 0; s < 64; ++s) { CHexagramValueSequencer hvs = new CHexagramValueSequencer(ref hvsPrimary); for (int l = 0; l < 6; ++l) { if (((s & (1 << l)) >> l) == 1) { hvs.Trigram(l / 3).Line(l % 3).Next(false); } } Add(ref hvs); } hvsPrimary.Next(); } Array.Sort(m_arrHexagram); }
public void Add(ref CHexagramValueSequencer hvsPrimary) { m_arrHexagram.SetValue(new CHexagram(ref hvsPrimary), ++m_nCount); }
public CHexagram(ref CHexagramValueSequencer hvsPrimary) { m_hvsPrimary = new CHexagramValueSequencer(ref hvsPrimary); }