У меня есть двумерный массив символов в классе Map
public class Map {
private char[][] map;
}
размером 5 строк и столбцов (определяется в конструкторе). У меня также есть метод в том же классе
public Point findStart(){
Point location=new Point();
for ( int i=0; i<map.length; i++){
if(map[i][i]=='s')
System.out.println( "The starting position is in " + location.x + location.y );
}
return location;
}
, который перебирает массив, чтобы найти символ "s"
. Как только он найдет персонажа, я хочу использовать класс java.awt
s Point
, чтобы найти местоположение, где расположены символы. Как я могу получить точку для распечатки?
Как указал MaxG, в моем коде отсутствует цикл for. Новый метод
public Point findStart(){
Point location=new Point();
for ( int i=0; i<map.length; i++ ){
for( int j=0; j<map[i].length; j++ )
if(map[i][j]=='s')
location.getLocation();
}
System.out.println(location.x+","+location.y);
return location;
}
Я все еще получаю 0,0 как координаты.
ОБНОВЛЕНИЕ: Я думаю, что Кристофер Чемберлен поднимает правильную точку зрения. В проекте я читаю из файла .txt и помещаю каждый символ в массив.
//loads maps according to an integer parameter, which depends on what map the player is in (Map1, Map2, Map3, etc.)
public void loadMap(int MapNum){
//attemps to load .txt file
try{
String s="Map"+MapNum+".txt";
File file=new File(s);
Scanner sc=new Scanner(file);
while(sc.hasNextLine())
{
for( int i=0; i<5; i++){
char currentCharacter=sc.next().charAt(0);
map[i][i]=currentCharacter;
}
}
}
catch(IOException exception){
System.out.println(exception);
}
}
этот метод существует в том же классе. Возможно, я где-то напутал, читая каждый символ, но не могу понять где?