il Solitario del 35Il Gioco del 35 è un solitario che si può fare ovunque con carta e penna: basta inserire tutti i numeri da 1 a 35 nella tabella, seguendo alcune semplici regole di percorso:
Struttura datiIl campo di gioco dovrebbe essere allocato in una matrice intera Campo[5][7], dove ogni casella vale o se vuota, da 1 a 35 se occupata. Occorre però fare qualche considerazione preliminare:
Le operazioni sono decisamente più veloci se utilizziamo come campo di
gioco direttamente un array monodimensionale e inseriamo intorno al campo
5x7 una cornice spessa tre caselle, contenenti tutte il valore fittizio -1: in questo modo
utilizzeremo un solo indice per gli spostamenti, a partire dalla casella
[71], e la verifica di una mossa dalla casella [k1] alla [k2]
diventa :
AlgoritmoIl programma è costituito essenzialmente da una
funzione ricorsiva che, data una situazione sul tavolo di gioco, elenca
tutte le mosse possibili e le prova ad una ad una chiamando
successivamente la funzione stessa per un'ulteriore valutazione. Codice Sorgente in CPer la codifica è stato usato il linguaggio C; la
versione riportata è per Borland C/C++ 3.1, ma è facilmente adattabile
ad un qualsiasi compilatore C. Considerazioni finaliIl programma, su un Athlon XP 2600, trova in 18 secondi 13272 soluzioni differenti (eliminando la visualizzazione delle soluzioni durante il calcolo, impiegherebbe meno).
Inserendo il numero 1 in una qualsiasi delle 35 caselle, si perviene comunque a migliaia di soluzioni diverse. Ad esempio, partendo da una delle quattro caselle di angolo, si trovano 52730 soluzioni. |