Voglio condividere con voi alcuni consigli che a me hanno aiutato molto a svolgere questo HW.
- scrivere su un pezzo di carta come "si muove" il tuo programma, collegando con una freccia (stile diagramma di flusso) le varie funzioni che si chiamano a vicenda, così eviti di calcolare più volte lo stesso valore e guadagni in efficienza oltre ad avere una mappa logica chiara, molto utile nella ricorsione in quanto è stato difficile per me astrarre.
- dividi il programma in quante più funzioni possibili, così da poterle testare singolarmente e verificare che l'output attesto rispecchia quello che fornisce la funzione
- non usare subito il return per verificare la correttezza del tuo programma ma usa le print( es: "Vinto w") in caso di termine partita, è un po noioso contare le vittorie ma dopo quando ultimi tutto devi solo capire come sommare le vittorie senza preoccuparti di verificare che il tutto sia corretto
-usa una board di prova che modifichi pian piano te e che puoi controllare negli output
Ovviamente se avete altri consigli scrivete pure sotto
- scrivere su un pezzo di carta come "si muove" il tuo programma, collegando con una freccia (stile diagramma di flusso) le varie funzioni che si chiamano a vicenda, così eviti di calcolare più volte lo stesso valore e guadagni in efficienza oltre ad avere una mappa logica chiara, molto utile nella ricorsione in quanto è stato difficile per me astrarre.
- dividi il programma in quante più funzioni possibili, così da poterle testare singolarmente e verificare che l'output attesto rispecchia quello che fornisce la funzione
- non usare subito il return per verificare la correttezza del tuo programma ma usa le print( es: "Vinto w") in caso di termine partita, è un po noioso contare le vittorie ma dopo quando ultimi tutto devi solo capire come sommare le vittorie senza preoccuparti di verificare che il tutto sia corretto
-usa una board di prova che modifichi pian piano te e che puoi controllare negli output
Ovviamente se avete altri consigli scrivete pure sotto