Загрузить данные из файла JSON, сгенерированного Tiled, используя org.json.simple

Двумерная матрица N * N является квадратной матрицей

Идея:

Мы должны проходить в четырех разных направлениях, чтобы пересечь как спираль. Мы должны пересечь внутреннюю матрицу после того, как закончится один слой спирали. Итак, всего, нам нужно 5 петель, 4 петли для прохождения по спирали и 1 петля для прохождения через слои.

public void printSpiralForm(int[][] a, int length)
{

  for( int i = 0 , j = length-1 ; i < j ; i++ , j-- )
  {

    for( int k = i ; k < j ; k++ )
    {
      System.out.print( a[i][k] + " " ) ;
    }

    for( int k = i ; k < j ; k++ )
    {
      System.out.print(a[k][j] + " ");
    }

    for( int k = j ; k > i ; k-- )
    {
      System.out.print(a[j][k] + " ") ;
    }

    for( int k = j ; k > i ; k-- )
    {
      System.out.print( a[k][i] + " " ) ;
    }

  }

  if ( length % 2 == 1 )
  {
    System.out.println( a[ length/2 ][ length/2 ] ) ;
  }

}

0
задан Robin 18 March 2019 в 17:38
поделиться

1 ответ

Существует множество ресурсов, а библиотека json org проста в использовании.

Вы можете найти больше ПРИМЕРОВ здесь

    JSONParser parser = new JSONParser();
    Object parsedObject = parser.parse(jsonStr);

    JSONObject jsonObject = (JSONObject) parsedObject;
    JSONArray layers = (JSONArray) jsonObject.get("layers"); 

    JSONObject data = (JSONObject) layers.get(0);   
    JSONArray mapData = (JSONArray) data.get("data");   
    int[] mapTile = new int[mapData.size()];
    for (int i = 0; i < mapData.size(); i++) {
        mapTile[i] = ((Long)mapData.get(i)).intValue();
    }

    data = (JSONObject) layers.get(1);  
    JSONArray objectData = (JSONArray) data.get("data");    
    int[] objectTile = new int[objectData.size()];
    for (int i = 0; i < objectData.size(); i++) {
        objectTile[i] = ((Long)objectData.get(i)).intValue();
    }

    System.out.println(Arrays.toString(mapTile));
    System.out.println(Arrays.toString(objectTile));
0
ответ дан Sean Ervinson 18 March 2019 в 17:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: