(http://www.andorstudios.com/marte/imagenes/CVRiOSpresentacion.jpg)
(http://www.andorstudios.com/marte/imagenes/CVRiOSopciones.jpg)
¿Qué es CVRîOS? ¿Un MMORPG ambientado en la época medieval? ¿Un FPS futurista en el que matas alienígenas? ¡¡No!!
CVRîOS significa Cursor Virtual Reality (icono de un cursor) Operating System. ¿Qué significa esto? Absolutamente nada.
CVRîOS es una mezcla de mundo virtual y real, en el que una simpática flechita (propiamente hablando un cursor) ha de moverse por entre los componentes de una serie de placas (tarjetas hardware de todo tipo) para completar cualesquiera que sean las misiones que se le indican que ha de llevar a cabo, como por ejemplo:
-activar todos los interruptores dispersos a lo largo de la tarjeta para conectarla,
-activar el interruptor que alimenta el ventilador para que la tarjeta no se sobrecaliente,
-desactivar todos los interruptores indicados para apagar determinados dispositivos,
-largo etcétera.
Pero no todo va a ser tan fácil. Al conectar un interruptor, estarás expuesto a electrocutarte con la carga de electricidad que se desplazará a través de las líneas de corriente. Además, pueden haber una serie de gusanos dunedianos que aparecerán sin previo aviso de la tarjeta y tratarán de zamparte. Por si esto fuera poco, tendrás un tiempo limitado para cada fase, a partir del cual aparecerá un virus que irá directamente a por ti, duplicándose cada cierto tiempo (si no es que te ha alcanzado antes). ¿Crees que podrás escapar de él? Tal vez pienses lo contrario cuando una de las múltiples ventanitas de Microsoft que pululan por el tablero se te quede pegada como una lapa y te impida moverte con normalidad.
¿Aceptas el reto?
La música del menú (prácticamente la definitiva a falta de tener más tiempo e instrumentos) está en
http://www.andorstudios.com/~marte/canciones/CVRiOS.xm(A éste no le pongo î o tendríais problemas con los navegadores ;)).
Próximamente más cosas...
Juas tiene buena pinta (ole) además eres de los pocos que parece que no van a comerse el mundo revolucionando la industria del videojuego cuando haya algo pa jugá avisa (uoh)
uoooooooo la musica he vuelto a los 12 años con la NES me encantaaaaaaaaaa
(ole) (uoh) (ole) (uoh) (ole)
Yo quiero el disco entero!!!!
Pues a mi me suena muy bien para ser mod. Muy bien muy bien :D
Eso sí, lo he oído con cascos (es que me he comprado unos pedazo de Pioneer de estos gordos y me estoy flipando solo) y se me cae la cabeza hacia la izquierda. Yo pasaría algún instrumento un poco más la derecha, o introduciría algo en la derecha, que cojea bastante.
De todas maneras lo estoy escuchando con el winamp, lo mismo no lo reproduce todo lo bien que debiera
Voy a mirarlo en el soundforge..
efectivamente, casi 2db de diferencia RMS entre un canal y otro
¿No es un FPS?¿No es un clon del NFS?¿No se parece al warcraft?¿No tiene sexo?
Que pasa, ¿que quereis ganar ArtFutura? XDDDDD
Ahora en serio, mola la idea. (ole)
Jejeje, bueno, ahora sólo falta lo más fácil: el resto :_
Guybrush, tengo la sensación de déjà vû de que esto me ha pasado ya en otras canciones y me lo has dicho. Creo que es porque escucho mejor con el oído izquierdo y tiendo subconscientemente a cargar más esa parte (que es la que mejor oigo).
Gracias por avisar, intentaré desplazar un poco el panning de algún instrumento para mejorar eso. ¿Hay alguna herramienta libre que me pueda ayudar a ver cómo está calibrado o algún truco de la abuela? (Es que bajarme el soundforge para eso...).
Pues nada, gracias por el interés. La verdad es que hace un año que teníamos la idea del proyecto en mente para el artfutura pero luego se quedó el trabajo gráfico hecho y la idea colgada. A ver si esta vez tenemos mejor racha :huh:
Bueno, a ver si se pasa AgeR y cuenta algo ^_^
Cita de: "Mars Attacks"Jejeje, bueno, ahora sólo falta lo más fácil: el resto :_
Y ese resto parece que me toca a mí en su mayoría :rolleyes:
Pues bueno, como decía Mars, ya tenemos la idea bastante bien asentada (cosa de un año da para mucho XD).
Ahora toca programar el juego y ganar el ArtFutura.... pfffffffffff XDDDDDDDDDDDDD
Con un poco de suerte (y tiempo) a ver si pongo esta semana que viene alguna screenshot del juego. Pero bueno, aun tengo que empezarlo y todo, así que paciencia.
Por si fuera poco, estoy remodelando el "motor" (muy sencillo, como nosotros XD)... así que hasta dentro de un tiempo no sacaremos nada para testeo. (nooo)
Citar
¿No es un FPS?¿No es un clon del NFS?¿No se parece al warcraft?¿No tiene sexo?
Y además no tiene modo multijugador, ni sombras por stencil, ni scripts de IA, ni lightmaps, ni animaciones por bones, ni sistema de colisiones de fliparlo, ni físicas hiper-realistas, ni colosales escenarios de tropemil polígonos...
Ni todo esto, ni muchas más cosas, todo eso vamos a hacer (uoh) . Pero es nuestro proyecto, nuestra idea, y vamos a hacerla (ole) .
Saludos!
No tiene scripts de IA pero sí tiene algo de IA, que conste:
void mueve_virus(int virus.x, int virus.y, int virus.objetivo.x, int virus.objetivo.y, int sigue_objetivo){
int vx=virus.x;
int vy=virus.y; //Con esto comprobaremos luego si nos hemos movido.
int i;
/* Voy a llamar objetivo.x a virus.objetivo.x y lo mismo con la y para que no salgan salchichas */
if(!sigue_objetivo) { //vamos a por la flecha
objetivo.x=flecha.x; //así que marcamos sus coordenadas
objetivo.y=flecha.y; //como objetivo
/*ahora intentamos acercarnos a la flecha en x y en y*/
if(vx>objetivo.x) { if(tablero(vx-1,vy)) {vx--;};}
else{
if(vx<objetivo.x) {if(tablero(vx+1,vy)) {vx++;};};};
if(vy>objetivo.y) { if(tablero(vx,vy-1)) {vy--;};}
else{
if(vy<objetivo.y) {if(tablero(vx,vy+1)) {vy++;};};};
/*y ahora vemos si nos hemos movido o no*/
if(vx==virus.x && vy=virus.y) { //si no lo hemos hecho
if(vy>flecha.y) { //vemos si estamos encima de la flecha
sigueobjetivo=1; //que es el estado 1
objetivo.y=vy-1;
for(i=vx;(i>=0 && !tablero(i,vy-1));i--);
if(i>=0) {objetivo.x=i;} else {objetivo.x=-10000;};
for(i=vx;(i<MAXCOLS && tablero(i,vy-1));i++);
if(i!=MAXCOLS) {if((i-vx)<(vx-objetivo.x)){objetivo.x=i;};};
};
/*Hay que aclarar que supongo muchas cosas, como que MAXCOLS es el número de columnas de la matriz tablero (la extendida) y que la disposición de piezas en el tablero será tal que siempre haya un hueco a la izquierda o a la derecha, arriba o abajo por donde el virus pueda pasar (es decir, nada de laberintos con callejones sin salida)*/
if(vx>flecha.x) { //vemos si estamos a la derecha de la flecha
sigueobjetivo=2; //que es el estado 2
objetivo.x=vx-1;
for(i=vy;(i>=0 && !tablero(vx-1,vy));i--);
if(i>=0) {objetivo.y=i;} else {objetivo.y=-10000;};
for(i=vy;(i<MAXFILS && tablero(vx-1,vy));i++);
if(i!=MAXFILS) {if((i-vy)<(vy-objetivo.y)){objetivo.y=i;};};
};
if(vy<flecha.y) { //vemos si estamos debajo de la flecha
sigueobjetivo=3; //que es el estado 3
objetivo.y=vy+1;
for(i=vx;(i>=0 && !tablero(i,vy+1));i--);
if(i>=0) {objetivo.x=i;} else {objetivo.x=-10000;};
for(i=vx;(i<MAXCOLS && tablero(i,vy+1));i++);
if(i!=MAXCOLS) {if((i-vx)<(vx-objetivo.x)){objetivo.x=i;};};
};
if(vx<flecha.x) { //vemos si estamos a la izquierda de la flecha
sigueobjetivo=4; //que es el estado 4
objetivo.x=vx+1;
for(i=vy;(i>=0 && !tablero(vx+1,vy));i--);
if(i>=0) {objetivo.y=i;} else {objetivo.y=-10000;};
for(i=vy;(i<MAXFILS && tablero(vx+1,vy));i++);
if(i!=MAXFILS) {if((i-vy)<(vy-objetivo.y)){objetivo.y=i;};};
};
} //y hasta aquí llega el tinglao de buscar el nuevo objetivo.
else { //si sí hemos cambiado la posición
virus.x=vx;
virux.y=vy;
sigueobjetivo=0;}; // ésta asignación creo que es innecesaria.
} // hasta aquí si seguíamos a la flecha, ahora vamos a ver qué pasa
else { //si teníamos otro objetivo antes. Probablemente el caso anterior
switch(sigueobjetivo){ //se podrá englobar aquí
case 1:
if(vx>objetivo.x){virus.x--;}
else{ if(vx<objetivo.x){virus.x++;}
else{ //si son iguales ya ha llegado al borde y sólo le resta
virus.y--; //girar la esquina y volver al estado normal.
sigueobjetivo=0;};};
break;
/*como podéis comprobar, ahora no miro en el tablero si puedo acceder o no porque por la disposición de las piezas debería serlo. Es decir, las piezas deberán estar situadas en estructuras simples, nada de L o U o cosas así (excepto en los bordes, que creo que sí se podría)*/
case 2:
if(vy>objetivo.y){vy--;}
else{ if(vy<objetivo.y){vy++;}
else{
vx--;
sigueobjetivo=0;};};
break;
case 3:
if(vx<objetivo.x){virus.x--;}
else{ if(vx>objetivo.x){virus.x++;}
else{
vy++;
sigueobjetivo=0;};};
break;
case 4:
if(vy>objetivo.y){virus.y--;}
else{ if(vy<objetivo.y){virus.y++;}
else{
vx++;
sigueobjetivo=0;};};
break;
}; //Fin del switch.
virus.x=vx;
virus.y=vy;
}; //Fin del superif sigueobjetivo
};
(Ahí podéis observar lo del tablero que comentaba en otro post; está todo sin optimizar, cuando tenga un ratejo sacaré estructuras comunes y lo simplificaré).
Cita de: "Mars Attacks"¿Hay alguna herramienta libre que me pueda ayudar a ver cómo está calibrado o algún truco de la abuela? (Es que bajarme el soundforge para eso...).
Creo que se puede ver fácilmente en los medidores del programa que uses. Lo que hice para mirarlo fue grabar a wav el mod, y luego abrilo en el soundforge (o wavelab o cool edit o lo que te de la gana) y mirar el RMS de cada uno de los canales. De todas maneras a simple vista se aprecia.
Sin embargo, no creo que nadie navegando por los menús del juego y oyendo la música por los speakers del ordenador se fije mucho en eso. ;)
Vale, ahora la pregunta del millón: ¿qué es el RMS?
Voy a probar algunos cambios de instrumentos con el Sytnh1 (me he dado cuenta de que no responde si le digo que lo toque con un volumen 00, pero sí si lo hace con un volumen 01, por fin sé cómo callar esos malditos instrumentos que se me quedan sonando), aunque no hay ninguna guitarra que me haya gustado :( Todas quedan muy gays.
Cita de: "Mars Attacks"Vale, ahora la pregunta del millón: ¿qué es el RMS?
Eso que te lo responda sync que es un experto. Como introducción, RMS (root mean square) es la medida de la amplitud más como media en el tiempo que como de pico, lo que se ajusta mejor a nuestra percepción del volumen.
pero como he dicho antes,que hable el supertacañón ;)
¿Eso de supertacañón es porque es catalán? XDDDDD
Bueno, de todas formas he pasado un instrumento a la derecha y los charles y el hit-hat, y sí que veo que está más compensado.
He estado trasteando con diversos VSTi, pero no encuentro ninguna guitarra distorsionada que me convenza y que no quede heterogénea con respecto al resto, creo que se quedará con los instrumentos que tiene.
Vaya vaya, así quee ste es el otro juego en el que estabas metido? A ver si me voy a poner celoso XDD Creia que era una especie de comecocos, pero esto tiene más gracia además de que es bastante original. A ver cuando podemos bajarnos algo jugable que queremos viciarnos. Por cierto, ¿será 2D o 3D?
Hmmm... será 3D pero casi más bien un 2D en perspectiva. Es decir, tu personaje va por el plano del suelo, pero todos los modelos son tridimensionales. Algo similar al ilogic pero moviéndote en el mismo plano.
Edito: resubo la canción con los instrumentos que no uso borrados (no me había dado cuenta de que estaban, se ha quedado en la mitad de espacio) y con el panning cambiado para paliar el problema de la carga a la izquierda. Es el mismo link de antes.
Ey, la idea tiene buena pinta :D .
Ahora a ponerse las pilas, version jugable ya! (twist)
CitarEso que te lo responda sync que es un experto
Mmm... me toca, por alusiones :rolleyes:
Bueno, la verdad es que Guybrush ya ha dado una idea bastante buena y seguro que más o menos todos cuando vais a comprar altavoces os fijais en el dato de potencia máxima RMS y no la PMPO, que es la que suelen poner en grande para vender más ;)
No creo que haya mucho que explicar, pero ya que habeis preguntado, vamos a dar unas nociones generales y así hacemos algo de cultura :P
La RMS se utiliza normalmente para calcular la intensidad media de una señal (que es el factor que determina la potencia media) Es muy fácil de calcular. Por ejemplo, si tenemos una señal/muestra discreta (como un WAV, por ejemplo):
1. Sumamos los cuadrados de todas las muestras
2. Dividimos el resultado por el número de muestras
3. Hacemos la raiz cuadrada y...
hop! ya tenemos la intensidad RMS de esa señal :)
Para una señal analógica, lo mismo, pero integrando en vez de sumando. Observemos también que si tenemos una señal larga, como por ejemplo una canción, no tiene mucha utilidad calcular la intensidad RMS de toda la señal, sino la potencia que va teniendo a intervalos. Una canción puede tener una intensidad media de -6dB RMS. Esto no nos dice si la canción suena fuerte o floja, igual la canción suena casi todo el rato a -12dB RMS y en un pequeño cacho del final suena a 0dB RMS y por eso tenemos esa media.
Es más lógico obterner, por ejemplo, una gráfica de la potencia de la señal en cada cacho. Si os fijais, al hacer un analisis de frecuencia tipo FFT con un editor de audio, normalmente nos mostrará una gráfica en 3D (frecuencia, intensidad y tiempo) que obtiene haciendo la FFT a intervalos regulares (por ejemplo de 1 segundo) Lo común en los editores de audio es tener un par de medidores que nos proporcionen la intensidad PMPO y la RMS a medida que reproducimos el sonido que trabajamos (VU-meters)
Para terminar, observad que si la señal no está centrada, la medida RMS es engañosa. Por ejemplo, una señal de 16 bits en la que todas las muestras están a un mismo valor (por ejemplo a +3dB), calculamos la potencia RMS y nos dará 3dB. Pero en realidad se trata de una señal muda. Las muestras podrían salir descentradas por algun desplazamiento en el nivel de tensión (DC Offset) En cambio, sigue siendo cierto que esos 3dB son proporcionales a la potencia que consume el altavoz al mantener la membrana a ese nivel. Siempre es recomendable trabajar con señales centradas y casi todos los editores de audio tienen una opción para centrar la señal (Eliminate DC Offset)
Bueno, creo que esto me va a solucionar un problema que tenía hace tiempo. Me pidieron en la UAB que si podía dar alguna clase sobre señales en plan algo práctico pa romper la monotonía de la asignatura y después de lo que escrito, creo que este tema da de sí y es lo suficientemente práctico.
Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)
sync
Cita de: "Mars Attacks"Edito: resubo la canción con los instrumentos que no uso borrados (no me había dado cuenta de que estaban, se ha quedado en la mitad de espacio) y con el panning cambiado para paliar el problema de la carga a la izquierda. Es el mismo link de antes.
ahora sí (ole)
Cita de: "synchrnzr"CitarEso que te lo responda sync que es un experto
Mmm... me toca, por alusiones :rolleyes:
Bueno, la verdad es que Guybrush ya ha dado una idea bastante buena y seguro que más o menos todos cuando vais a comprar altavoces os fijais en el dato de potencia máxima RMS y no la PMPO, que es la que suelen poner en grande para vender más ;)
No creo que haya mucho que explicar, pero ya que habeis preguntado, vamos a dar unas nociones generales y así hacemos algo de cultura :P
La RMS se utiliza normalmente para calcular la intensidad media de una señal (que es el factor que determina la potencia media) Es muy fácil de calcular. Por ejemplo, si tenemos una señal/muestra discreta (como un WAV, por ejemplo):
1. Sumamos los cuadrados de todas las muestras
2. Dividimos el resultado por el número de muestras
3. Hacemos la raiz cuadrada y...
hop! ya tenemos la intensidad RMS de esa señal :)
Para una señal analógica, lo mismo, pero integrando en vez de sumando. Observemos también que si tenemos una señal larga, como por ejemplo una canción, no tiene mucha utilidad calcular la intensidad RMS de toda la señal, sino la potencia que va teniendo a intervalos. Una canción puede tener una intensidad media de -6dB RMS. Esto no nos dice si la canción suena fuerte o floja, igual la canción suena casi todo el rato a -12dB RMS y en un pequeño cacho del final suena a 0dB RMS y por eso tenemos esa media.
Es más lógico obterner, por ejemplo, una gráfica de la potencia de la señal en cada cacho. Si os fijais, al hacer un analisis de frecuencia tipo FFT con un editor de audio, normalmente nos mostrará una gráfica en 3D (frecuencia, intensidad y tiempo) que obtiene haciendo la FFT a intervalos regulares (por ejemplo de 1 segundo) Lo común en los editores de audio es tener un par de medidores que nos proporcionen la intensidad PMPO y la RMS a medida que reproducimos el sonido que trabajamos (VU-meters)
Para terminar, observad que si la señal no está centrada, la medida RMS es engañosa. Por ejemplo, una señal de 16 bits en la que todas las muestras están a un mismo valor (por ejemplo a +3dB), calculamos la potencia RMS y nos dará 3dB. Pero en realidad se trata de una señal muda. Las muestras podrían salir descentradas por algun desplazamiento en el nivel de tensión (DC Offset) En cambio, sigue siendo cierto que esos 3dB son proporcionales a la potencia que consume el altavoz al mantener la membrana a ese nivel. Siempre es recomendable trabajar con señales centradas y casi todos los editores de audio tienen una opción para centrar la señal (Eliminate DC Offset)
Bueno, creo que esto me va a solucionar un problema que tenía hace tiempo. Me pidieron en la UAB que si podía dar alguna clase sobre señales en plan algo práctico pa romper la monotonía de la asignatura y después de lo que escrito, creo que este tema da de sí y es lo suficientemente práctico.
Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)
sync
CitarNo creo que haya mucho que explicar, pero ya que habeis preguntado, vamos a dar unas nociones generales y así hacemos algo de cultura :P
La RMS se utiliza normalmente para calcular la ...
zzZZzZ xDDDDDDDD
Citar
Es más lógico obterner, por ejemplo, una gráfica de la potencia de la señal en cada cacho. Si os fijais, al hacer un analisis de frecuencia tipo FFT con un editor de audio, normalmente nos mostrará una gráfica en 3D (frecuencia, intensidad y tiempo) que obtiene haciendo la FFT a intervalos regulares (por ejemplo de 1 segundo) Lo común en los editores de audio es tener un par de medidores que nos proporcionen la intensidad PMPO y la RMS a medida que reproducimos el sonido que trabajamos (VU-meters)
Tengo que mirar si el Skale me proporciona esa información en alguna parte. ¿El winamp (el 2, la tercera versión me hace llorar cada vez que tengo que usarlo) o el kjofol no traen algún plugin que hace eso?
Citar
Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)
Te deseo suerte, aún no está programado ;)
Un post muy interesante, sí señor (ole)
Cita de: "Mars Attacks"Citar
Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)
Te deseo suerte, aún no está programado ;)
owned :ph34r:
hey mars animo con el juego :) aver cuand lo catamos sobre las guitatrras as probado el slayer es un vtsi puse el link donde la musica
ps: gran master of sound (alias synchrnzr) gracias por los datos lo del dc offset e a quitado un peso de encima desde el sounforge 5 sin saber que leches era eso 8)
un saludito
Hey, eqf, vi tu post y fui a esa web, pero todo lo que encontré era de pago :blink: No vi por ninguna parte el VSTi (también iba con algo de prisa y no presté mucha atención). Buscaré el post y volveré a intentarlo :)
Gracias por los ánimos, pero mejor dádselos a AgeR XD
EStá muy bien el MOD. El cacho de 0:46 a 1:04 se me hace un poco raro, pero supongo que hay que tener en cuenta que es un MOD y no se puede pedir mucho más :)
sync
La verdad es que le ha salido redondo el temilla al señor Mars (ole) .
A ver si me pongo a su altura con la programación. Esta semana o la que viene como muy tarde intentaré poner unas screenshots del juego. Los gráficos también son del señor Mars, así que si no os gustan, yo me limito a cargarlos, no tengo nada que ver XDDDDDDDDDDD
Cuanta expectación, me dáis miedo :rolleyes: .
Cita de: "Mars Attacks"
Citar
Bueno, aparco ya el off-topic y voy a bajarme el Cvrîos ;)
Te deseo suerte, aún no está programado ;)
Los grupos warez de hoy en día hacen milagros! cada día sacan releases con mas antelacion a la oficial xDDD
Bueno, he intentado probar la demo del slayer (sólo para ver cómo sonaría), y el Skale lo carga, pero no lo reproduce. Así que two rocks y a buscar otra cosa :)
Hmmm... detecto algún fallo en el algoritmo de IA que puse anteriormente (lástima no poder editarlo). En los fors que se encargan de buscar la esquina más próxima hay algunos vx y vy en la función tablero(x,y) en los que debería estar el valor i del bucle.
Citar
/*y ahora vemos si nos hemos movido o no*/
if(vx==virus.x && vy=virus.y) { //si no lo hemos hecho
if(vy>flecha.y) { //vemos si estamos encima de la flecha
sigueobjetivo=1; //que es el estado 1
objetivo.y=vy-1;
for(i=vx;(i>=0 && !tablero(i,vy-1));i--);
if(i>=0) {objetivo.x=i;} else {objetivo.x=-10000;};
for(i=vx;(i if(i!=MAXCOLS) {if((i-vx)<(vx-objetivo.x)){objetivo.x=i;};};
};
if(vx>flecha.x) { //vemos si estamos a la derecha de la flecha
sigueobjetivo=2; //que es el estado 2
objetivo.x=vx-1;
for(i=vy;(i>=0 && !tablero(vx-1,i));i--);
if(i>=0) {objetivo.y=i;} else {objetivo.y=-10000;};
for(i=vy;(i if(i!=MAXFILS) {if((i-vy)<(vy-objetivo.y)){objetivo.y=i;};};
};
if(vy sigueobjetivo=3; //que es el estado 3
objetivo.y=vy+1;
for(i=vx;(i>=0 && !tablero(i,vy+1));i--);
if(i>=0) {objetivo.x=i;} else {objetivo.x=-10000;};
for(i=vx;(i if(i!=MAXCOLS) {if((i-vx)<(vx-objetivo.x)){objetivo.x=i;};};
};
if(vx sigueobjetivo=4; //que es el estado 4
objetivo.x=vx+1;
for(i=vy;(i>=0 && !tablero(vx+1,i));i--);
if(i>=0) {objetivo.y=i;} else {objetivo.y=-10000;};
for(i=vy;(i if(i!=MAXFILS) {if((i-vy)<(vy-objetivo.y)){objetivo.y=i;};};
};
} //y hasta aquí llega el tinglao de buscar el nuevo objetivo.
En fin, no creo que nadie lo fuera a probar, pero por si acaso :rolleyes:
De todas formas, cuando le eche el segundo vistazo intentaré optimizarlo y lo pondré por aquí.
Como apunte, decir que en las estructuras tipo
if(A && B && C ....)
if(A)
...
else if(B)
...
else C
Es bueno ordenar las comprobaciones por orden de más baja probabilidad. Asi, si el suceso A tiene menos probabilidad que el suceso B, utilizar este orden nos ahorrará unas cuantas comprobaciones, ya que si !A, no se comprobarán ya ni B ni C...
Esto al menos suele ser efectivo para la mayoria de compiladores. La misma recomendación para las estructuras "switch(x)"