Anche se in maniera un po' scomoda, è possibile disegnare con 4 semplici "mosse":
A
(Avanti): fa spostare di una posizione il
cursore;R
(Ruota): ruota il cursore di 90° verso sinistra;
D
(Disegna): specifica la modalità di disegno
(e quindi i movimenti successivi del cursore verranno disegnati: il
cursore si comporta come una penna);N
(Non disegnare): specifica la modalità di
"non disegno" (e quindi i movimenti successivi del cursore, fino alla
prossima mossa "D
", non causeranno disegno: è come
se il cursore-penna fosse sollevato dal foglio).Quindi, ad esempio, la sequenza di mosse
DAAAANAAAADAAAANAAAADAAAANAAAADAAAA
disegna una linea
"tratteggiata" la cui direzione dipende dall'orientamento iniziale del
cursore; DAAAARAAAARAAAARAAAA
disegna un piccolo quadrato
di lato 4; DAAAARAAAARNAAAARDAAAA
disegna solo tre lati
del quadrato; e così via...
Si richiede di implementare un programma che, tramite un'interfaccia grafica, consenta di:
Un esempio di interfaccia del programma è riportato nella
figura seguente. Il pulsante "Avanti
" consente di
eseguire la mossa "A
"; il pulsante "Ruota a
Sx
" consente di eseguire la mossa "R
"; la Checkbox
"Disegna
" consente di eseguire le mosse "D
"
e "N
"; e la label "Direzione corrente
"
indica in quale direzione è orientato il cursore (ossia in
quale direzione si muoverà se la prossima mossa è
"A
"). La lettura da e il salvataggio su file sono
effettuati tramite il menu "File
".
Ovviamente, questa è solo una delle molte possibili implementazioni, che viene fornita solo per esempio, e che quindi siete liberissimi di modificare. Ad esempio, potete rappresentare graficamente la direzione del cursore, con una freccia o con un altro simbolo opportuno; potete usare pulsanti e campi di testo per lettura da e salvataggio su file; potete aggiungere un campo di testo per visualizzare la sequenza delle mosse e magari consentire di modificarne qualcuna; ecc. ecc.
Il livello di complessità del programma prodotto può essere deciso liberamente dagli studenti; ovviamente, progetti più articolati e complessi otterranno una valutazione migliore di progetti più semplici, ma si consiglia di fare "poco e bene" piuttosto che "tanto e male": progetti semplici possono comunque ottenere il massimo punteggio, purché ben fatti. La durata prevista del lavoro, considerando un gruppo di 3 persone che lavorano a tempo pieno, è di una settimana al massimo.
Il progetto va realizzato in gruppi di 3 persone (a meno di accordi particolari con il docente, possibili solo in casi di reale e comprovata necessità), e tutti i componenti di un gruppo devono conoscere tutti i dettagli del progetto, come se l'avessero realizzato da soli.
Va preparata una breve relazione, preferibilmente (ma non necessariamente) in XHTML + CSS, sul lavoro effettuato. La relazione deve contenere:
Il progetto va consegnato inderogabilmente entro l'inizio della prova scritta dell'appello, ossia il 2 luglio 2003 ore 9:00, sia in forma cartacea (1 copia), sia via posta elettronica (2 copie, una per docente, indirizzi: coppola@dimi.uniud.it e mizzaro@dimi.uniud.it). Si richiede un unico messaggio:
NOTA Questo progetto è valido per chi intende sostenere l'esame nel secondo appello della sessione estiva (2, 8 luglio 2003), e va quindi consegnato entro la scadenza. Non si accetteranno ritardi per nessun motivo. Per gli appelli successivi saranno predisposti altri progetti.
Alla valutazione del progetto concorrono vari aspetti (rilevanza delle semplificazioni apportate, qualità della relazione, ecc.), ma è di prioritaria importanza la qualità del programma prodotto, soprattutto per quanto concerne le caratteristiche di leggibilità, modificabilità...Esempi di criteri per la valutazione:
Per eventuali dubbi rivolgersi ai docenti, o durante l'orario di ricevimento o per posta elettronica.