lpr-a: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-a:progetto [18/12/2009 alle 16:48 (15 anni fa)] – Vincenzo Gervasi | lpr-a:progetto [26/01/2010 alle 18:26 (15 anni fa)] (versione attuale) – Ancora FAQ Vincenzo Gervasi | ||
---|---|---|---|
Linea 66: | Linea 66: | ||
^ LOOK | 5 | 0 | | Chiede al server l' | ^ LOOK | 5 | 0 | | Chiede al server l' | ||
^ LOAD | 6 | 0 | | Chiede al server il carico corrente del giocatore (quanti target ha raccolto finora). ^ YOURLOAD | | ^ LOAD | 6 | 0 | | Chiede al server il carico corrente del giocatore (quanti target ha raccolto finora). ^ YOURLOAD | | ||
- | |||
==== Messaggi TCP dal server al client ==== | ==== Messaggi TCP dal server al client ==== | ||
Linea 76: | Linea 75: | ||
^ LOC | 65 | 4 | //x//,//y// | Fornisce la posizione corrente del giocatore (coordinate //x//,//y// sul campo di gioco). | | ^ LOC | 65 | 4 | //x//,//y// | Fornisce la posizione corrente del giocatore (coordinate //x//,//y// sul campo di gioco). | | ||
^ YOURLOAD | 66 | 2 | //n// | Fornisce il carico corrente del giocatore, ovvero quanti target ha raccolto dal momento della registrazione fino ad ora. | | ^ YOURLOAD | 66 | 2 | //n// | Fornisce il carico corrente del giocatore, ovvero quanti target ha raccolto dal momento della registrazione fino ad ora. | | ||
- | ^ TARGETS | 67 | 4//n// | //x//_1,//y//_1 ... //x_n//,//y_n// | Fornisce le coordinate di tutti i target presenti sul campo di gioco. | | + | ^ TARGETS | 67 | 4//n// | //x//< |
^ 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 server | |
- | ==== Messaggi Multicast UDP dal client al server ==== | + | |
| 1 byte || 2 byte | //Len// byte | | | | 1 byte || 2 byte | //Len// byte | | | ||
Linea 89: | Linea 87: | ||
==== Comunicazioni intra-client ==== | ==== Comunicazioni intra-client ==== | ||
Il protocollo, i formati, e il tipo di comunicazione (tipicamente: | Il protocollo, i formati, e il tipo di comunicazione (tipicamente: | ||
- | |||
==== Trattamento degli errori e terminazione ==== | ==== Trattamento degli errori e terminazione ==== | ||
- | 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 118: | Linea 115: | ||
verranno ammessi, e lo studente dovrà svolgere un nuovo progetto che verrà pubblicato successivamente. | verranno ammessi, e lo studente dovrà svolgere un nuovo progetto che verrà pubblicato successivamente. | ||
- | I progetti sottomessi verranno testati durante un evento pubblico | + | I progetti sottomessi verranno testati durante un evento pubblico |
- | mese di gennaio | + | |
- | con tutti gli altri (eventualmente, | + | |
===== Suggerimenti finali ===== | ===== Suggerimenti finali ===== | ||
Linea 131: | Linea 127: | ||
Si raccomanda di verificare in anticipo il funzionamento dei client sulle macchine del Centro di Calcolo (Laboratori H-Lab e M-Lab), su cui verrà svolto il " | Si raccomanda di verificare in anticipo il funzionamento dei client sulle macchine del Centro di Calcolo (Laboratori H-Lab e M-Lab), su cui verrà svolto il " | ||
- | |||
===== FAQ ===== | ===== FAQ ===== | ||
- | (In questa sezione verranno raccolte le risposte alle domande | + | **È nota la frequenza con cui il server genera i targets e quindi invia messaggi di tipo TARGETS in multicast? |
+ | \\ | ||
+ | No; i target sono comunque generati a intervalli casuali, per cui al limite si potrebbe sapere la frequenza media. Ma quest' | ||
+ | |||
+ | **Il client con un messaggio di tipo MOVE, chiede al server di portare il giocatore alle coordinate, è possibile sapere la velocità di movimento del giocatore | ||
+ | \\ | ||
+ | Al momento è circa di 8-10 unità/ | ||
+ | Per chi fosse interessato, | ||
+ | |||
+ | **Posso sabotare i miei concorrenti inviando falsi messaggi sul gruppo broadcast del server?** | ||
+ | \\ | ||
+ | Si; allo stesso modo, i docenti provvederanno a sabotare la tua laurea inviando falsi statini in Segreteria con voti sotto il 18. | ||
+ | |||
+ | **Come devo gestire il caso in cui altri giocatori inviino messaggi nel gruppo broadcast che uso per far comunicare fra di loro i miei agenti?** | ||
+ | \\ | ||
+ | Prima della gara procederemo a una fase di "DNS manuale" | ||
+ | |||
+ | **Posso consegnare | ||
+ | \\ | ||
+ | No; la modalità di consegna prevede un solo eseguibile. Nulla vieta che questo eseguibile abbia poi comportamenti diversi a seconda dei casi (l'ID unico assegnato dal server a ogni giocatore può essere usato per discriminare questi comportamenti). Allo stesso modo, non è possibile mandare in esecuzione altri processi, distinti dall' | ||
+ | |||
+ | **Ma come faccio a essere sicuro che i pacchetti che mando arrivino al server coi tempi " | ||
+ | \\ | ||
+ | Non puoi. È nella natura della programmazione di rete il fatto che, nella maggior parte dei casi, non è possibile dare garanzie statiche sui tempi di consegna dei pacchetti (e anche laddove la rete lo consentirebbe, |
lpr-a/progetto.1261154888.txt.gz · Ultima modifica: 18/12/2009 alle 16:48 (15 anni fa) da Vincenzo Gervasi