Pregunta

Estoy intentando crear un código que mueva a un actor a una ubicación aleatoria si está abierto. Sin embargo, tengo dificultades con un error que resulta de esta línea.

if (null == get(loc))

Básicamente, pensé que esta línea verificaría si la ubicación estaba abierta. Sin embargo, recibo este error, ¿alguien puede ayudar?

F:\Lab III Car and Teleporter\Teleporter Project\TeleporterActor.java:42: error: cannot find symbol
            if (null == get(loc))
                        ^
  symbol:   method get(Location)
  location: class TeleporterActor
1 error

Process completed.

public void act()
    {
        Location place = getLocation();
        Grid<Actor> gr = getGrid();
        int cols = gr.getNumRows();
        int rows = gr.getNumCols();
        do
        {
            Location loc = new Location((int)(Math.random() * rows - 1), (int)(Math.random() * cols - 1));
            if (null == get(loc))
                moveTo(loc);    
        }
        while (place == getLocation());  
    }
¿Fue útil?

Solución

El error significa que no tiene un get método en tu TeleporterActor clase, por lo tanto, el compilador no sabe a qué te refieres con usar get.

O agregue dicho método a su TeleporterActor clase, o llámalo a otro objeto, por ejemplo

gr.get( loc );

donde supuse el get El método está disponible en su Grid

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top