Buenas!

Hoy mostrare como realizar 2 movimientos básicos con un Agente en Minecraft

  • Avanzar
  • Girar

El ejemplo de código al final del post, representa una ConsoleApp, que una vez conectado al host Minecraft, adelanta una serie de pasos, luego gira y vuelve a adelantar. Ejemplo en modo gráfico.

2017 11 19 Malmo Movements 01.gif

Pues bien, los comandos que usamos son

  • Avanzar > “move {1}”
  • Girar > “turn {1}”

Donde el primer parámetro es un entero entre 0 y 1 que define el movimiento a realizar. Estos 2 comandos son los mínimos que podemos utilizar en escenarios como por ejemplo un laberinto, así que tiene sentido que el siguiente post hable de eso.


namespace Malmo06
{
class Program
{
private static AgentHost _agentHost;
private static MissionSpec _mission;
private static MissionRecordSpec _missionRecord;
private static WorldState _worldState;
public static void Main()
{
InitAgentHost();
InitMissionSpecs();
StartMission();
WaitMissionToStart();
Console.WriteLine("Mission in progress !");
Console.WriteLine();
int i = 0;
do
{
i++;
var command = "move 0.5";
if (i > 3)
{
i = 0;
command = "turn 0.5";
_agentHost.sendCommand(command);
Thread.Sleep(500);
command = "turn 0";
_agentHost.sendCommand(command);
Thread.Sleep(500);
}
else
{
_agentHost.sendCommand(command);
Thread.Sleep(1000);
}
Console.WriteLine($"{i} – command: {command}");
// Move
} while (_worldState.is_mission_running);
Console.WriteLine("Mission has stopped.");
}

Sample Project en GitHub link

Saludos @ Toronto

El Bruno

References

 

Leave a comment

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading