Это так. Вы снова создаете переменную "board". Даже если имя совпадает, переменная, которую вы возвращаете, не та, которую вы создали. Вот фиксированный код:
public int[][] loadBoard(int map) {
if (map == 1) {
return new int[][] {
{2,2,24,24,24,24,24,3,3,0,0,0,1 },
{ 2,2,24,23,23,23,24,1,3,0,0,0,1 },
{ 1,1,24,23,23,23,24,1,3,3,3,3,1 },
{ 1,1,24,24,23,24,24,1,1,1,1,3,1 },
{ 1,1,1,1,7,1,1,1,1,1,1,3,1 },
{ 5,1,1,1,7,7,7,7,7,1,1,1,1 },
{ 6,3,3,1,3,3,3,1,7,7,7,3,1 },
{ 6,3,3,1,3,1,1,1,1,1,7,1,1 },
{ 3,3,1,1,1,1,1,1,1,1,7,1,1 } };
}else{
return new int[][] {
{ 1,1,1,1,1,24,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,24,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,24,1,1,24,1,1,1,1 },
{ 1,1,1,1,1,24,1,1,24,1,1,1,1 },
{ 1,1,7,1,1,24,24,24,24,1,1,1,1 },
{ 1,1,7,1,1,24,1,24,1,1,1,1,1 },
{ 1,1,1,1,1,24,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,24,1,1,1,1,1,1,1 },
{ 1,3,3,1,1,24,1,1,1,1,1,1,1 },
}; }
}
Это может быть упрощено еще больше, если бы я теперь определил, сколько "чисел" вы планируете иметь
Другим предложением было бы НЕ создавать массивы на лету, а использовать их как константы. Затем верните соответствующий массив из метода. Ваш код может выглядеть следующим образом (более 2 вариантов):
private static final int[][] BOARD1 = <array here>;
private static final int[][] BOARD2 = <array here>;
private static final int[][] BOARD3 = <array here>;
private static final int[][] BOARD4 = <array here>;
public function int[][] loadBoard( int choice ) {
switch( choice ) {
case 1: return BOARD1;
case 2: return BOARD2;
case 3: return BOARD3;
case 4: return BOARD4;
default: throw new RuntimeException( "Unknown board choice" );
}
}