Hola comunidad esta duda siempre la he tenido y como yo soy alguien que si no encuentra la respuesta la sigue buscando, para que sirve el "xor" me imagino que debe ser parecido al "or" pero me da flojera leerme todo un testamento en ingles ya que no hay informacion directa al tema.

El xor se usa en muchos lenguajes y significa eXclusive OR o "O exclusivo" básicamente concatena dos expresiones lógicas y solo toma en cuenta cuando una y solo una de las dos se cumple.
En cambio en el OR normal se puede cumplir una o las dos.


Es como si se dijera en un XOR, o vas a la playa o bien vas a la montaña, no se pueden cumplir en ningun caso las 2 a la misma vez,
En cambio en el OR puede ocurrir las dos al mismo tiempo. Por ejemplo, voy con un amigo o voy solo al cine. Si va una bien, pero pueden ir las dos perfectamente.








Segun entendi es como un uso de varios if + else creo ya voy entendiendo  XD

Pues, no realmente.

Supon estas 2 proposiciones: "hace frio" y "esta nevando". Un uso normal con OR sería:

if (hace_frio) or (esta_nevando){
     personaje.temblar()
}

Entonces el personaje temblaría independientemente de si hace frio o bien si está nevando, si ocurren las dos al mismo tiempo no hay problema.

Pero el XOR solo permite la veracidad de una sola proposicion a la vez.
Es como si le dijeras a un niño. "Qué quieres de regalo, una pelota o una patineta" la eleccion es exclusiva, elige una de las dos, porque ambas no se puede. Sale muy costoso.




Normalmente utilizo xor para cambiar una variable de true a false y viceversa
[gml]
check = check xor true;
[/gml]
Es más compacto con xor a nivel bit
[gml]
check ^= 1;
[/gml]