//Copy below line and paste on 9x9 grid of GNPX. //1..4....8.9.1...5.....63.....13.5.79..3...8..76.2.94.....75.....1...6.4.8....4..2 public UGLinkMan2(AnalyzerBaseV2 AnB) { this.pBDL = AnB.pBDL; this.pHouseCells = AnalyzerBaseV2.HouseCells; BaseSet_Status2.pHouseCells = AnalyzerBaseV2.HouseCells; BaseSet_Status2.pConnectedCells = AnalyzerBaseV2.ConnectedCells; UGLink_unit.pConnectedCells = AnalyzerBaseV2.ConnectedCells; }
//..7.2..4546.5....9.95.....7.....8.3.9...6...1.7.2...987......8384...1.5253..8.9.. //83..76..2....85.....1...7...8...3....67...13....7...4...2...3.....24....9..63..25 //1..4....8.9.1...5.....63.....13.5.79..3...8..76.2.94.....75.....1...6.4.8....4..2 public UGLinkMan(AnalyzerBaseV2 AnB) { this.pBDL = AnB.pBDL; this.pHouseCells = AnalyzerBaseV2.HouseCells; BaseSet_Status.pHouseCells = AnalyzerBaseV2.HouseCells; UGLink.pConnectedCells = AnalyzerBaseV2.ConnectedCells; BaseSet_Status.pConnectedCells = AnalyzerBaseV2.ConnectedCells; UGLink.pUGLM = this; }
private bool extFlag; //3D or more sizes. ... public FishMan(AnalyzerBaseV2 AnB, int FMSize, int no, int sz, bool extFlag = false) { this.pBDL = AnB.pBDL; this.pHouseCells = AnalyzerBaseV2.HouseCells; //set reference this.pConnectedCells = AnalyzerBaseV2.ConnectedCells; //set reference this.extFlag = extFlag; //sz>2 or ... this.no = no; this.sz = sz; int noB = (1 << no); //Bit expression of dijit(#no) Bit81 Q, BPnoB = new Bit81(pBDL, noB); for (int tfx = 0; tfx < FMSize; tfx++) //crate element cells of fish { Q = pHouseCells[tfx] & BPnoB; if (!Q.IsZero() && !HBLst.Contains(Q)) { HBLst.Add(new Bit81F(Q, ID: tfx)); //Omit the same cells even in different House } } if (HBLst.Count < sz * 2) { HBLst = null; return; } //Need more than sz*2 }