Ich versuche, eine Anordnung von gestapelten Würfeln zu sortieren. Das Array sieht wie folgt aus (ein Beispiel)Wie sortiere ich dieses Array korrekt?
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
---
die wie folgt
visualisiert aussehen würde[7] [2]
---
[1] [8]
---
[6] [4] [3] [5]
---
ich die Würfel aussortiert, die auf einer anderen sind:
string [,] In diesem Fall ist das gesamte Array
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;
}
, die kommt als:
1|6
---
2|8
---
7|1
---
8|4
---
jetzt im sie versuchen, von oben zu legen (so 7/2 dann 1/8)
string [,] t ab hier ist 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;
}
hier im vom ersten Cube 1 (t [j, 0]) gehen und überprüfen, ob es etwas ist, es es auf t findet [i, 1] und gibt die 7 (t [zurück j, 0]) und geht zurück. ich überprüfen, ob es etwas auf dem Cube ist hier
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;
}
ich auch, ob oder nicht, sind sie alle auf dem Schreibtisch (mit dem do-while)
static bool AreAllTheCubesOnTable(string[,] t)
{
for (int i = 0; i < t.GetLength(0); i++)
{
if (t[i, 1] != "0")
{
return false;
}
}
return true;
}
Und der Ausgang ist alles falsch :
7|0
---
7|0
---
7|0
---
7|0
---
, wenn es so etwas wie sein sollte:
7|0
---
1|0
---
2|0
---
8|0
---
Wo bin ich falsch Indizierung? (Oder etwas anderes)
Was ist Ihr erwartetes Ergebnis (7 | 0, 1 | 0, 2 | 0, 8 | 0) soll darstellen? – EpicSam
der Rückgabewert von Putdown() - das ist string [,] stackedOrder - wenn alles fertig ist – throwjdoe
Ihre Verwendung der Domänensprache in der Frage ist verwirrend; Ein "Würfel", der "auf einem Schreibtisch" oder "auf einem anderen Würfel" ist, bedeutet absolut nichts für Menschen außerhalb Ihres Gehirns oder außerhalb derer, die Bescheid wissen. Sprich in einfachem Code. – eurotrash