Ho una matrice 3D con booleani e ho bisogno di controllare se ci sono "linee" che contengono tutte vero o falso. Con le linee intendo orizzontalmente, verticalmente e diagonalmente all'interno della matrice. Tuttavia ho solo bisogno di controllare questo quando un elemento cambia e conosco la posizione dell'elemento modificato. L'array è sempre uguale su tutti e 3 i lati / dimensioni.
Sto cercando un modo efficace per attraversare la possibile direzione dall'elemento che è cambiato. Quello che sto facendo è in primo luogo controllare le linee rette x, yez che sono facili. Quindi controllo le 2 diagonali orizzontali:
if (element.x + element.y == arraySize || element.x == element.y)
//Only now there can be a full diagonal line
E quello per ogni lato (x, y e z). Ora ho solo bisogno delle 4 diagonali complete per l'array. Ma mi chiedo se c'è un trucco intelligente per renderlo più efficiente.