Im пытается сортировать по массиву сложены кубов. Массив выглядит следующим образом (пример)Как правильно отсортировать этот массив?
Nth Cube | Position (0, its on the desk, >0, its on another cube)
---
1|6
---
2|8
---
3|0
---
4|0
---
5|0
---
6|0
---
7|1
---
8|4
---
, который будет выглядеть следующим образом визуализируется
[7] [2]
---
[1] [8]
---
[6] [4] [3] [5]
---
Я выяснял кубов, которые находятся на другой:
строка [,] t в этом случае представляет собой весь массив
static string[,] stackedCubes(string[,] t)
{
string[,] stackedHelp = new string[NumberOfStacked(),2];
int j = 0;
for (int i = 0; i < t.GetLength(0); i++)
{
if (t[i, 1]!="0")
{
stackedHelp[j, 0] = t[i, 0];
stackedHelp[j, 1] = t[i, 1];
j++;
}
}
return stackedHelp;
}
, который выходит как:
1|6
---
2|8
---
7|1
---
8|4
---
теперь им пытаются поставить их сверху вниз (так 7/2 затем 1/8)
строка [,] т здесь на это stackedCubes
static string[,] Putdown(string[,] t)
{
string[,] stackedOrder = new string[NumberOfStacked(), 2];
int j = 0;
do
{
for (int i = 0; i < t.GetLength(0); i++)
{
if (t[i, 1] == t[j, 0])
{
j = i;
}
else if(IsSomethingOnTheCube(t[j,0],t)==false)
{
stackedOrder[i, 0] = t[j, 0];
stackedOrder[i, 1] = "0";
t[i, 1] = "0";
}
}
}
while (AreAllTheCubesOnTable(t) != true);
return stackedOrder;
}
здесь им будет от первого куба 1 (т [у, 0]) и проверьте, есть ли что-то на нем, он находит его на т [я, 1] и возвращает в 7 (т [ j, 0]) и возвращается. проверить, если есть что-то на кубе здесь
static bool IsSomethingOnTheCube(string Cube,string[,] t)
{
for (int i = 0; i < t.GetLength(0); i++)
{
if(Cube==t[i,1])
{
return true;
}
}
return false;
}
Я также проверить, действительно ли все они на столе (с сделай время)
static bool AreAllTheCubesOnTable(string[,] t)
{
for (int i = 0; i < t.GetLength(0); i++)
{
if (t[i, 1] != "0")
{
return false;
}
}
return true;
}
И выход все неправильно :
7|0
---
7|0
---
7|0
---
7|0
---
, когда это должно быть что-то вроде:
7|0
---
1|0
---
2|0
---
8|0
---
Где я индексировать не так? (Или что-то еще)
Каков ваш ожидаемый результат (7 | 0, 1 | 0, 2 | 0, 8 | 0), которые должны представлять? – EpicSam
возвращаемое значение Putdown() - которое является строкой [,] stackedOrder - когда все это сделано – throwjdoe
Ваше использование языка домена в вопросе запутанно; «куб», находящийся «на столе» или «на другом кубе», абсолютно ничего не значит для людей вне вашего мозга или за пределами тех, кто знает. Говорите в простом коде. – eurotrash