Agente è il tuo aiutante personale in Minecraft, ti assiste nelle mansioni che del gioco, ma per fare ciò lo devi programmare.

Agente costruisce, Agente scava, Agente ti aiuta con le coltivazioni e con l’allevamento, Agente cerca materiali, Agente fa tutto ciò per cui lo hai programmato.

Agente

Sai chi è Agente? E per cosa lo puoi utilizzare? Leggi questo articolo per sapere tutto di lui.

Non sai come programmare Agente e vorresti imparare, qui trovi le informazioni sul Minecraft Coding Camp

Come si programma Agente?

Agente è un robot, perciò devi fornirgli tutte le istruzioni necessarie per compiere le azioni che vuoi che lui esegua per te.

MakeCode mette a disposizione numerose istruzioni necessarie alla programmazione di Agente che, combinate con le istruzioni per giocatore, istruzioni per le mob, logica e ripetizioni, ecc. permettono di costruire programmi più o meno evoluti per Agente.

Agente

Un mondo in 3 dimensioni

Per comprendere l’orientamento di Agente, dobbiamo fare un passo indietro e capire come funziona l’orientamento in Minecraft.

Minecraft è un mondo in 3 dimensioni, simile a quello in cui viviamo. Al fine di comprendere come e dove muoversi è importante conoscere la posizione di ogni “abitante”, che sia il giocatore, una mob o Agente.

Così come nel mondo reale, anche in Minecraft la posizione del giocatore, di Agente o di una mob è definito da due elementi: la posizione e la direzione in cui sono rivolti.

In Minecraft, la posizione è definita dalle coordinate di posizionamento che indicano il punto preciso nel mondo: si identifica tramite 3 valori che indicano est/ovest, su/giù e sud/nord. Sì, anche alto/basso, perché in Minecraft si può volare senza un aereo e si può finire facilmente nelle viscere del mondo.

Coordinate in Minecraft

La direzione, invece, è l’orientamento e indica in quale direzione il giocatore o Agente sta “guardando”, cioè in quale direzione è rivolta la loro faccia: nord, sud, est o ovest. Muovendo il giocatore o Agente, questi si muovono nella direzione in cui sono rivolti.

Orientarsi

L’orientamento in Minecraft è molto importante perché è necessario sapersi orientare per poter orientare Agent e far sì che si muova nella direzione corretta.

Per questo, è molto importante sapere in che direzione è rivolto Agente ed eventualmente ruotarlo nella direzione desiderata.

La direzione è definita da uno tra i 4 punti cardinali: Agente (o il giocatore) può rivolgere lo sguardo a nord, sud, est o ovest e, muovendo un passo avanti, si muoverà in questa direzione.

Anche se Agente dovesse muoversi indietro oppure a destra o a sinistra, questi movimenti avverrebbero relativamente alla direzione in cui è orientato.

E’ importante ricordare che a l’orientamento è indipendente dalle coordinate di posizionamento: ad ogni coordinata Agente si può orientare in direzioni differenti.

Orientamento e direzione di Agente

Alto e basso, invece, indicano se Agent si trova con i piedi sul terreno, sopra oppure sottoterra. Inoltre, alto e basso si definiscono esclusivamente con le coordinate di posizionamento.

Questa premessa ci fa capire che gestire l’orientamento sui 4 punti cardinali è un po’ complicato.

Dal lato pratico, definire l’orientamento si traduce nel ruotare Agente in modo che “guardi” in una direzione precisa: verso nord oppure verso ovest, ecc. Perché bisogna ricordare che Agente deve essere programmato, non si muove o ruota come il giocatore utilizzando semplicemente tastiera e mouse.

Questo significa che una volta posizionato ad una coordinata Agente deve essere anche orientato in modo che il suo sguardo sia diretto nella direzione desiderata.

Puoi scegliere la direzione in cui orientare Agente per “tentativi”, cioè eseguire un programma che ruoti Agente di 90° ad ogni esecuzione, oppure scegliere una direzione precisa in cui dirigere per Agente, ciò significa conoscere precisamente in che direzione si muoverà o agirà.

Ed è esattamente quello che vogliamo fare! Orientare Agente a nostra scelta!

I blocchi di orientamento di Agente

Per gestire l’orientamento di Agente, MakeCode ti fornisce tre istruzioni e una variabile.

Sembra poca cosa, ma in realtà è tutto quello che ti serve!

Istruzioni

Modificano la posizione e/o l’orientamento di Agente

  • Agent Teleport: richiede le coordinate a cui teletrasportare Agente e l’orientamento (nord, sud, est, ovest)

    Teleport Agente

  • Svolta a destra: ruota Agente verso destra di 90°

    Svolta Destra Agente

  • Svolta a sinistra: ruota Agente verso sinistra di 90°

    Svolta Sinistra Agente

Variabile

Può essere interrogata per conoscerne il valore, ma non è possibile modificarne il valore a piacere

  • Orientamento dell’Agente: contiene l’orientamento nord, sud, est, ovest di Agent e viene aggiornata quando Agente modifica la propria direzione

    Orientamento Agente

Tra questi, però, non esiste un’istruzione che permetta di orientare Agente in una direzione precisa, qualcosa come ad esempio: “ruota verso sud”.

Un po’ di matematica

Eh sì! Qui ci serve un po’ di matematica.

Ma a quella ci penso io.

Come detto in precedenza, per ruotare Agente in una direzione, puoi utilizzare le istruzioni Svolta a destra e Svolta a sinistra e puoi conoscere l’orientamento di Agente attraverso la variabile Orientamento di Agente.

Analizzando attentamente la variabile Orientamento di Agente, si nota subito che per gestire l’orientamento in modo efficiente non vengono utilizzati i termini nord, sud, est e ovest, che per noi umani sarebbero più comprensibili, ma ogni direzione è stata codificata con un valore matematico.

Sembra una complicazione inutile, ma ti assicuro che tra poco ti svelerò come funziona e capirai che tutto ha un senso.

Per comprendere come sia codificato l’orientamento di Agente è sufficiente immaginare di posizionarsi sopra Agente e di vederlo perpendicolarmente sotto il tuo giocatore.

Guardando Agente ruotare verso destra o sinistra da questa posizione, ti accorgerai che Agente ruota di 90° per volta e sembra seguire una circonferenza.

Orientamento di Agente

L’orientamento di Agente è codificato secondo uno schema preciso:

Direzione Valore
SUD 0
OVEST 90
NORD -180
EST -90

Sembra una codifica strana e difficile ma, in realtà, è proprio basata suddivisione di due angoli piatti (180°) che uniti formano un angolo giro (360°).

Nonostante sembri complicata, questa codifica è la chiave per poter orientare Agente in ogni direzione desiderata.

Puoi provare tu stesso e scoprire la codifica dei punti cardinali semplicemente scrivendo un programma che scriva in chat l’orientamento di Agente. Ruota poi Agente in tutte le direzioni e scoprirai che otterrai 0 quando Agente è orientato a SUD, 90 quando è orientato a OVEST, -180 quando è orientato a NORD  e -90 quando è orientato a EST.

Puoi anche utilizzare il teletrasporto con orientamenti diversi e poi interrogare la variabile Orientamento di Agente.

Comando Chat Orientamento per orientare Agente
Agente orientato a ovest

In questa prima prova, ho orientato Agente a Ovest, come puoi vedere nel comando teleport. Avviando questo comando Agente risponde 90.

Per verificare l’orientemento di Agente in altre direzioni, devi solo scegliere l’orintamento di Agente nel comando Teleport.

Comando Chat Orientamento per orientare Agente

E adesso si programma

Ora che sai come funziona l’orientamento in Minecraft, ti aiuto a mettere insieme tutti le informazioni e a creare un programma che orienti Agente nella direzione che preferisci.

Per fare questo, crea un comando chat chiamato Orienta con un argomento chiamato Direzione.
Ti ricordo che gli argomenti possono essere solo valori numerici.

Comando chat orienta

Orienta è il comando che conterrà le istruzioni che Agente dovrà eseguire per orientarsi secondo le tue richieste, mentre direzione è una variabile numerica che prenderà un valore che tu sceglierai nel momento in cui utilizzerai il comando chat Orienta.

Per esempio: Orienta 90, sarà il comando per orientare Agente a ovest

Per orientare Agente dovrai confrontare il valore di Direzione con il valore di Orientamento di Agente, la variabile che contiene l’orientamento di Agente, e far girare Agente verso destra (o sinistra, è indifferente) finché i valori delle due variabili non saranno uguali.

Ricorda che una volta creato un argomento di un comando, l’argomento diventa una variabile e lo trovi nella lista delle variabili.

Comando chat orienta

Ora aggiungi l’istruzione per far ruotare Agente a destra (o sinistra).

Comando chat orienta

Se vuoi verificare che tutto funzioni correttamente, aggiungi un’istruzione “dì (Orientamento di Agent)”. Potrai togliere questa istruzione quando avrai verificato che tutto funzioni correttamente.

Comando chat orienta

Et voilà!

Ora puoi orientare Agente in una direzione a tuo piacere!