Algoritmi e Programmazione Avanzata
Compito di programmazione – 9 luglio 2007
Tempo: 90 minuti, è possibile consultare libri o appunti.
Si scriva un programma in linguaggio C per risolvere il gioco denominato tetravex.
Si tratta di un gioco simile al domino. E' data una scacchiera 3x3 su cui sono posizionate delle tessere ciascuna delle quali contiene quattro numeri (a destra, a sinistra, in alto ed in basso). Le tessere devono essere riposizionate su una seconda scacchiera in modo che risultino affiancate in base alla concordanza dei numeri sui lati, cioè due tessere possono essere adiacenti solo se sul lato comune è presente lo stesso numero per entrambe. Le tessere non possono essere ruotate.
Si vedano ad esempio i due schemi qui riportati. A sinistra vi è il primo riquadro con le tessere da utilizzare per risolvere il gioco, in ordine sparso. A destra le tessere sono state disposte in un ordine diverso in modo da rispettare i vincoli del gioco.
Si supponga che lo schema iniziale sia rappresentato in un file di testo in cui ogni tessera è rappresentata da un sequenza di 4 numeri su una riga. Le tessere sono elencate da sinistra verso destra e dall'alto verso il basso.
Esempio relativo allo schema riportato nella figura di sopra:
7 2 0 1 8 0 4 2 3 8 4 4 3 6 5 4 6 9 3 0 5 6 3 8 8 4 6 8 4 4 3 9 0 9 8 4
N.B. Allo studente è richiesto di consegnare una copia dell’elaborato scritto al termine della presente prova d’esame.
Affinché lo scritto venga valutato lo studente dovrà realizzare su PC il programma funzionante ed inviare al docente (servetti@polito.it) [ ENTRO il 23.07.2007 ]:
– il codice prodotto in aula e trascritto al computer in un file .c
– una relazione con il codice sorgente del programma funzionante correttamente su cui vengono evidenziate le differenze rispetto alla versione redatta in classe (es. in rosso il codice aggiunto, barrato il codice cancellato, in blu il codice modificato) corredato da una breve descrizione della struttura del programma e dalle motivazioni per le modifiche apportate.
Nella mail specificare come oggetto la sigla del corso ed il proprio numero di matricola, nella forma: [APA-TO + matricola]. La data ed il luogo per la registrazione del voto verrà comunicata via email.