Benissimo , ora dobbiamo pensare a come sviluppare il sistema senza usare i cicli for , a tale scopo lasciamo perdere il codice e ragioniamo semplicemente se fossimo armati di solo carta e penna.
Facciamo un esempio con un pronostico di 5 numeri sviluppato sia in ambi che in terni perch altrimenti seguire i passaggi è troppo lungo
qui vediamo il nostro pronostico
i numeri dell'array possono essere ddisposti in una griglia di due righe dovendo sviluppare ambi
lo sviluppo delle colonne puo essere identificato tramite una coppia di coordinate riga colonna per ciascuna posizione della colonna sviluppata
stesso discorso per lo sviluppo in terni , creiamo una griglia contenente i numeri che possono presentarsi in quella posizione
Questa griglia la dovremmo creare in funzione della classe di sviluppo , successivamente con un taccuino facendo finta di sviluppare in ambi dovremmo tenere un registro di 2 posizioni , la prima posizione per registrare la colonna per la prima riga (primo numero della coppia) , il scondo registro per mantenere la colonna della seconda riga cioe il secondo numero della coppia.
ogni volta che vogliamo la colonna successiva dobbiamo incrementare di uno l'ultima coordinata cioe la coordinata registrata nella seconda posizione del registro nel caso di sviluppo in ambi dell'esempio ,
se la coordinata è valida cioè rientra nel range possibile (1-4) tutto bene preleviamo i numeri dalla griglia in base alle coordinate riga-colonna e abbiamo la nostra colonna di sviluppo ,
se incrementando però la coordinata usciamo fuori dallo spazio possibile allora dovremo salire al registro precedente in questo caso al registro della posizione 1 , incrementare quello verificare che sia valido senno salire ancora se non si puo salire piu vuol dire che il sistema è completamente sviluppato , se è valido aggiornare tutti i registri successivi al nuovo valore valido , solo allora si potranno prelevare i numeri dalla griglia per formare la colonna di sviliuppo.
ora se cerchi di seguire mentalmente il processo ti accorgi che ha un andamento regolare ed è possibile costruire dinamicamente le coordinate per creare la colonna e mano mano sviluppare il sistema..
ti è chiaro il concetto se dovessi farlo a mano ?