Buona sera LuigiB,
innanzitutto mi sembra il minimo ringraziare te ed il resto del gruppo, per il lavoro che state svolgendo.
Premetto che sono ancora le prime armi, pertanto, se posso, vorrei chiederti un consiglio in merito alla semplificazione dei cicli for.
Nello specifico, apportando delle modifiche ad uno degli script postati dal buon Mike58, ho riscontrato un eccessivo rallentamento nell'elaborazione, dovuto sicuramente ad un eccessivo uso di cicli for (che suppongo tu odi tanto). Come si può velocizzare il tutto?
Grazie e scusa ancora..
Sub Main
Dim k , r, r2 ,es ,p , a ,b , nu(3) , pos(1) , ru(2) ,clp, c ,kk,kn,kd , ind , nClp ,pos2(1), pos3(1) ,p2, p3, RI(),d, e, n As Integer
Dim ini , fin , indx As Integer
Dim Uscite () , sUscite() , esito As String
Dim posta(1) As Single
posta(1) = 1
Dim TotNum() As Integer
'-------------------------------------------------------------------------
Dim aT() As String = {" Casi ", " Algoritmo 1 ", " Algoritmo 2 ", " Algoritmo 3 "," Casi Esaminati "," Casi Validi ", " Numeri per calcolo " , " Numero Calcolato " ," Esito Ultima Oper " , " Colpo " , " Data Sortita "}
InitTabella(aT,ColoreVerde,,100,ColoreBianco )
'-------------------------------------------------------------------------
ini = EstrazioniArchivio - 100
fin = EstrazioniArchivio
r = ScegliRuota()
r2 = ScegliRuota()
d = InputBox("Quanti colpi giocate","COLPI DA GIOCARE ",3)
Scrivi ("Estrazioni Esaminate ......... : " & fin-ini + 1)
Scrivi ("Numero colpi giocati.......... : " & d )
Scrivi (Space(28) & Chr(174) & " Script In VbNet per SpazioLight 1.0.22 By Mike58 " & Chr(169),1,,,ColoreBlu ,120 )
Scrivi ("Cerca Algoritmi sommativi da giocare sulle Ruote di " & NomeRuota(r) & " e " & NomeRuota(r2))
For n = 1 To 90
For rrrr As Object = 1 To 11
For p3 = 1 To 5
For rrr As Object = 1 To 11
For p = 1 To 5
For rr As Object = 1 To 11
For p2 = 1 To 5
For es = ini To fin
Call NumeriRipetutiRilevatiE(es,RI)
If RI(2) = 15 Or RI(3) = 15 Then
Call Messaggio ("Cerca Algoritmi sommativi su ruota scelta & **** Script by Mike58 ***** " )
Call AvanzamentoElab (ini,fin,es)
ind = es + 1
k = k + 1
a = Estratto(es,rr,p)
b = Estratto(es,rrr,p2)
e = Estratto(es,rrrr,p3)
nu(1) = FuoriX((a+b+e+n),90)
nu(2) = FuoriX(Figura(a)+Figura(b)+e+n,90)
nu(3) = FuoriX(DecinaNaturale(e)+a*b+n,90)
ru(1) = r
ru(2) = r2
pos(1) = p
pos2(1) = p2
pos3(1) = p3
If VerificaEsito (nu,ru,2,es+1,,d,clp,Uscite) Then
'kk = kk + 1
For c = 0 To Uscite.GetUpperBound(0)
If Uscite (c) <> "" Then
kk = kk + 1
End If
Next
End If
End If
Next
kd = k - (kk)
If kd <= 9 Then
kn = kn + 1
ReDim Preserve TotNum(kn)
TotNum(kn) = nu(1)
'-------------------------------------------------------------------------------------
esito = ""
If VerificaEsito (nu,ru,2,ind,,d,nClp,sUscite) Then
For cc As Integer = 0 To sUscite.GetUpperBound(0)
If sUscite(cc) <> "" Then esito = sUscite (cc)
Next
End If
'-------------------------------------------------------------------------------------
Dim aV() As String
ReDim aV(aT.GetUpperBound(0))
aV(0) = kn
aV(1) = pos(1) & "_" & NomeRuota(rr) & " + " & pos2 (1) & "_" & NomeRuota(rrr) & " + " & pos3 (1) & "_" & NomeRuota(rrrr) & " + " & n
aV(2) = "figura " & pos(1) & "_" & NomeRuota(rr) & " + figura " & pos2 (1) & "_" & NomeRuota(rrr) & " + " & pos3 (1) & "_" & NomeRuota(rrrr) & " + " & n
aV(3) = "decina " & pos3(1) & "_" & NomeRuota(rrrr) & " + " & pos(1) & "_" & NomeRuota(rr) & " X " & pos2 (1) & "_" & NomeRuota(rrr) & " + " & n
aV(4) = k
aV(5) = kk
aV(6) = a & " - " & b & " - " & e
aV(7) = nu(1) & " - " & nu(2) & " - " & nu(3)
aV(8) = esito
aV(9) = nClp
aV(10) = DataEstrazione ((ind-1) + nClp )
If esito = "" Then
Call AddRigaTabella(aV,ColoreGiallo ,,100,ColoreRosso )
Else
Call AddRigaTabella(aV,ColoreMagenta ,,100,ColoreBianco )
End If
End If
k = 0 : kk = 0
Next
Next
Next
Next
Call CreaTabella()
'Scrivi ("Numeri Ricavati...... : " & StringaNumeri(TotNum ),1,,,ColoreBlu,150)
For ess As Integer = ind To fin
ImpostaGiocata (1,TotNum ,ru ,posta ,,1)
Gioca (ess,1)
Next
Next
Next
Next
Scrivi ("Tempo Di Elaborazione " & FormattaSecondi(SecondiTrascorsi))
ScriviResoconto(True)
Beep()
End Sub