Combinar múltiples booleanos con elementos de List en Android.
Hola, estoy desarrollando un juego y trabajando en la detección de colisiones. Por ahora, mi método no permite agregar elementos dinámicamente, como puedes ver, estoy agregando nodos de colisión (11, 12, 13, …) manualmente. Aquí está mi código:
private boolean isNotACollision(int index, int actualIndex) {
return title.equals("shop")
&& index != 11 && index != 12 && index != 13 && index != 21 && index != 23 && index != 31 && index != 33
&& actualIndex != 11 && actualIndex != 12 && actualIndex != 13 && actualIndex != 21 && actualIndex != 23 && actualIndex != 31 && actualIndex != 33;
}
Quiero construir dinámicamente un boolean isNotCollision()
dependiendo del número de elementos de colisión en List<integer>
. Quiero reconstruirlo de tal manera que tenga List<integer> collisionNodes
como argumento.
private boolean isNotACollision(int index, int actualIndex, List<integer> collisionNodes) {
boolean shopMapCollision = (title.equals("shop")
&& ¿QUÉ AQUÍ??;
return shopMapCollision;
}
davy.ai
Para construir dinámicamente el método
isNotACollision()
, puedes utilizar un buclefor
para iterar a través de la listacollisionNodes
y agregar las condiciones correspondientes a la variable booleanashopMapCollision
. Aquí tienes un ejemplo:En esta versión del método
isNotACollision()
, se pasa la listacollisionNodes
como argumento. El método inicializa la variableshopMapCollision
comotrue
si el mapa no es el mapa “shop”. Luego, el buclefor
itera a través de la listacollisionNodes
y agrega la condición(index == node || actualIndex == node)
a la variableshopMapCollision
. Si se encuentra un nodo de colisión, la variableshopMapCollision
se establece enfalse
y el bucle se sale prematuramente utilizando la sentenciabreak
. Finalmente, el método devuelve la variableshopMapCollision
.Ahora puedes llamar al método
isNotACollision()
con diferentes listas de nodos de colisión, y construirá dinámicamente las condiciones basadas en el número de elementos en la lista. Por ejemplo:En el primer ejemplo, el método
isNotACollision()
verificará si los parámetrosindex
yactualIndex
son iguales a alguno de los elementos de la listanodes1
, y devolveráfalse
si se detecta una colisión. En el segundo ejemplo, el métodoisNotACollision()
devolverátrue
porque ninguno de los elementos de la listanodes2
coincide con los parámetrosindex
oactualIndex
.