lpr-b:lpr-b-09:progetto
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
lpr-b:lpr-b-09:progetto [18/12/2009 alle 16:41 (15 anni fa)] – Andrea Corradini | lpr-b:lpr-b-09:progetto [01/02/2010 alle 09:47 (15 anni fa)] (versione attuale) – Andrea Corradini | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== Progetto ====== | ||
- | |||
- | **__Pagina provvisoria__** | ||
- | |||
- | ===== Il gioco: fiorellini e formichine ===== | ||
- | |||
- | In un prato virtuale spuntano dei fiorellini a | ||
- | intervalli di tempo casuali e in posizioni casuali. | ||
- | Ogni giocatore ha a disposizione al massimo cinque formichine, | ||
- | che può far muovere sul prato per raggiungere i fiorellini e | ||
- | raccoglierli. I giocatori operano simultaneamente e in concorrenza. | ||
- | Vince chi raccoglie più fiorellini in un tempo predeterminato. | ||
- | |||
- | Il prato virtuale è rappresentato da una matrice quadrata di lato | ||
- | 512 che è gestita da un server. Il giocatore deve definire un | ||
- | client, rappresentante una singola formichina, che verrà lanciato | ||
- | in cinque istanze al momento del gioco. | ||
- | |||
- | Il client interagisce con il server tramite TCP e tramite multicast, | ||
- | con il protocollo descritto di seguito. Inoltre le varie istanze del client possono | ||
- | interagire tra di loro, con modalità abitrarie, per realizzare | ||
- | strategie di cooperazione che consentano di ottenere una maggior efficienza. | ||
- | |||
- | |||
- | ===== 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 ==== | ||
- | |||
- | Versione iniziale (17 dicembre 2009): [[http:// | ||
- | |||
- | ==== Istruzioni ==== | ||
- | |||
- | I file necessitano di Java Virtual Machine installata sulla macchina. Essi possono essere usati sia da GUI (con un doppio click sull' | ||
- | === 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' | ||
- | 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 " | ||
- | === Uso da riga di comando === | ||
- | Il server può essere lanciato con il comando | ||
- | |||
- | '' | ||
- | |||
- | in cui: | ||
- | * // | ||
- | * // | ||
- | * //portaMC// è la porta multicast su cui il server notificherà l' | ||
- | Il client può essere lanciato con il comando | ||
- | |||
- | '' | ||
- | |||
- | in cui: | ||
- | |||
- | * //squadra// è il nome scelto per la propria squadra (per default: Test) | ||
- | * //host// è l' | ||
- | * // | ||
- | |||
- | 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 | ||
- | |||
====== Progetto ====== | ====== Progetto ====== | ||
Linea 69: | Linea 8: | ||
|In un prato virtuale spuntano dei fiorellini a intervalli di tempo casuali e in posizioni casuali. Ogni giocatore ha a disposizione al massimo cinque formichine, | |In un prato virtuale spuntano dei fiorellini a intervalli di tempo casuali e in posizioni casuali. Ogni giocatore ha a disposizione al massimo cinque formichine, | ||
|Il campo di gioco è rappresentato da una matrice quadrata di lato 512 unità (a coordinate intere) che è gestita da un server. Il giocatore deve definire un client, rappresentante una singola unità, che verrà lanciato in cinque istanze al momento del gioco. Il client interagisce con il server tramite TCP e tramite multicast, con il protocollo descritto di seguito. Inoltre le varie istanze del client possono interagire tra di loro, con modalità abitrarie, per realizzare strategie di cooperazione che consentano di ottenere una maggior efficienza.|| | |Il campo di gioco è rappresentato da una matrice quadrata di lato 512 unità (a coordinate intere) che è gestita da un server. Il giocatore deve definire un client, rappresentante una singola unità, che verrà lanciato in cinque istanze al momento del gioco. Il client interagisce con il server tramite TCP e tramite multicast, con il protocollo descritto di seguito. Inoltre le varie istanze del client possono interagire tra di loro, con modalità abitrarie, per realizzare strategie di cooperazione che consentano di ottenere una maggior efficienza.|| | ||
+ | |||
Linea 103: | Linea 43: | ||
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. | 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 ===== | ===== Documentazione del protocollo ===== | ||
Linea 121: | Linea 62: | ||
^ Comando ^^ Len ^ Dati ^ Descrizione ^ Risposta ^ | ^ Comando ^^ Len ^ Dati ^ Descrizione ^ Risposta ^ | ||
^ Nome ^ Valore ^ ^ ^ ^ ^ | ^ Nome ^ Valore ^ ^ ^ ^ ^ | ||
- | ^ REGISTER | 7 | //n// | //n// caratteri | + | ^ REGISTER | 7 | //n// | //n// byte (secondo l' |
^ PING | 1 | 0 | | Segnala al server la propria presenza. ^ PONG | | ^ PING | 1 | 0 | | Segnala al server la propria presenza. ^ PONG | | ||
^ MOVE | 2 | 4 | //x//,//y// | Chiede al server si portare il giocatore alle coordinate // | ^ MOVE | 2 | 4 | //x//,//y// | Chiede al server si portare il giocatore alle coordinate // | ||
Linea 141: | Linea 82: | ||
^ GRABRESULT | 68 | 2 | //k// | Segnala che sono stati raccolti //k// target con l' | ^ GRABRESULT | 68 | 2 | //k// | Segnala che sono stati raccolti //k// target con l' | ||
- | ==== Messaggi Multicast UDP dal client al server ==== | + | ==== Messaggi Multicast UDP dal server |
| 1 byte || 2 byte | //Len// byte | | | | 1 byte || 2 byte | //Len// byte | | | ||
Linea 155: | Linea 96: | ||
Se il server riconosce un errore nel comportamento del client, la comunicazione viene interrotta (il giocatore rimane registrato ma viene " | Se il server riconosce un errore nel comportamento del client, la comunicazione viene interrotta (il giocatore rimane registrato ma viene " | ||
Il gioco non prevede la possibilità di de-registrare un giocatore, né un esplicito "fine partita"; | Il gioco non prevede la possibilità di de-registrare un giocatore, né un esplicito "fine partita"; | ||
+ | |||
===== Requisiti generali e modalità di consegna ===== | ===== Requisiti generali e modalità di consegna ===== | ||
Linea 183: | Linea 125: | ||
I progetti sottomessi verranno testati durante un " | I progetti sottomessi verranno testati durante un " | ||
mese di gennaio 2010) durante il quale ogni studente lancerà cinque istanze del proprio client che competeranno | mese di gennaio 2010) durante il quale ogni studente lancerà cinque istanze del proprio client che competeranno | ||
- | con tutti gli altri (eventualmente, | + | con tutti gli altri (eventualmente, |
+ | Naturalmente il codice usato per la gara deve essere conforme a quello consegnato, pena la nullità della prova. | ||
+ | |||
===== Suggerimenti finali ===== | ===== Suggerimenti finali ===== | ||
Linea 197: | Linea 141: | ||
===== FAQ ===== | ===== FAQ ===== | ||
- | (In questa sezione verranno raccolte le risposte alle domande più frequenti). | + | |
+ | Per una lista aggiornata delle risposte alle domande più frequenti, clicca | ||
+ | [[lpr-a/ |
lpr-b/lpr-b-09/progetto.1261154504.txt.gz · Ultima modifica: 18/12/2009 alle 16:41 (15 anni fa) da Andrea Corradini