In effetti ieri ho risolto la cosa con un algoritmo ricorsivo, ma darò un'occhiata al link che mi hai segnalato, magari è una soluzione più efficente della mia (anche se ho fatto delle prove, e almeno sul mio cellulare, l'algoritmo, anche nei casi più complicati, viene eseguito in pochi centesimi di secondo).Originariamente inviato da Pirelli72
Purtroppo sembra una cosa facile....ma non è difficile.
Ti rimando a questo progetto che funziona in questo modo:
-dati x numeri (che potrebbero essere le carte), ad esempio {2,5,6,3} avrò che le combinazioni possibili saranno
2
5
6
3
2,5
2,6
2,3
5,6
5,3
6,3
2,5,6
2,5,3
5,6,3
1,4,3
1,5,4,3
Ora posso sapere la somma di tutte le combinazioni e confrontarle con un valore e sapere quindi la combinazione che mi porta a quella somma.
L'algoritmo che ho realizzato io a grandi linee funziona così: gli passo il vettore delle carte a terra e la carta che sto giocando io. Lui ad ogni giro di ricorsione effettua la somma tra una delle carte a terra e un parametro (che nel primo ciclo di ricorsione gli viene passato pari a zero), e quindi verifica se questa somma è minore o uguale alla carta che sto giocando. Se la somma è minore, continua con la ricorsione passando la somma come parametro (che verrà sommato a sua volta con un'altra carta a terra nel ciclo successivo), considerando le carte già sommate come potenzialmente da prendere in abbinamento ad altre carte che potrebbero completare la somma. Se la somma è uguale ho trovato una delle mie soluzioni.
Grazie a tutti per l'aiuto.
P.S. Chi se la sente di testare il mio gioco di scopa una volta che sarà completato?![]()