コード例 #1
0
        public List <HexagonGroup> GetNeighbours(PairedGroup pairedGroup, int commonCount)
        {
            List <HexagonGroup> neighbours = new List <HexagonGroup>();

            for (int i = 0; i < _groupList.Count; i++)
            {
                if (_groupList[i].A.Equals(pairedGroup.Other) || _groupList[i].B.Equals(pairedGroup.Other) || _groupList[i].C.Equals(pairedGroup.Other))
                {
                    //already have 1 common, now counting pairs also
                    int count = 1;
                    for (int j = 0; j < pairedGroup.Pairs.Length; j++)
                    {
                        if (_groupList[i].A.Equals(pairedGroup.Pairs[j]) || _groupList[i].B.Equals(pairedGroup.Pairs[j]) || _groupList[i].C.Equals(pairedGroup.Pairs[j]))
                        {
                            count++;
                        }
                    }
                    if (count == commonCount)
                    {
                        neighbours.Add(_groupList[i]);
                    }
                }
            }
            return(neighbours);
        }
コード例 #2
0
        public List <PairedGroup> GetAllPairedGroups()
        {
            List <PairedGroup> pairedGroupList = new List <PairedGroup>();

            for (int i = 0; i < _groupList.Count; i++)
            {
                PairedGroup pairedGroup = GetPairedGroup(_groupList[i]);
                if (pairedGroup != null)
                {
                    pairedGroupList.Add(pairedGroup);
                }
            }
            return(pairedGroupList);
        }