Homework 5 - scadenza DOMENICA 7/1/18 ore 23.59
Scaricate il file homework05-5.zip [AGGIORNATO v5]
- Unzippate il file in una directory, ottenendo la sottodirectory homework05 con le relative sottodirectories per ciascun esercizio
- Nelle sottodirectory trovate (for x in [1,2]):
- Il file program0x.py che contiene la descrizione del programma da realizzare, in cui dovete completare il programma e che dovrete restituire con la pagina di consegna
- il file simulatore.py che vi permette di testare la vostra implementazione. Per eseguire i test:
- aprite un Anaconda Prompt
- posizionatevi NELLA directory dell'esercizio homework05/esX
- Per il gioco Mastermind (es1) usate il comando
-
python simulatore.py
-
-
Per il simulatore di F1 sono presenti 3 sottocomandi, che si usano ad esempio:
Per sapere meglio i parametri aggiungete l'opzione --help ai 3 comandi qui sotto
python simulatore.py simulate --pista monza --players program02 | che lancia la finestra grafica del simulatore |
python simulatore.py nogui --pista monza --players program02 --logfile file.log | che esegue una simulazione senza grafica ma creando un file di log |
python simulatore.py replay --logfile file.log | che riesegue un file di log visualizzando la grafica |
- Otterrete una simulazione dei due giochi
- DOVETE SOTTOMETTERE SOLO I FILE program0x.py (per sottomettere dovete essere iscritti a questo sito)
ATTENZIONE: NON LASCIATE RICHIESTE DI INPUT O TEST DI NESSUN TIPO NEL PROGRAMMA, ALTRIMENTI VA IN TIMEOUT.
(o, se proprio volete, mettetele in un test if __name__ == '__main__': come detto a lezione)
REGOLE:
- E' permesso usare variabili globali, ma tenete conto che il tempo per lo import di program0X.py e l'elaborazione delle chiamate a funzioni che creano strutture globali viene contato nel timeout. Al massimo vi posso dare 10s in più (totale 40 secondi di timeout per mastermind).
-
Non è permesso usare file.
-
La memoria usata non potrà essere più grande di 10 Gbyte.
- Non è permesso precalcolare parti delle soluzioni e tabellarle nel codice (p.es. la traiettoria più veloce di F1) (mentre è permesso calcolarle a runtime nella simulazione o durante l'import del vostro program0X.py)
- E' permesso copiare la funzione risposta dal simulatore mastermind o importarla (ma prima devo mettere la chiamata alla simulazione dopo un if __name__ == '__main__')
AGGIORNAMENTI:
- corretto bug sulla terminazione del giro
- migliorato test di attraversamento del traguardo
- aggiunte opzioni --speed e --tile
- controllo che le macchine non si fermino per più di 5 step
- primo abbozzo di graders per caricare i risultati nella classifica
- aggiunto if __name__ ... in modo da poter importare la funzione risposta del simulatore1 (mastermind)
- aggiunto un assert per controllare che il tentativo generato abbia n cifre
- corretto bug nel simulatore di F1 che non vedeva attraversamenti di traguardo in direzione y negativa
- aggiunto l'argomento car.laps alla funzione ai (F1), ovvero il numero di attraversamenti del traguardo (negativo se contromano) (vedi http://q2a.di.uniroma1.it/4363)
- ...