On 1 Mar 2012, at 07:35, Marcello Missiroli wrote:
Scusa il ritardo (ormai te la sarai sfangata da solo :-) ) ma il mio livello di
incasinamento è arrivato al top. Comunque…
> Ma non riesco a trovare il modo per (a) sapere
> se sono nel nodo terminale dell'albero
La prima soluzione che mi è venuta in mente (che segue il principio di "scrivi
in codice quello che descriveresti a parole senza farti tante pippe") è che
riconosci che sei arrivato all'ultimo livello della recursione, quello in cui
devi effettivamente giocare la partita, quando quello che hai in mano è una
cosa tipo:
[ ["Richard", "R"], ["Michael", "S"] ]
Ovvero, invece di avere un array di array di array di array (ecc ecc) hai un
array il cui primo elemento è un array di stringhe. In codice:
tourney[0][0].class == String
> (b) restituire la soluzione alla
> chiamata iterativa precente senza generare un'eccezione.
Questa è un po'dura senza vedere quello che hai scritto.
L'esercizietto l'ho fatto pure io, giusto per buttare giù un po' di ruggine.
Non lo passo in lista perché sarebbe barare :-)
Pseudocodice:
1. Ho una funzione "giocapartita" che ritorna il vincitore
2. Ho una funzione "giocatorneo" che:
2.1 se è un torneo degenere (ovvero una partita) la gioca e ritorna
[vincitore, mossa]
2.2 se no gioca una partita tra [ giocatorneo(torneo[0]),
giocatorneo(torneo[1]) ]
> L'ultimo esercizio lo devo ancora affrontare, e attualmente mi da un
> sacco di problemi, ma spero di risolverli oggi.
Mo' lo faccio pure io, che mi diverto un po' (se non mi addormento prima :-D )
- ap
|