void CheckChangeDir(Board_Piece.BoardState check_board, Board_Piece.BoardState change_board, Vector2 pos, int dirx, int diry) { Queue <Vector2> q = new Queue <Vector2>(); q.Clear(); int i = (int)pos.x + dirx; int j = (int)pos.y + diry; while (true) { if (i < 0 || i > 7 || j < 0 || j > 7) { return; } if (Board[i, j].GetComponent <Board_Piece>().GetState() == Board_Piece.BoardState.None) { break; } else if (Board[i, j].GetComponent <Board_Piece>().GetState() == check_board) { q.Enqueue(new Vector2(i, j)); } else { while (q.Count != 0) { Vector2 v = q.Dequeue(); Board[(int)v.x, (int)v.y].GetComponent <Board_Piece>().ChangeDisk(change_board); } break; } i += dirx; j += diry; } }
bool CheckDir(Board_Piece.BoardState check_board, Board_Piece.BoardState change_board, Vector2 pos, int dirx, int diry) { Queue <Vector2> q = new Queue <Vector2>(); q.Clear(); int i = (int)pos.x + dirx; int j = (int)pos.y + diry; while (true) { if (i < 0 || i > 7 || j < 0 || j > 7) { return(false); } if (Board[i, j].GetComponent <Board_Piece>().GetState() == Board_Piece.BoardState.None) { return(false); } else if (Board[i, j].GetComponent <Board_Piece>().GetState() == check_board) { q.Enqueue(new Vector2(i, j)); } else { if (q.Count != 0) { return(true); } else { return(false); } } i += dirx; j += diry; } }