Ich habe Schwierigkeiten, herauszufinden, wie ich mein Array korrekt einrichten kann.Einrichten eines multidimensionalen Arrays ohne Datenduplikation
Ich habe eine grundlegende Reihe von Fliesen auf meinem Array grid[,]
eingestellt das funktioniert gut.
Jetzt versuche ich ein Array für meine Kanten zwischen den Gittern zu machen, so dass ich Wände ablegen kann.
Also ich habe dies: walls[,][,]
wo jede [,]
ist eine Rasterposition, damit jede Wand 2 Rasterpositionen trennt.
Das Ende Ziel ist es, dass ich eine Wand Array mit zwei Gitterpunkten sagen A
wollen und B
, so dass ich dann tun:
Wall wallObject = walls[A.x,A.y][B.x,B.y];
Hoffnung, die Sinn macht. Ich habe versucht, so etwas wie dies zu tun:
' Jetzt, da jede 1 Kachel 4 Wände haben kann ich versucht, meine Wand Array wie dies einzurichten, konnte aber die Syntax richtig es nicht funktioniert tun:
grids = new Tile[x,y];
walls = new Wall[grids.GetLength(0), grids.GetLength(1)][walls.GetLength(0) * 4, walls.GetLength(1) * 4]; // invalid rank specifier ERROR
for(int i = 0; i < x; i++) {
for(int j = 0; j < y; j++) {
grids[i, j] = new Tile(new Vector3(i, 0, j));
foreach (Vector3 gridNeighbour in AdjacentTiles(new Vector3(i, 0, j))) //4 directions
{
if (!InGrid(gridNeighbour)) continue;
walls[i, j][(int)gridNeighbour.x, (int)gridNeighbour.z] = new Wall(grid[i,j],grid[(int)gridNeighbour.x,(int)gridNeighbour.z]);
}
}}
Ich bekomme einen Fehler in der zweiten Zeile nicht sicher, der richtige Weg, um es zu schreiben. Ich bin auch ziemlich sicher, dass meine Logik falsch ist, da dieses Datensetup mir doppelte Daten für meine Wände geben würde, so dass ich wall[gridA][gridB]
und wall[gridB][gridA]
bekommen würde, was ich gerne vermeiden würde, aber ich weiß nicht wie.
Ich glaube wirklich nicht, dass Sie ein 4-dimensionales Array dafür benötigen, vorausgesetzt, dass ich Sie richtig verstehe. Wenn ich nicht bin, können Sie besser erklären, warum Sie ein 4-dimensionales Array benötigen? – Unlocked
Eine gegebene Wand trennt zwei Kacheln "A" und "B". Wenn ich also eine Wand finden möchte, die zwei bestimmte Kacheln trennt, war die Idee, sie wie 'Wände [Ax, Ay] [Bx, By]' aus dem Array zu holen Hoffnung, die Sinn macht. Ich nahm an, dass ich diese Art von Array-Struktur benötigen würde, um es zu tun. – Sir