Foros del Web » Programando para Internet » Javascript »

Tablas Tournament Bracket

Estas en el tema de Tablas Tournament Bracket en el foro de Javascript en Foros del Web. Hola, estaba con un tournament bracket hecho con una tabla y he hecho una función para que cuando haga click en el elemento ganador, éste ...
  #1 (permalink)  
Antiguo 13/08/2012, 04:20
 
Fecha de Ingreso: enero-2012
Ubicación: En españa dije...
Mensajes: 28
Antigüedad: 12 años, 3 meses
Puntos: 1
Tablas Tournament Bracket

Hola, estaba con un tournament bracket hecho con una tabla y he hecho una función para que cuando haga click en el elemento ganador, éste pase al siguiente match.

Esta es una imagen de lo que me refiero, aunque no se ve el bracket entero porque sería muy grande.



El caso es que como ven, yo hago click en uno de los jugadores y este pasa a la ronda siguiente.

El problema que tengo es que, imaginen que un jugador todavia no tiene rival, porque sus dos posibles contrincantes aun no han terminado, por lo que en la tabla aun no tendrá contrincante. Pero si yo le doy click, sigue pasando a la siguiente ronda, como puedo solucionar esto?

Esta es mi función.

Código:
function win(winner)
		{
		   var team = winner.value;
		   var levels = winner.name.substring(3).split("_");
		   var curlevel = parseInt(levels[0]);
		   var curgame  = parseInt(levels[1]);

		   var nextlevel = curlevel + 1;
		   var nextgame  = Math.floor( (curgame+1) / 2 );
		   
		   
		   var winnerButton = winner.form.elements["WIN"+nextlevel+"_"+nextgame];
		   if ( winnerButton == null ) return;
		   

		   ++nextlevel;
		   nextgame  = Math.floor( (nextgame+1) / 2 );
		   var nextButton = winner.form.elements["WIN"+nextlevel+"_"+nextgame];
		   var forward = ( nextButton != null && nextButton.value != "" && nextButton.value == winnerButton.value );
		   
		   winnerButton.value = team;
		   if ( forward ) winnerButton.click( );

		}
  #2 (permalink)  
Antiguo 13/08/2012, 20:09
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: Tablas Tournament Bracket

Vas a tener que poner alguna referencia en el escript que pasa a la siguiente ronda, como para verlo con un condicional.
No sería la única forma, pero si por ejemplo del ganador entre las celdas con id=alfa_0 y alfa_1 va a jugar contra el ganador de bravo_0 / bravo_1 y su nombres terminan dentro de charly_0 y charly_1 respectivamente; lo que haces al picar en charly_0 (que ya tendría su ganador) es confirmar que las celdas con su misma parte alfabetica en su id (charly más el guión bajo y un '0' una y un '1' la otra no estén vacías.
Por supuesto que la misma celda a la que le haces click no va a estar vacía, la verificación vale para la otra, pero es la manera de usar la misma función para todas. Así, si las dos de la pareja están "llenas", es que ya se terminaron los juegos anteriores y están los dos ganadores, entonces, sí, el escript lo pasa al siguiente como el ganador de charly_?.

Repito, no es la única manera, pero es la primera que te postean, espera algunas más y elige o crea una propia.

Etiquetas: bracket, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.