Progetto

Il progetto (o tesina) per questo corso consta in quanto descritto nel documento scaricabile da questa pagina (o visibile embedded, vedi in fondo).

Istruzioni

Come indicato nello stesso, lo studente dovrà fornire al docente (almeno 5 giorni feriali prima della data dell'appello):
  1. il codice, consistente in soli 3 file jar (uno per modulo) contententi il sorgente e il risultato della compilazione (oppure il sorgente può essere fornito a parte);
  2. una sinteticissima descrizione (1-2 pagine in pdf) che contenga:
    1. la documentazione utente per le 3 componenti, cioè come eseguire ognuna da linea di comando (ad es., java -jar Player.jar name organizer_ip);
    2. una sezione che descrive sinteticamente le scelte fatte e non imposte da questo documento (strategie del giocatore, costanti di gioco, parti del protocollo non specificate qui);
    3. una eventuale sezione sintetica di commento che descrive i problemi incontrati.

Piccole limature

Un valore più appropriato per il tempo da far intercorre tra due risposte del Playground nella fase playing è 25ms anziché 250ms.

Svolgimento di esempio

Allegato a questa pagina (vedi sotto), vi è un file jar contenente uno svolgimento di esempio del tema assegnato. Il file non contiene i sorgenti, ma serve allo studente per poter effettuare delle prove di compatibilità dei componenti che ha sviluppato.
Si possono eseguire le componenti di esempio utilizzando una delle seguenti sintassi:
java -jar ProgrammazioneDistribuita0910-Tesina.jar Organizer
java -jar ProgrammazioneDistribuita0910-Tesina.jar Playground
java -jar ProgrammazioneDistribuita0910-Tesina.jar GraphicPlayground
java -jar ProgrammazioneDistribuita0910-Tesina.jar DumbPlayer
java -jar ProgrammazioneDistribuita0910-Tesina.jar SmartPlayer
java -jar ProgrammazioneDistribuita0910-Tesina.jar SmarterPlayer
Il valore dell'argomento a linea di comando (Organizer, Playground, ...) specifica quale componente viene eseguita. Meritano attenzione i seguenti fatti: il GraphicPlayground è una versione di Playground che mostra un interfaccia utente che permette di seguire il gioco; le tre versioni di Player (DumbPlayer, SmartPlayer e SmarterPlayer) sono costruite su tre strategie di gioco differenti.
Tutti i componenti forniti assumono che l'Organizer si trovi su localhost.

Faq

  1. Cosa fa il Playground se la prima richiesta che riceve da un client non è la "READY"?
    Risponde "INVALID_REQUEST" e chiude la connessione.
  2. Si possono aggiungere cose opzionali (interfaccia grafica, ecc...)?
    Sì. Per ottenere il massimo dei voti non è necessario aggiungere alcunché a quanto richiesto. Le cose opzionali verranno (eventualmente) apprezzate, ma non concorreranno ad annullare eventuali mancanze sulle cose non opzionali. Si prega di specificare nella relazione allegata alla tesina se e quali componenti opzionali sono state realizzate, come si usano e cosa fanno.
  3. Il Player invia il nome assieme ai comandi "LEFT" e "RIGHT"?
    No. Non è necessario. Come specificato, il Playground infatti mantiene una connessione aperta con ogni giocatore, quindi tali comandi, arrivando su una delle due connessioni aperte, sono associabili al Player corrispondente.
  4. Quando bisogna consegnare la tesina?
    Almeno 5 giorni feriali prima della data dell'appello che lo studente vorrebbe sostenere.
  5. Bisogna per forza separare il codice in 3 jar?
    No. Ma deve essere comunque possibile eseguire ognuna delle tre componenti separatamente.
  6. Il protocollo non specifica cosa risponde il Playground alla richiesta "REFRESH". Come fare?
    Il Playground risponda "OK". Il Player tolleri una risposta del Playground uguale a quella prevista per la richiesta "SUBSCRIBE".
ċ
ProgrammazioneDistribuita0910-Tesina.jar
(128k)
Eric Medvet,
Dec 1, 2009, 8:25 AM
Ċ
Eric Medvet,
Nov 19, 2009, 3:18 AM
Comments