Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Totocalcio VB.net

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    99

    Totocalcio VB.net

    Ciao a tutti ho bisogno di un vostra mano per favore..
    allora devo riuscire a generare un Totocalcio in dataTable

    per capirci

    Ho 8 Squadre

    A - B - C- D - E - F - G - H
    ok
    Allora ho creato un datatable con

    In Casa | Fuori Casa e quest sono le Col

    Il difficile è creare un Ciclo che mi fa tutte le combinazioni Andata e Ritorno
    Tipo:

    A-B
    C-D
    E-F
    G-H

    A-D
    B-C
    E-G
    F-H
    ecc..

    io ci sto provando ma mi incarto uffi..

    Ovviamente il ciclo deve essere dinamico però ci possono magari essere 4 squadre o 8 ,16,20, ecc..

    Vi prego datemi una mano...
    GRazie
    Attendo con ansia la vostra mano

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    questa è una prova veloce:
    pagina aspx
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Calendario squadre calcio.aspx.vb" Inherits="prove_Calendario_squadre_calcio" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:Button ID="Button1" runat="server" Text="Calendario" />
                
    
                
    
                <table border="1" cellpadding="10" cellspacing="0">
                    <tr>
                        <td><asp:Literal ID="Literal1" runat="server"></asp:Literal></td>
                        <td><asp:Literal ID="Literal2" runat="server"></asp:Literal></td>
                    </tr>
                </table>
            </div>
        </form>
    </body>
    </html>
    codice
    codice:
    Option Strict On
    
    Partial Class prove_Calendario_squadre_calcio
        Inherits System.Web.UI.Page
    
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            'vettore squadre: devono essere in numero pari
            Dim Squadre As String() = {"A", "B", "C", "D", "E", "F"} ', "G", "H", "I", "J"}
            Dim n As Integer = Squadre.Length
            If ((n Mod 2) <> 0) Then
                PrintLn("Il numero delle squadre deve essere pari")
                Exit Sub
            End If
    
            'numero di giornate di gioco nel girone di andata
            Dim m As Integer = n - 1
    
            'numero di incontri simultanei in ogni giornata
            Dim ic As Integer = n \ 2
    
            Dim h As Integer = n \ 2 - 1
    
            'Lista delle giornate
            Dim Giornate As New Generic.List(Of Generic.List(Of squadreType))
    
            For g As Integer = 0 To m - 1
                'lista degli incontri per giornata
                Dim IncontriGiornata As New Generic.List(Of squadreType)
    
                IncontriGiornata.Add(New squadreType(g, m))
    
                For k As Integer = g + 1 To g + h
                    Dim a As Integer = k - m * CInt(Int(k / m))
                    Dim b As Integer = g + g - k
                    b = b - m * CInt(Int(b / m))
                    IncontriGiornata.Add(New squadreType(a, b))
                Next
                Giornate.Add(IncontriGiornata)
            Next
    
            Dim ng As Integer = 0
            Dim arr(Giornate.Count - 1) As Integer
            For i As Integer = 0 To arr.GetUpperBound(0)
                arr(i) = i
            Next
    
            Dim sb As New StringBuilder()
            Dim sbr As New StringBuilder()
    
            sb.Append("
    
    Andata</p>")
            sbr.Append("
    
    Ritorno</p>")
            For Each i As Integer In New RandomIterator(arr)
                ng += 1
                sb.Append(String.Format("
    
    Giornata {0}</p>", ng))
                sbr.Append(String.Format("
    
    Giornata {0}</p>", ng + m))
                Dim gi As Generic.List(Of squadreType) = Giornate(i)
                sb.Append("<ul>")
                For Each st As squadreType In gi
                    sb.Append(String.Format("[*]{0} - {1}", Squadre(st.Casa), Squadre(st.FuoriCasa)))
                    sbr.Append(String.Format("[*]{1} - {0}", Squadre(st.Casa), Squadre(st.FuoriCasa)))
                Next
                sb.Append("[/list]")
                sbr.Append("[/list]")
            Next
            Me.Literal1.Text = sb.ToString()
            Me.Literal2.Text = sbr.ToString()
        End Sub
    End Class
    
    
    Public Structure squadreType
        Public Casa As Integer
        Public FuoriCasa As Integer
    
        Public Sub New(ByVal casa As Integer, ByVal fuoriCasa As Integer)
            Me.Casa = casa
            Me.FuoriCasa = fuoriCasa
        End Sub
    End Structure
    
    Public Class RandomIterator
        Implements IEnumerable
    
        Private al As New ArrayList()
    
        Public Sub New(ByVal ienum As IEnumerable)
            For Each o As Object In ienum
                al.Add(o)
            Next
            ' mescolo gli elementi
            Dim rand As New Random(CInt(DateTime.Now.Ticks And &H7FFFFFF))
            For i As Integer = al.Count - 1 To 1 Step -1
                ' scambio elementi
                Dim j As Integer = rand.Next(0, i)
                Dim tmp As Object = al(i)
                al(i) = al(j)
                al(j) = tmp
            Next
        End Sub
    
    
        Public Function GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
            Return al.GetEnumerator()
        End Function
    
    End Class
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.