}//*/ public PL[][] findLines(int teamNo, Vector2Int pos) { List <PL[]> ls = new List <PL[]>(); for (int i = 0; i < 8; i++) { int x = i % 4 == 0 ? 0 : (i > 4 ? -1 : 1); int y = (i - 2) % 4 == 0 ? 0 : ((i) < 6 ? -1 : 1); int power = 1; Vector2Int vec = new Vector2Int(x, y); List <PL> line = new List <PL>(); PL target = getPlByCoor(pos + vec * 2 * power); //Debug.Log((target != null) +" "+(target != referance) + " > " +(referance + vec * 2 * power).x + " | " + (referance + vec * 2 * power).y); while (target != null && target.team_no != teamNo) { line.Add(target); //Debug.Log(" > " + i+" "+x+" "+y); power++; target = getPlByCoor(pos + vec * 2 * power); //Debug.Log(">> " + (target != null) + " " + (target != referance) + " > " + (referance + vec * 2 * power).x + " | " + (referance + vec * 2 * power).y); } //if (line.Count > 0) ls.Add(line.ToArray()); if (target != null && target.team_no == teamNo && line.Count > 0) { ls.Add(line.ToArray()); } } return(ls.ToArray()); }//*/
IEnumerator lateFunc() { addPl(0, new Vector2Int(1, 1)); addPl(1, new Vector2Int(-1, 1)); addPl(0, new Vector2Int(-3, 1)); addPl(1, new Vector2Int(1, -1)); addPl(0, new Vector2Int(1, -3)); addPl(1, new Vector2Int(3, 1)); addPl(0, new Vector2Int(5, 1)); createPlayableSlot(0); yield return(new WaitForSeconds(1)); PL pp = getPlByCoor(new Vector2Int(1, 1)); PL[][] d = findLines(pp); Debug.Log("d: " + d.Length); for (int x = 0; x < d.Length; x++) { Debug.Log(x); for (int y = 0; y < d[x].Length; y++) { Debug.Log(d[x][y].getX() + " " + d[x][y].getY()); } } //if (d != null) Debug.Log("d: "+d.Length); //else Debug.Log("d: Null"); // removePlayableSlots(); //createPlayableSlot(1); //yield return new WaitForSeconds(5); //removePlayableSlots(); }
public PL[][] findLines(PL referance) { List <PL[]> ls = new List <PL[]>(); for (int i = 0; i < 8; i++) { int x = (i - 1) % 8 < 3 ? 1 : i > 4?-1:0; int y = (i + 1) % 8 < 3?1:((i + 2) % 8 > 4?-1:0);//(i-2)%4==0? 0 : ((i)<6 ? -1 : 1); int power = 1; Vector2Int vec = new Vector2Int(x, y); List <PL> line = new List <PL>(); PL target = getPlByCoor(referance + vec * 2 * power); //Debug.Log((target != null) +" "+(target != referance) + " > " +(referance + vec * 2 * power).x + " | " + (referance + vec * 2 * power).y); while (target != null && target != referance) { line.Add(target); //Debug.Log(" > " + i+" "+x+" "+y); power++; target = getPlByCoor(referance + vec * 2 * power); //Debug.Log(">> " + (target != null) + " " + (target != referance) + " > " + (referance + vec * 2 * power).x + " | " + (referance + vec * 2 * power).y); } if (target != null && target.team_no == referance.team_no && line.Count > 0) { ls.Add(line.ToArray()); Debug.Log(i + " " + line.Count + " " + line[0].getX() + " " + line[0].getY() + " Direct:" + vec.x + " " + vec.y); } //if (line.Count > 0) ls.Add(line.ToArray()); } return(ls.ToArray()); }//*/