private void moveTwoGems() { int i, j, i2, j2; Vector2 vec = GemControler.toSwap[0].transform.position; StartCoroutine(GemControler.toSwap[0].Move(GemControler.toSwap[1].transform.position)); StartCoroutine(GemControler.toSwap[1].Move(vec)); getIJ(GemControler.toSwap[0], out i, out j); getIJ(GemControler.toSwap[1], out i2, out j2); GemControler temp = board[i, j]; board[i, j] = board[i2, j2]; board[i2, j2] = temp; GemControler.toSwap.Clear(); cleared = false; }
public Queue <GemControler> BFS(GemControler gc) { Queue <GemControler> lookFor = new Queue <GemControler>(); for (int i = 0; i < 4; i++) { if (gc.neighbors[i] != null) { if (gc.neighbors[i].tag == gc.tag && gc.neighbors[i].GetComponent <GemControler>().matched) { lookFor.Enqueue(gc.neighbors[i].GetComponent <GemControler>()); } } } return(lookFor); }
private bool getIJ(GemControler gem, out int xi, out int xj) { for (int i = 0; i < col; i++) { for (int j = 0; j < row; j++) { if (gem == board[i, j]) { xi = i; xj = j; return(true); } } } xi = -1; xj = -1; return(false); }
private void CheckForMatch(GemControler xgemControler) { xgemControler.SearchForMatch(); }