У меня есть 2d логический массив, который проверяет, все ли строки столбцов истинны.Прямо сейчас я хочу проверить это, если строка заполнена всем истинным.Я хочу, чтобы этот ряд стал ложным.и тогда я беру значение выше меня.и запихнуть это.так же, как тетрис.это мой псевдокод, который я сделал.Может ли кто-нибудь дать мне подсказку и объяснение о том, как это сделать?и кстати.если я заполнил ВТОРОЙ столбец с true.Боюсь, что первый столбец также сместится вниз независимо от его самого низкого значения столбца.
[SerializeField]private int columns;
[SerializeField]private int rows;
private bool[,] grid;
private bool isRowTrue = true;
private int gridColumnCount = 0;
private int gridRowCount = 0;
private int combo = 0;
// Start is called before the first frame update
void Start()
{
grid = new bool[columns, rows];
for (int y = 0; y < grid.GetLength(1); y++)
{
for (int x = 0; x < grid.GetLength(0); x++)
{
grid[y, x] = false;
}
}
}
// Update is called once per frame
void Update()
{
CheckArrays();
}
private void CheckArrays()
{
for (int y = 0; y < grid.GetLength(1); y++)
{
for (int x = 0; x < grid.GetLength(0); x++)
{
if (grid[y, x] == false)
{
isRowTrue = false;
break;
}
}
if (isRowTrue == true)
{
Debug.Log(y + "TH Row Are All True");
for (int x = 0; x < grid.GetLength(0); x++)
{
grid[y, x] = false;
Debug.Log(grid[y, x]);
}
for (int yc = 0; yc < grid.GetLength(1); yc++)
{
for (int xc = 0; xc < grid.GetLength(0); xc++)
{
grid[yc, xc] = grid[yc - 1, xc - 1];
}
}
}
else
{
isRowTrue = true;
}
}
}