Sette robot, un programma.
Scegli un linguaggio e un paradigma nel laboratorio. OOP crea sette istanze indipendenti; Top-down usa il ciclo nextRobot; Blocchi e Diagramma generano codice nello stesso linguaggio. Tutte le 62 API sono disponibili in tutti i 20 ambienti.
Il contratto del campo
Campo 150 × 90. Id 0–6, portiere 0. Le coordinate del codice sono relative alla squadra: la porta avversaria è sempre (150,45), anche nel secondo tempo.
Osserva → decidi → agisci
Un turno di codice ogni 0,1 secondi simulati. Tutte le istanze leggono lo stesso inizio turno. Al massimo un movimento e un calcio per robot e turno. I segnali arrivano al turno successivo.
Step esegue tutte le sette istanze e mostra sensori e comandi. Esegui lascia l’intera squadra al programma. Gioca con il tuo codice sostituisce il comando di un robot con quello umano: gli altri sei restano programmati. Il portiere resta al codice fino alla presa della palla.
Moduli e reparti
Moduli 2-3-1, 3-2-1 e 2-2-2: il portiere è sempre 0; gli id successivi occupano difesa, centrocampo e attacco in questo ordine. getRole() e teammateRole(id) restituiscono 0 portiere, 1 difesa, 2 centrocampo, 3 attacco. getFormation() restituisce 231, 321 o 222. homeX()/homeY() sono la posizione iniziale relativa; supportX()/supportY() indicano una posizione di copertura dinamica, in base al pallone e al possesso. Questi sensori non muovono il robot: usa moveTo o sprintTo. isClosestToBall() considera solo i giocatori di movimento, con id minore in caso di parità. I conteggi escludono il portiere. Cambiare modulo conserva il codice esistente.
Pressing: sprintTo verso un portatore avversario entro 4,5 unità tenta un contrasto, rispettando recupero e protezione della palla. Allontanarsi o usare moveTo non lo attiva. Il robot umano usa il pulsante contrasto. La punta iniziale allunga il pallone nella propria corsia prima di cercare il tiro sul lato opposto della porta.
Prima strategia nei 20 ambienti
Le 62 API
Gli indici dei robot sono interi 0–6; canali 0–7; previsione 0–60 turni. Potenza 0–1, spin −1…1. Previsione della palla libera su piano con sponde, senza collisioni con robot o quota del pallonetto. Tiro ad effetto: energia almeno 50, costo 25; passaggio ad effetto: energia oltre 25, costo 15.
In JavaScript OOP usa this.metodo(), in Python self.metodo(), in C metodo(actor, …). In C++ e Java usa i metodi della classe. In Top-down chiama le funzioni direttamente; JavaScript richiede await nextRobot(). Le API di comando non restituiscono un valore. Le etichette e i disegni di debug si vedono sul campo dell’allenamento.
Import/export è JSON Scripted. I progetti di questa variante creano sette robot e restano separati dalle strategie Academy 3v3. L’Academy originale conserva account, missioni, classi, consegne, tornei e i propri manuali.