public static int indexOf(List <Element16> hiddens, Element16 ele) { for (int i = 0; i < hiddens.Count; i++) { if ((int)hiddens[i].transform.position.x == ele.transform.position.x) { if ((int)hiddens[i].transform.position.y == ele.transform.position.y) { return(i); } } } return(-1); }
public static void addthisele(List <Element16> section, Element16 elem) { section.Add(elem); foreach (Element16 ele in playfield16.elements) { if (!section.Contains(ele) && ele.GetComponent <SpriteRenderer>().sprite != ele.defaultTexture && ele.GetComponent <SpriteRenderer>().sprite != ele.flagTexture && ele.GetComponent <SpriteRenderer>().sprite != ele.emptyTexture) { List <Element16> hidd = Hidden_ones(ele); List <Element16> actual_hidd = Hidden_ones(elem); for (int k = 0; k < hidd.Count; k++) { if (actual_hidd.Contains(hidd[k])) { addthisele(section, ele); break; } } } } }
public static List <Element16> Hidden_ones(Element16 ele) { List <Element16> list = new List <Element16>(); int i = (int)ele.transform.position.x; int j = (int)ele.transform.position.y; if (i > 0 && elements[i - 1, j].GetComponent <SpriteRenderer>().sprite == ele.defaultTexture) { list.Add(elements[i - 1, j]); } if (i < w - 1 && elements[i + 1, j].GetComponent <SpriteRenderer>().sprite == ele.defaultTexture) { list.Add(elements[i + 1, j]); } if (i > 0 && j > 0 && elements[i - 1, j - 1].GetComponent <SpriteRenderer>().sprite == ele.defaultTexture) { list.Add(elements[i - 1, j - 1]); } if (i < w - 1 && j > 0 && elements[i + 1, j - 1].GetComponent <SpriteRenderer>().sprite == ele.defaultTexture) { list.Add(elements[i + 1, j - 1]); } if (i > 0 && j < h - 1 && elements[i - 1, j + 1].GetComponent <SpriteRenderer>().sprite == ele.defaultTexture) { list.Add(elements[i - 1, j + 1]); } if (i < w - 1 && j < h - 1 && elements[i + 1, j + 1].GetComponent <SpriteRenderer>().sprite == ele.defaultTexture) { list.Add(elements[i + 1, j + 1]); } if (j < h - 1 && elements[i, j + 1].GetComponent <SpriteRenderer>().sprite == ele.defaultTexture) { list.Add(elements[i, j + 1]); } if (j > 0 && elements[i, j - 1].GetComponent <SpriteRenderer>().sprite == ele.defaultTexture) { list.Add(elements[i, j - 1]); } return(list); }