Questa è una vecchia versione del documento!
Indice
Progetto
Pagina provvisoria
File eseguibili
Il progetto consiste nella scrittura di un client (giocatore) per un server dato (che gestisce il gioco). Il codice del server è disponibile per essere scaricato; è possibile che vengano rilasciate versioni successive (con modifiche minori, quali fine-tuning di alcuni parametri) in seguito.
File scaricabili
Istruzioni
I file necessitano di Java Virtual Machine installata sulla macchina. Essi possono essere usati sia da GUI (con un doppio click sull'icona) che da riga di comando.
Uso da GUI
Aprendo il server si aprirà il pannello che rappresenta il campo di gioco, con tutti i parametri impostati al loro valore di default (vedi la prossima sezione). Il server è ora disponibile ad accettare connessioni dai client; chiudendo la finestra, si termina l'applicazione. Il pannello a destra elenca le squadre registrate; per ciascuna squadra viene riportato il nome (troncato ai primi 8 caratteri), il numero di giocatori attivi, e il punteggio corrente (dato dal numero di unità raccolte). Il client può essere lanciato fino a cinque volte; ad ogni esecuzione, verrà registrato un nuovo giocatore sul server (registrazioni successive verranno rifiutate). Per default, le opzioni del client coincidono con quelle del server, e la squadra ha il nome “Test”. Con la chiusura del server, terminano (con un errore) tutti i client collegati fino a quel momento.
Uso da riga di comando
Il server può essere lanciato con il comando
java -jar Laprore-Server.jar portaTCP gruppoMC portaMC
in cui:
- portaTCP è la porta su cui il server si pone in ascolto per le connessioni TCP provenienti dai client (per default: 4000)
- gruppoMC è il gruppo multicast su cui il server notificherà l'arrivo di nuovi obiettivi (per default: 226.0.0.0)
- portaMC è la porta multicast su cui il server notificherà l'arrivo di nuovi obiettivi (per default: 4001)
Il client può essere lanciato con il comando
java -jar Laprore-Client.jar squadra host portaTCP
in cui:
- squadra è il nome scelto per la propria squadra (per default: Test)
- host è l'indirizzo della macchina su cui gira il server (per default: localhost)
- portaTCP è la porta, sull'host, su cui il server è in ascolto (per default: 4000)
Tutti i parametri (sia del server che del client) sono opzionali, ma se presenti devono essere indicati in ordine. Per esempio, è possibile indicare sul client il nome della squadra, omettendo host e porta.
Documentazione del protocollo
TBC
Requisiti generali e modalità di consegna
Ogni studente che vuole sostenere l'esame di LPR deve consegnare il progetto svolto al docente del corso di appartenenza (Prof. Gervasi per il Corso A, Prof. Corradini per il Corso B). Il progetto deve essere consegnato individualmente, ma può essere svolto da un gruppo di due studenti al massimo: in questo caso nel progetto va indicato esplicitamente il collega con cui si è collaborato. L'esame orale del corso, che comprende la discussione del progetto, sarà individuale: ciascun studente è responsabile dell'intero progetto consegnato.
Per poter essere valutato, il codice del client sviluppato nel progetto deve essere in grado di interagire senza errori con il server pubblicato in questa pagina, in una o più istanze (fino a 5) eseguite su host diversi o anche sullo stesso host. Il progetto deve funzionare correttamente sulle macchine del CLI, dove verrà teatato.
Il codice del progetto deve essere ben commentato e deve essere accompagnato da una relazione di 3-5 pagine che descrive l'organizzazione del codice, le strategie realizzate per il funzionamento del singolo client e per la collaborazione tra più client, e le politiche di sincronizzazione tra thread utilizzate. Inoltre occorre produrre un breve manuale d'uso che descrive i comandi necessari per avviare le varie istanze del client, sia su uno stesso host che su host diversi.
Codice, relazione e manuale d'uso devon essere inviati per posta elttronica al docente del corso entro le ore 24 di domenica 31 gennaio 2010. Progetti inviati dopo tale scadenza non verranno ammessi, e lo studente dovrà svolgere un nuovo progetto che verrà pubblicato successivamente.
I progetti sottomessi verranno testati durante un evento pubblico in cui saranno lanciati