![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#5
|
||||
|
||||
|
Hacer una matriz de tantas filas y columnas como equipos más una fila
A partir de ahí, tendrás que iterar siempre de izquierda a derecha y de arriba abajo o en columnas, pero siempre en el mismo orden. De no hacerlo así, te saldrán partidos repetidos. Además, tienes que llevar el control de las columnas y filas que se eliminan en cada iteración. Ejemplo Son seis los equipos. Creamos una matriz de filas = nº de equipos más dos y columnas nº de equipos más dos LA diagonal central se anula, ya que no pueden jugar contra sí mismos. Código:
Anulacion x 1 2 3 4 5 6 1 x 2 x 3 x 4 x 5 x 6 x primera jornada: Iteración 1 Primera columna: El equipo 1 se enfrentará consigo mismo. Como la casilla está ocupada, se sigue con la siguiente columna. Siguiente columna: Como está vacía, se pone un “1”, primera jornada, partido 1 vs 2. En la primera fila y la primera columna, se marcan las filas y columnas 1 y 2 ya que están ya asignados esos equipos. Se cuenta 1 en el contador de partidos, que máximo será 3 porque son seis equipos. Iteración 2: Se salta la fila 2 ya que este equipo está ya ocupado en esta jornada. Iteración 3: se saltan las columnas 1 y 2 porque los equipos están ocupados. La siguiente columna se salta porque no puede jugar contra sí mismo ¿ quién ganaría ¿ Siguiente columna: como está libre, se pone un “1”, segundo partido de la jornada 1. Se marcan las filas y columnas de los equipos 3 y 4, ya que ya están asignados para esta jornada. Se cuenta uno al contador de partidos. Iteración 4: se saltan las filas 1,2,3 y 4 por estar ya asignados los equipos. Con el equipo 5 se saltan las columnas de los equipos 1,2 ,3 y cuatro. También la del 5 por ser el mismo equipo. Ponemos en la casilla de los equipos 5 y 6 que está libre otro “1” de la primera jornada. Se suma uno al contador, como ya hemos llegado a tres, empezamos con la segunda jornada. El resultado es esta tabla Código:
Anulacion si si si Si x 1 2 3 4 5 6 Si 1 x 1 Si 2 x Si 3 x 1 Si 4 X 5 x 1 6 X Se desmarcan todos los equipos como ocupados. El resultado es éste Código:
Anulacion x 1 2 3 4 5 6 1 X 1 2 x 3 x 1 4 X 5 x 1 6 X Empezamos con la fila del equipo 1. Saltamos las casillas ocupadas. Como la columna del equipo 3 está libre, ponemos un “2” de segunda jornada. Ponemos las filas y columnas de los equipos 1 y 3 ocupadas. Aumentamos el contador de partidos. Pasamos a la fila 2, que no está ocupada. Saltamos las columnas de los equipos 1, 2 y 3 por lo ya descrito anteriormente. Plantamos un “2” en la casilla de los equipos 2 y 4. Marcamos las filas y columnas de los equipos 2 y 4 como ocupadas Aumentamos el contador de partidos, ya nos queda menos. Pasamos a la fila 5 que es la siguiente libre. Recorremos las filas ocupadas hasta la columna 6. Como ya está rellena por el valor “1”, pasamos de largo. Como no hay más columnas, pasamos a la siguiente fila. Pasamos a la fila 6, y en la columna del equipo 5 ponemos el valor “2”. Como ya tenemos los tres partidos por jornada, pasaremos a la siguiente jornada. Se desmarcan todas las filas y columnas como ocupadas. Aplicamos el algoritmo hasta el final (nº de equipos - 1), y el resultado deberá salir algo parecido a esto Código:
Anulacion x 1 2 3 4 5 6 1 X 1 2 3 4 5 2 x 5 2 3 4 3 x 1 4 4 X 5 5 X 1 6 3 2 X Espero que te sirva de ayuda. Lo único que necesitas es saber cómo se redimensiona una matriz para asignar las filas y las columnas. Otra cosa que puedes hacer es hacer un stringgrid para ver en pantalla el resultado. Y por supuesto, gastar lápiz y papel hasta que ajustes perfectamente el algoritmo. Ya nos contarás. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Algún algoritmo para calcular el último día de un mes | David | OOP | 3 | 06-03-2008 17:13:01 |
| problemas para ejecutar juegos pda | lialias | Varios | 7 | 20-02-2008 18:18:51 |
| Algoritmo para comparacion de cadenas | danilo_candales | Varios | 8 | 17-11-2007 17:23:14 |
| Librería para hacer juegos con Pascal | Ñuño Martínez | Varios | 21 | 28-09-2007 13:13:57 |
| Algoritmo para calcular el BPM | turminator | Varios | 0 | 29-05-2007 00:19:49 |
|