Mi piace creare una vista connettore / diagramma UML componente per il problema dato, ma ho capito che è troppo lento se si tenta di farlo esattamente come è indicato nel testo seguente. La mia domanda è cosa potrebbe essere ottimizzato? Sapendo questo, creerei io stesso l'intero diagramma.
Abbiamo 2 squadre che giocano l'una contro l'altra e l'obiettivo è che una squadra realizzi più gol dell'altra. Entrambi i team hanno le stesse risorse private : 3 robot, una CPU che è in grado di comunicare con ciascun robot in modo bidirezionale, ma è anche in grado di inviare messaggi di trasmissione a tutti i robot del proprio team. Ogni robot ha il suo unico motivo circolare composto dai colori CMYK (4 colori: ciano, magenta, giallo, nero) in modo tale che è impossibile che possano essere confusi dal campo da calcio (verde) o con altri colori (la palla che è arancione) .
Entrambi i team condividono le seguenti risorse condivise :
-
campo di calcio: qui vengono eseguite tutte le azioni che consentono movimenti fluidi del robot. il campo è verde ad eccezione di alcuni segni di colore bianco. un rettangolo di 200 cm x 100 cm limita la superficie di gioco in cui le aree contrassegnate in bianco (il punto centrale, i segni del gateway, ecc.) non sono importanti qui
-
gateway: su entrambi i lati corti del rettangolo la linea centrale di 40 cm è coperta da sensori invisibili. Ogni volta che questi sensori rilevano la palla che ha attraversato la linea, la squadra corrispondente ottiene 1 goal [/ p>
-
palla: ha il colore arancione, i robot corrono verso la palla per sparare nell'obiettivo avversario
-
computer host: rileva gli eventi di gioco come la palla che lascia il campo o si raggiunge un obiettivo. Tutti questi eventi vengono inviati a entrambe le CPU (dei team) allo stesso tempo
-
camera: sta registrando l'intero campo di calcio e li invia a entrambe le CPU del team. La fotocamera esegue 4 immagini al secondo (quindi 1 foto ogni 250 ms)
Il compito delle CPU del team è quello di determinare tutte le posizioni di robot e palla e anche di sviluppare una strategia per il gioco per informare i robot su di esso. Per determinare le posizioni di robot e palla, la CPU deve elaborare ogni immagine creata dalla telecamera, utilizzando 4 filtri perché ci sono 4 colori (CMYK). Un altro filtro è necessario per la pallina arancione. Questi filtri sono disponibili per la CPU. Ma questi filtri sono più piccoli dell'immagine scattata dal camer: possono filtrarne solo 1/3 simultaneamente. Inoltre, ogni filtro ha bisogno di 500ms per completare tutti i calcoli.
Il problema principale che vedo qui è che il filtro ha bisogno di 500 * 4 * 3 = 6000ms = 6s tanto tempo solo per determinare le posizioni dei robot, solo per 1 immagine ...! Questo rende tutto il resto inefficiente e il gioco sembra completamente ingiocabile: / Come potrebbe essere fatto molto più veloce? Penso che se so che potrei creare la vista completa del connettore componente / il diagramma UML per il problema.