Я делаю программу, используя LRV (наименее недавно посещенный) алгоритм. В принципе, я проектирую алгоритм для того, чтобы робот проходил через сетку (которая представляет собой массив двумерных символов). Робот при обходе сетки проверяет, является ли каждая ячейка либо EMPTY
(определяется «O»), OCCUPIED
(определяется «S»), либо BLOCKED
(определяется «X»). Клетки могут быть заняты только объектом, известным как Sensor (у этого есть свой класс). BLOCKED
Ячейки не могут быть перемещены. Каждый раз, когда робот должен двигаться, он получает направление от датчика. Таким образом, вначале робот будет помещен в сетку, и он сбросит датчик и получит направление от него или получит направление от уже существующего датчика.Как получить направление для робота из метода в классе датчиков?
Теперь, когда я объяснил свою программу, мой конкретный вопрос: У меня есть датчик класса, который имеет метод getVisitingDirection
, который возвращает INT. У меня есть счетчик для каждого направления (север, юг, восток и запад от типа INT) Вот этот класс.
package ITI1121A;
public class Sensor {
private int cColumns;
private int cRows;
private int North;
private int South;
private int West;
private int East;
public Sensor(int sX, int sY) {
cColumns = sX;
cRows = sY;
South= -1;
North = -1;
West = -1;
East = -1;
}
/* ADD YOUR CODE HERE */
public int getX()
{return cColumns;}
public int getY()
{return cRows;}
public int getVisitingDirection(GridMap g1)
boolean temp;
{
if(cRows==0){
//top row
if(cColumns==0){
temp=g1.isCellBlocked(cColumns+1,cRows);
if (temp=false){
return West++;
}
}
}
}
public void increaseCounter(int direction)
{}
}
Теперь, когда я застрял в в getVisitingDirection, я пытался сделать, если заявления, чтобы проверить верхний левый край сетки (координаты 0,0) и да, что это о нем. Я хочу, чтобы метод дал направление роботу, а затем увеличил счетчик этого направления. Имея настоящую трудность даже при получении концепции здесь. Любая помощь будет высоко оценена! Thanks Varun
Sau робот устанавливается на (3,3) и падает на датчик (3,4), тогда датчик будет инструктировать робота двигаться (2,3), а затем? Робот помещает новый датчик в (3,3) => свою последнюю позицию? Или этот датчик в (3,4) продолжает давать команды в любом месте сетки? – Frankie
, помещенный в (3,3), проверьте, пусто ли, если да, тогда поместите «S» .. затем получите направление от «S» для следующего перемещения, так далее и т. Д. каждый раз, когда робот обнаруживает датчик в ячейке, он запрашивает направление – Mjall2
ах! Таким образом, как робот, так и датчик могут «сосуществовать» в одной ячейке? Робот расположен на (5,5), там нет датчика. Затем он падает на датчик (5,5) и спрашивает о направлениях, что это? – Frankie