Novità

X LuigiB Negativi dopo positivi

Lanfranco60

Super Member >GOLD<
Ciao Luigi, avrei una richiesta su come si può fare una cosa con gli script.
Lo script in fondo è solo un banale esempio e serve appunto solo per esempio

quello che vorrei fare, è avere nell'output un resoconto con un contatore che mi conta
quanti esiti negativi passano prima di avere di nuovo un esito positivo,
visualizzandomeli tutti in maniera sequenziale
e a quanto ammonta il valore massimo, il valore medio e quello minimo
di questa specie di ritardo se cosi lo vogliamo chiamare.

Se potresti modificare tu lo script in basso, mi faresti veramente contento

Grazie



ti faccio degli esempi grafici in modo da spiegarmi


Ti metto qui la fine dell'output dello script sotto fatto girare cosi comè :


Codice:
****************************************************************************************************
 casi trovati : 51

+----------------------------------------+
| Prima Giocata      : 8690              |
| Ultima Giocata     : 8740              |
| Range              : 51                |
| Casi giocab perc.  : 100%              |
+----------------------------------------+

ecc..............



Qui invece ti metto lo stesso output come lo vorrei


Codice:
****************************************************************************************************
 casi trovati : 51



Negativi dopo positivo :

1,1,1,1,1,1,2. ( sono messi in maniera sequenziale dall'inizio ricerca fino alla fine, se serve deve andare a capo )

Ritardo massimo = 2

Ritardo medio = (in questo caso non c'è perchè l'estrazioni sono poche)

Ritardo minimo = 1

****************************************************************************************************

+----------------------------------------+
| Prima Giocata      : 8690              |
| Ultima Giocata     : 8740              |
| Range              : 51                |
| Casi giocab perc.  : 100%              |
+----------------------------------------+

ecc..............



Lo script d'esempio



Codice:
Sub Main()
    Dim es,Ini,Fin,r1,r2,ee,clp
    Dim ruote(2),posta1(1)
    Dim n1(2)
    posta1(1) = 1
    r1 = CInt(InputBox(" Scegli la 1°ruota ",,"1"))
    r2 = CInt(InputBox(" Scegli la 2°ruota ",,"2"))
    ee = CInt(InputBox(" Quante estrazioni vuoi controllare ? ",,"50"))
    clp = CInt(InputBox(" Per quanti colpi vuoi giocare ? ",,"9"))
    Ini = EstrazioneFin - ee
    Fin = EstrazioneFin
    co = 0
    For es = Ini To Fin
        Messaggio "elab. estr. [" &(es) & "] di " & DataEstrazione(es,1)
        Call AvanzamentoElab(Ini,Fin,es)
        ruote(1) = r1
        ruote(2) = r2
        a = Estratto(es,r1,1)
        b = Estratto(es,r1,5)
        c = Estratto(es,r2,1)
        d = Estratto(es,r2,5)
        n1(1) = Fuori90(a + b + c + d)
        n1(2) = Vert(n1(1))
        co = co + 1
        Scrivi String(100,"°") & " Caso n°" & co,1
        Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r1) & " - " & StringaEstratti(es,r1),1
        Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r2) & " - " & StringaEstratti(es,r2),1
        Scrivi String(65,"°"),1
        ImpostaGiocata 1,n1,ruote,posta1,clp,1
        Gioca es,1,,1
        If ScriptInterrotto Then Exit For
    Next
    Scrivi
    Scrivi String(100,"*")
    ColoreTesto 2
    Scrivi" casi trovati : " & co,1
    ColoreTesto 0
    Scrivi String(100," * ")
    ScriviResoconto
End Sub
 
no no mi dispiace Lanfranco ma non se ne parla.... non prendertela sforzati di inventare un algoritmo adatto ch e tanto alla fine le istruzioni sono sempre quelle devi solo vedere come congegnarle.
ciao
 
Luigi, lo sai che mi sforzo, dammi almeno qualche input perchè stavolta non so proprio da dove iniziare......

Se qualcuno volesse intervenire è ben accetto, faccio appello ai moschettieri citati da Luigi, dove siete ?

Ciao
 
Ciao Lanfranco, prova una soluzione del genere con le nuove istruzioni getSituazioneGiocate,poi esegui i calcoli come meglio credi.
E' solo una bozza e visto che ti stai addentrando nella materia vbscript e una buona palestra per proseguire.

Ciao e buona giornata.

Codice:
Sub Main()
    Dim es,Ini,Fin,r1,r2,ee,clp
    Dim ruote(2),posta1(1)
    Dim n1(2)
    posta1(1) = 1
    r1 = CInt(InputBox(" Scegli la 1°ruota ",,"1"))
    r2 = CInt(InputBox(" Scegli la 2°ruota ",,"2"))
    ee = CInt(InputBox(" Quante estrazioni vuoi controllare ? ",,"50"))
    clp = CInt(InputBox(" Per quanti colpi vuoi giocare ? ",,"9"))
    Ini = EstrazioneFin - ee
    Fin = EstrazioneFin
    co = 0
    For es = Ini To Fin
        Messaggio "elab. estr. [" &(es) & "] di " & DataEstrazione(es,1)
        Call AvanzamentoElab(Ini,Fin,es)
        ruote(1) = r1
        ruote(2) = r2
        a = Estratto(es,r1,1)
        b = Estratto(es,r1,5)
        c = Estratto(es,r2,1)
        d = Estratto(es,r2,5)
        n1(1) = Fuori90(a + b + c + d)
        n1(2) = Vert(n1(1))
        co = co + 1
        Scrivi String(100,"°") & " Caso n°" & co,1
        Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r1) & " - " & StringaEstratti(es,r1),1
        Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r2) & " - " & StringaEstratti(es,r2),1
        Scrivi String(65,"°"),1
        ImpostaGiocata 1,n1,ruote,posta1,clp,1
        Gioca es,1,,1
        If ScriptInterrotto Then Exit For
    Next
    Scrivi
    Scrivi String(100,"*")
    ColoreTesto 2
    Scrivi" casi trovati : " & co,1
    ColoreTesto 0
    Scrivi String(100," * ")
    ScriviResoconto

	elencogiocate ' richiama la function
	
End Sub
Function elencogiocate
	ReDim aT(9)
	aT(1) = "NumGiocata"
	aT(2) = "Colpo"
	aT(3) = "Spesa"
	aT(4) = "SpesaParz"
	aT(5) = "Vincita"
	aT(6) = "VincitaParz"
	aT(7) = " Utile totale "
	aT(8) = " Utile Parz "
	aT(9) = " sequenza Pos/Neg "
	Call InitTabella(aT,1,,3,5)
	For k = 1 To GetQuantitaGiocateEffettuate
		If GetSituazioneGiocate(k,RetColpo,RetSpesa,RetSpesaParz,RetVincita,RetVincitaParz) Then
			aT(1) = k
			aT(2) = RetColpo
			aT(3) = RetSpesa
			aT(4) = RetSpesaParz
			aT(5) = RetVincita
			aT(6) = RetVincitaParz
			aT(7) = Round(aT(5) - aT(3),2)
			aT(8) = Round(aT(6) - aT(4),2)
			If retcolpo > 0 Then aT(9) = 0
			If retcolpo < 0 Then aT (9) = 1
			If aT(9) = 1 Then neg = neg +1
			If aT(9) = 0 Then pos = pos +1
			Call AddRigaTabella(aT,,,3)
			
			
			
			If retcolpo > 0 Then Call SetColoreCella(2,3,0)
			If aT(7) > 0 Then Call SetColoreCella(7,4,2)
			If aT(7) < 0 Then Call SetColoreCella(7,2,4)
			If aT(8) > 0 Then Call SetColoreCella(8,4,2)
			If aT(8) < 0 Then Call SetColoreCella(8,2,4)
			If aT(9) = 1 Then Call SetColoreCella(9,7,1)
		End If
	Next
	ReDim Tot(9)
	Tot(1) = " casi Positivi"
	Tot(2) = pos
	Tot(8) = " casi Negativi " 	
	Tot(9) = neg
	Call AddRigaTabella(Tot,3,,3)
	Call CreaTabella
	End Function
 
Ciao Mike58, innanzitutto grazie per l'aiuto

Come scripter mi trovo nella fase (ne carne - ne pesce)
alcune cose le capisco subito, altre invece no.

ho visto la tabella finale, io non ci sarei ancora riuscito a farla da solo
ma ho capito a grandi linee i passaggi e sono riuscito a modificarla per farti capire
che cosa cerco veramente.

Ho modificato leggermente lo script, a tal proposito


Codice:
Sub Main()
    Dim es,Ini,Fin,r1,r2,ee,clp
    Dim ruote(2),posta1(1)
    Dim n1(2)
    posta1(1) = 1
    r1 = CInt(InputBox(" Scegli la 1°ruota ",,"1"))
    r2 = CInt(InputBox(" Scegli la 2°ruota ",,"2"))
    ee = CInt(InputBox(" Quante estrazioni vuoi controllare ? ",,"50"))
    clp = CInt(InputBox(" Per quanti colpi vuoi giocare ? ",,"1"))
    Ini = EstrazioneFin - ee
    Fin = EstrazioneFin
    co = 0
    For es = Ini To Fin
        Messaggio "elab. estr. [" &(es) & "] di " & DataEstrazione(es,1)
        Call AvanzamentoElab(Ini,Fin,es)
        ruote(1) = r1
        ruote(2) = r2
        a = Estratto(es,r1,1)
        b = Estratto(es,r1,5)
        c = Estratto(es,r2,1)
        d = Estratto(es,r2,5)
        n1(1) = Fuori90(a + b + c + d)
        n1(2) = Vert(n1(1))
        co = co + 1
        Scrivi String(100,"°") & " Caso n°" & co,1
        Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r1) & " - " & StringaEstratti(es,r1),1
        Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r2) & " - " & StringaEstratti(es,r2),1
        Scrivi String(65,"°"),1
        ImpostaGiocata 1,n1,ruote,posta1,clp,1
        Gioca es,1,,1
        If ScriptInterrotto Then Exit For
    Next
    Scrivi
    Scrivi String(100,"*")
    ColoreTesto 2
    Scrivi" casi trovati : " & co,1
    ColoreTesto 0
    Scrivi String(100," * ")
    ScriviResoconto
    elencogiocate ' richiama la function
End Sub
Function elencogiocate
    ReDim aT(3)
    aT(1) = "NumGiocata"
    aT(2) = "Colpo"
    aT(3) = " sequenza Pos/Neg "
    Call InitTabella(aT,1,,3,5)
    For k = 1 To GetQuantitaGiocateEffettuate
        If GetSituazioneGiocate(k,RetColpo,RetSpesa,RetSpesaParz,RetVincita,RetVincitaParz)Then
            aT(1) = k
            aT(2) = RetColpo
            If retcolpo > 0 Then aT(3) = 0
            If retcolpo < 0 Then aT(3) = 1
            If aT(3) = 1 Then neg = neg + 1
            If aT(3) = 0 Then pos = pos + 1
            Call AddRigaTabella(aT,,,3)
            If retcolpo > 0 Then Call SetColoreCella(2,3,0)
            If aT(3) = 1 Then Call SetColoreCella(3,7,1)
        End If
    Next
    Call CreaTabella
End Function


Questo è l'output che ne uscito fuori, a cui io ho aggiunto(graficamente)
le cose che mi interesserebbero di piu



x285yw.jpg




In piu nella tabella ci deve essere la parte piu importante
che è questa :


Ritardo massimo negativi = 15

riepilogo negativi :


ritardo 1 = 2 volte

ritardo 2 = 1 volta

ritardo 3 = 1 volta

ritardo 4 = non presente nel range analizzato

ritardo 5 = 1 volta

ritardo 6 = 1 volta

ritardo 7 = 1 volta

ritardo 8 = non presente nel range analizzato

ritardo 9 = non presente nel range analizzato

ritardo 10 = non presente nel range analizzato

ritardo 11 = non presente nel range analizzato

ritardo 12 = non presente nel range analizzato

ritardo 13 = non presente nel range analizzato

ritardo 14 = non presente nel range analizzato

ritardo 15 = 1 volta

ritardo 16 = non presente nel range analizzato


E COSI VIA ............


Mi puoi dare una mano ? grazie


ciao
 
scusa ma se sei in grado anche grazie a Mike di avere i dati di dettaglio , oltre che nella tabella mettili in un array oppure in una collection , dopo te la scorri per calcolare il ritardo massimo e quant'altro ..o ho capito male ?
 
Ciao Luigi e ciao Mike

Intanto ringrazio Mike per quello che potrà fare

Credimi Luigi, io non mi considero uno scripter, e per arrivare dove sono ora ho fatto i salti mortali.....
 
Ciao Lanfranco, purtroppo devi provare a fare un salto, perchè anch'io + di questo non riesco, mi si è spenta la lampadina e non riesco ad isolare il caso massimo per poi riconteggiarli.

Visto che ho letto Rosanna in linea potrebbe lei con i suoi ragionamenti dinamici intervenire, per ora io mi fermo qua !!!.
Se la lampadina torna a riaccerdersi non mancherò di ri-postare.

Ciao

Codice:
Sub Main()
	Dim es,Ini,Fin,r1,r2,ee,clp
	Dim ruote(2),posta1(1)
	Dim n1(2)
	posta1(1) = 1
	r1 = CInt(InputBox(" Scegli la 1°ruota ",,"1"))
	r2 = CInt(InputBox(" Scegli la 2°ruota ",,"2"))
	ee = CInt(InputBox(" Quante estrazioni vuoi controllare ? ",,"50"))
	clp = CInt(InputBox(" Per quanti colpi vuoi giocare ? ",,"1"))
	Ini = EstrazioneFin - ee
	Fin = EstrazioneFin
	co = 0
	For es = Ini To Fin
		Messaggio "elab. estr. [" &(es) & "] di " & DataEstrazione(es,1)
		Call AvanzamentoElab(Ini,Fin,es)
		ruote(1) = r1
		ruote(2) = r2
		a = Estratto(es,r1,1)
		b = Estratto(es,r1,5)
		c = Estratto(es,r2,1)
		d = Estratto(es,r2,5)
		n1(1) = Fuori90(a + b + c + d)
		n1(2) = Vert(n1(1))
		co = co + 1
		Scrivi String(100,"°") & " Caso n°" & co,1
		Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r1) & " - " & StringaEstratti(es,r1),1
		Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r2) & " - " & StringaEstratti(es,r2),1
		Scrivi String(65,"°"),1
		ImpostaGiocata 1,n1,ruote,posta1,clp,1
		Gioca es,1,,1
		If ScriptInterrotto Then Exit For
	Next
	Scrivi
	Scrivi String(100,"*")
	ColoreTesto 2
	Scrivi" casi trovati : " & co,1
	ColoreTesto 0
	Scrivi String(100," * ")
	ScriviResoconto
	elencogiocate ' richiama la function
End Sub
Function elencogiocate
	ReDim aT(5)
	aT(1) = "NumGiocata"
	aT(2) = "Colpo"
	aT(3) = " sequenza Pos/Neg "
	aT(4) = " sequenza "
	aT(5) = " Massimi neg "
	Call InitTabella(aT,1,,3,5)
	For k = 1 To GetQuantitaGiocateEffettuate
		If GetSituazioneGiocate(k,RetColpo,RetSpesa,RetSpesaParz,RetVincita,RetVincitaParz)Then
			aT(1) = k
			aT(2) = RetColpo
			If retcolpo > 0 Then aT(3) = 0
			If retcolpo < 0 Then aT(3) = 1
			neg = neg + 1
			If aT(3) = 0 Then neg = 0
			
			aT(4) = neg
			'----------------------------------------------------
			If Massimo(aT(4),aT(3)) > 0 Then aT(5) =  aT(4)
			If Massimo(aT(4),aT(3)) = 0 Then aT(5) = "-"
			
			Call AddRigaTabella(aT,,,3)
			If retcolpo > 0 Then Call SetColoreCella(2,3,0)
			If aT(3) = 1 Then Call SetColoreCella(3,7,1)
			If aT(4) > 0 Then Call SetColoreCella(4,2,4)
		End If
		
	Next
	Call CreaTabella
	
End Function
 
Ciao Lanfranco, purtroppo devi provare a fare un salto, perchè anch'io + di questo non riesco, mi si è spenta la lampadina e non riesco ad isolare il caso massimo per poi riconteggiarli.

Visto che ho letto Rosanna in linea potrebbe lei con i suoi ragionamenti dinamici intervenire, per ora io mi fermo qua !!!.

Veramente non ero intervenuta perchè avevo visto che Luigi aveva dato degli input e aveva spronato Lanfranco a fare.. visto che stoffa ce n'è...

Non ho controllato le vostre tabelle... mi sono limitata con due vettori dinamici e qualche variabile a gestire il tutto alla mia maniera semplice, partendo
dallo script di esempio di Lanfranco e sfruttando il contatore dei casi già impostato ed inserendo la funzione Verificaesito. Ho abbassato i colpi a 3 per movimentare
i casi negativi...

Le tabelle esiti e ritardi sono in fondo all'output.

Codice:
Option Explicit
Sub Main()
'0904_22 Rosanna per Lanfranco
'http://forum.lottoced.com/f12/x-luigib-negativi-dopo-positivi-107044/

Dim es,Ini,Fin,r1,r2,ee,clp,co,i
Dim a,b,c,d
Dim ruote(2),posta1(1),n1(2)
ReDim aEsiti(0)
Dim nEsitiNeg, nMaxRit
ReDim aRitardi(0)

posta1(1) = 1
r1 = CInt(InputBox(" Scegli la 1°ruota ",,"1"))
r2 = CInt(InputBox(" Scegli la 2°ruota ",,"2"))
ee = CInt(InputBox(" Quante estrazioni vuoi controllare ? ",,"50"))
clp =CInt(InputBox(" Per quanti colpi vuoi giocare ? ",,"3"))
Ini = EstrazioneFin - ee
Fin = EstrazioneFin
co = 0

For es = Ini To Fin
	Messaggio "elab. estr. [" &(es) & "] di " & DataEstrazione(es,1)
      Call AvanzamentoElab(Ini,Fin,es)
      ruote(1) = r1
      ruote(2) = r2
      a = Estratto(es,r1,1)
      b = Estratto(es,r1,5)
      c = Estratto(es,r2,1)
      d = Estratto(es,r2,5)
      n1(1) = Fuori90(a + b + c + d)
      n1(2) = Vert(n1(1))
      co = co + 1 'contatore dei casi - lo sfrutto anche per l'array degli esiti

	ReDim Preserve aEsiti(co) ' ridimensiono il vettore mantenendo i dati già inseriti
	aEsiti(co)=	VerificaEsito(n1,ruote,es+1,1,clp)
	
	Scrivi String(100,"°") & " Caso n°" & co,1
      Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r1) & " - " & StringaEstratti(es,r1),1
      Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r2) & " - " & StringaEstratti(es,r2),1
      Scrivi String(65,"°"),1
      ImpostaGiocata 1,n1,ruote,posta1,clp,1
      Gioca es,1,,1
	If ScriptInterrotto Then Exit For
Next
Scrivi
Scrivi String(100,"*")
ColoreTesto 2
Scrivi" casi trovati : " & co,1
ColoreTesto 0
Scrivi String(100," * ")
ScriviResoconto
'-----------------------
nEsitiNeg=0
nMaxRit=0
Scrivi "Caso Esito RitEsNeg",1
For i= 1 To co
	If aEsiti(i)=False Then
		nEsitiNeg=nEsitiNeg+1	
		Scrivi FormatSpace(i,4,1)& FormatSpace(aEsiti(i),6,1) & " "& nEsitiNeg		
	Else 
		If nEsitiNeg>nMaxRit Then nMaxRit=nEsitiNeg
		ReDim Preserve aRitardi(nMaxRit)
		aRitardi(nEsitiNeg)=aRitardi(nEsitiNeg)+1
		nEsitiNeg=0
		Scrivi FormatSpace(i,4,1)& FormatSpace(aEsiti(i),6,1)
	End If
Next
Scrivi
Scrivi " Il maxRit è " & nMaxRit,1
Scrivi
Scrivi "Ritardo - Casi",1
For i= 1 To nMaxRit
	If aRitardi(i)>0 Then Scrivi FormatSpace(i,4,1)& " "& FormatSpace(aRitardi(i),8,1)
Next
	
End Sub
 
Ciao Lanfranco, purtroppo devi provare a fare un salto, perchè anch'io + di questo non riesco, mi si è spenta la lampadina e non riesco ad isolare il caso massimo per poi riconteggiarli.

Visto che ho letto Rosanna in linea potrebbe lei con i suoi ragionamenti dinamici intervenire, per ora io mi fermo qua !!!.

Veramente non ero intervenuta perchè avevo visto che Luigi aveva dato degli input e aveva spronato Lanfranco a fare.. visto che stoffa ce n'è...

Non ho controllato le vostre tabelle... mi sono limitata con due vettori dinamici e qualche variabile a gestire il tutto alla mia maniera semplice, partendo
dallo script di esempio di Lanfranco e sfruttando il contatore dei casi già impostato ed inserendo la funzione Verificaesito. Ho abbassato i colpi a 3 per movimentare
i casi negativi...

Le tabelle esiti e ritardi sono in fondo all'output.

Codice:
Option Explicit
Sub Main()
'0904_22 Rosanna per Lanfranco
'http://forum.lottoced.com/f12/x-luigib-negativi-dopo-positivi-107044/

Dim es,Ini,Fin,r1,r2,ee,clp,co,i
Dim a,b,c,d
Dim ruote(2),posta1(1),n1(2)
ReDim aEsiti(0)
Dim nEsitiNeg, nMaxRit
ReDim aRitardi(0)

posta1(1) = 1
r1 = CInt(InputBox(" Scegli la 1°ruota ",,"1"))
r2 = CInt(InputBox(" Scegli la 2°ruota ",,"2"))
ee = CInt(InputBox(" Quante estrazioni vuoi controllare ? ",,"50"))
clp =CInt(InputBox(" Per quanti colpi vuoi giocare ? ",,"3"))
Ini = EstrazioneFin - ee
Fin = EstrazioneFin
co = 0

For es = Ini To Fin
	Messaggio "elab. estr. [" &(es) & "] di " & DataEstrazione(es,1)
      Call AvanzamentoElab(Ini,Fin,es)
      ruote(1) = r1
      ruote(2) = r2
      a = Estratto(es,r1,1)
      b = Estratto(es,r1,5)
      c = Estratto(es,r2,1)
      d = Estratto(es,r2,5)
      n1(1) = Fuori90(a + b + c + d)
      n1(2) = Vert(n1(1))
      co = co + 1 'contatore dei casi - lo sfrutto anche per l'array degli esiti

	ReDim Preserve aEsiti(co) ' ridimensiono il vettore mantenendo i dati già inseriti
	aEsiti(co)=	VerificaEsito(n1,ruote,es+1,1,clp)
	
	Scrivi String(100,"°") & " Caso n°" & co,1
      Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r1) & " - " & StringaEstratti(es,r1),1
      Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r2) & " - " & StringaEstratti(es,r2),1
      Scrivi String(65,"°"),1
      ImpostaGiocata 1,n1,ruote,posta1,clp,1
      Gioca es,1,,1
	If ScriptInterrotto Then Exit For
Next
Scrivi
Scrivi String(100,"*")
ColoreTesto 2
Scrivi" casi trovati : " & co,1
ColoreTesto 0
Scrivi String(100," * ")
ScriviResoconto
'-----------------------
nEsitiNeg=0
nMaxRit=0
Scrivi "Caso Esito RitEsNeg",1
For i= 1 To co
	If aEsiti(i)=False Then
		nEsitiNeg=nEsitiNeg+1	
		Scrivi FormatSpace(i,4,1)& FormatSpace(aEsiti(i),6,1) & " "& nEsitiNeg		
	Else 
		If nEsitiNeg>nMaxRit Then nMaxRit=nEsitiNeg
		ReDim Preserve aRitardi(nMaxRit)
		aRitardi(nEsitiNeg)=aRitardi(nEsitiNeg)+1
		nEsitiNeg=0
		Scrivi FormatSpace(i,4,1)& FormatSpace(aEsiti(i),6,1)
	End If
Next
Scrivi
Scrivi " Il maxRit è " & nMaxRit,1
Scrivi
Scrivi "Ritardo - Casi",1
For i= 1 To nMaxRit
	If aRitardi(i)>0 Then Scrivi FormatSpace(i,4,1)& " "& FormatSpace(aRitardi(i),8,1)
Next
	
End Sub
 
Ciao Lanfranco, purtroppo devi provare a fare un salto, perchè anch'io + di questo non riesco, mi si è spenta la lampadina e non riesco ad isolare il caso massimo per poi riconteggiarli.

Visto che ho letto Rosanna in linea potrebbe lei con i suoi ragionamenti dinamici intervenire, per ora io mi fermo qua !!!.
Se la lampadina torna a riaccerdersi non mancherò di ri-postare.

Ciao


Ciao Mike, è già un bel passo avanti, non ho parole per ringraziarti
 
Veramente non ero intervenuta perchè avevo visto che Luigi aveva dato degli input e aveva spronato Lanfranco a fare.. visto che stoffa ce n'è...

Non ho controllato le vostre tabelle... mi sono limitata con due vettori dinamici e qualche variabile a gestire il tutto alla mia maniera semplice, partendo
dallo script di esempio di Lanfranco e sfruttando il contatore dei casi già impostato ed inserendo la funzione Verificaesito. Ho abbassato i colpi a 3 per movimentare
i casi negativi...

Le tabelle esiti e ritardi sono in fondo all'output.

Codice:
Option Explicit
Sub Main()
'0904_22 Rosanna per Lanfranco
'http://forum.lottoced.com/f12/x-luigib-negativi-dopo-positivi-107044/

Dim es,Ini,Fin,r1,r2,ee,clp,co,i
Dim a,b,c,d
Dim ruote(2),posta1(1),n1(2)
ReDim aEsiti(0)
Dim nEsitiNeg, nMaxRit
ReDim aRitardi(0)

posta1(1) = 1
r1 = CInt(InputBox(" Scegli la 1°ruota ",,"1"))
r2 = CInt(InputBox(" Scegli la 2°ruota ",,"2"))
ee = CInt(InputBox(" Quante estrazioni vuoi controllare ? ",,"50"))
clp =CInt(InputBox(" Per quanti colpi vuoi giocare ? ",,"3"))
Ini = EstrazioneFin - ee
Fin = EstrazioneFin
co = 0

For es = Ini To Fin
    Messaggio "elab. estr. [" &(es) & "] di " & DataEstrazione(es,1)
      Call AvanzamentoElab(Ini,Fin,es)
      ruote(1) = r1
      ruote(2) = r2
      a = Estratto(es,r1,1)
      b = Estratto(es,r1,5)
      c = Estratto(es,r2,1)
      d = Estratto(es,r2,5)
      n1(1) = Fuori90(a + b + c + d)
      n1(2) = Vert(n1(1))
      co = co + 1 'contatore dei casi - lo sfrutto anche per l'array degli esiti

    ReDim Preserve aEsiti(co) ' ridimensiono il vettore mantenendo i dati già inseriti
    aEsiti(co)=    VerificaEsito(n1,ruote,es+1,1,clp)
    
    Scrivi String(100,"°") & " Caso n°" & co,1
      Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r1) & " - " & StringaEstratti(es,r1),1
      Scrivi DataEstrazione(es) & " -- " & SiglaRuota(r2) & " - " & StringaEstratti(es,r2),1
      Scrivi String(65,"°"),1
      ImpostaGiocata 1,n1,ruote,posta1,clp,1
      Gioca es,1,,1
    If ScriptInterrotto Then Exit For
Next
Scrivi
Scrivi String(100,"*")
ColoreTesto 2
Scrivi" casi trovati : " & co,1
ColoreTesto 0
Scrivi String(100," * ")
ScriviResoconto
'-----------------------
nEsitiNeg=0
nMaxRit=0
Scrivi "Caso Esito RitEsNeg",1
For i= 1 To co
    If aEsiti(i)=False Then
        nEsitiNeg=nEsitiNeg+1    
        Scrivi FormatSpace(i,4,1)& FormatSpace(aEsiti(i),6,1) & " "& nEsitiNeg        
    Else 
        If nEsitiNeg>nMaxRit Then nMaxRit=nEsitiNeg
        ReDim Preserve aRitardi(nMaxRit)
        aRitardi(nEsitiNeg)=aRitardi(nEsitiNeg)+1
        nEsitiNeg=0
        Scrivi FormatSpace(i,4,1)& FormatSpace(aEsiti(i),6,1)
    End If
Next
Scrivi
Scrivi " Il maxRit è " & nMaxRit,1
Scrivi
Scrivi "Ritardo - Casi",1
For i= 1 To nMaxRit
    If aRitardi(i)>0 Then Scrivi FormatSpace(i,4,1)& " "& FormatSpace(aRitardi(i),8,1)
Next
    
End Sub


Ciao Rosanna, a prima vista sembra PERFETTO !!!

Grazieeeeeeeeeeee:cool:
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 28 settembre 2024
    Bari
    47
    31
    09
    85
    52
    Cagliari
    49
    67
    26
    29
    68
    Firenze
    37
    01
    54
    79
    15
    Genova
    89
    76
    83
    14
    59
    Milano
    87
    85
    30
    76
    10
    Napoli
    73
    68
    24
    62
    05
    Palermo
    62
    27
    66
    20
    82
    Roma
    06
    30
    05
    53
    37
    Torino
    11
    02
    38
    55
    43
    Venezia
    81
    51
    82
    01
    20
    Nazionale
    08
    83
    12
    87
    42
    Estrazione Simbolotto
    Palermo
    19
    07
    10
    45
    36
Indietro
Alto