Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: diego_lp en 7 Abril 2011, 20:50 PM

Título: algoritmo para combinar parejas
Publicado por: diego_lp en 7 Abril 2011, 20:50 PM
Hola a todos,
estoy desde hacer ya como 3 horas tratando de escribir un código que me combine un par de números y no logro hacerlo de forma correcta, ya eh probado con arrays, matrices, no logro hacer que funcione correctamente.
El problema que quiero resolver es el siguiente:
Tengo 5 equipos, y quiero armar un fixture de todos contra todos, al ser 5 equipos son 2 partidos por fase y uno queda libre, y cada equipo no puede jugar mas de un partido por fase.
Espero que alguien me pueda dar una mano.
Muchas gracias.
Saludos.
Título: Re: algoritmo para combinar parejas
Publicado por: Edu en 8 Abril 2011, 00:46 AM
Bueno yo no entendi bien q quieres hacer, porq primero dices "todos contra todos" y despues decis q son 2 partidos por fase y uno queda libre, y entonces seria como una copa ahi pero en el todos contra todos no.
Título: Re: algoritmo para combinar parejas
Publicado por: seba123neo en 8 Abril 2011, 02:26 AM
Hola, fijate si este ejemplo te ayuda en algo...

Código (vbnet) [Seleccionar]
Imports System.Text

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim vCantidadEquipos As Integer = 5

        Dim vTotalFechas As Integer = vCantidadEquipos - 1
        Dim vPartidosPorFecha As Integer = vCantidadEquipos \ 2

        Dim vFechas As String()() = New String(vTotalFechas - 1)() {}

        For vFecha As Integer = 0 To vTotalFechas - 1
            vFechas(vFecha) = New String(vPartidosPorFecha - 1) {}
        Next

        For vFecha As Integer = 0 To vTotalFechas - 1
            For vPartido As Integer = 0 To vPartidosPorFecha - 1
                Dim vLocal As Integer = (vFecha + vPartido) Mod (vCantidadEquipos - 1)
                Dim vVisitante As Integer = (vCantidadEquipos - 1 - vPartido + vFecha) Mod (vCantidadEquipos - 1)

                If vPartido = 0 Then
                    vVisitante = vCantidadEquipos - 1
                End If

                vFechas(vFecha)(vPartido) = (vLocal + 1) & " v " & (vVisitante + 1)
            Next
        Next

        Dim vLista As New StringBuilder()

        For i As Integer = 0 To vFechas.Length - 1

            vLista.Length = 0
            Debug.WriteLine("Fecha: " & (i + 1))
            Array.Sort(vFechas(i))

            For outer As Integer = 0 To vPartidosPorFecha - 1
                vLista.Append(vFechas(i)(outer) & ", ")
            Next

            vLista.Length = vLista.Length - 2
            Debug.WriteLine(vLista.ToString())
            Debug.WriteLine("")
        Next
    End Sub
End Class


saludos.