2012-11-05 9 views
6

To jest dla mojej pracy domowej: Jak utworzyć publiczną metodę o nazwie cage (char [] [] arr), która zwraca char [] []. Metoda powinna umieścić Xs wzdłuż granic siatki reprezentowanej przez tablicę 2D. Dodatkowo powinien umieścić "paski" wzdłuż kolumn tablicy, pomijając jedną kolumnę dla każdego paska. Na przykład, jeśli arr ma 8 kolumn, tablica powrocie wygląda następująco:Jak utworzyć klasę języka Java metodą statyczną zwaną klatką, to miejsce X w kształcie więzienia?

X X X X X X X 
X X X X 
X X X X 
X X X X X X X 

mój inny kształt był taki: Tworzenie klasy java ArrayArt z metod statycznych, jak określono poniżej: publiczną metodę o nazwie ramy (char [ ] [] arr), który zwraca znak [] []. Metoda powinna umieścić Xs wzdłuż granic siatki reprezentowanej przez tablicę 2D, a następnie powinna zwrócić tę tablicę. Na przykład, jeśli arr ma 4 kolumny i 4 rzędy, uzyskany tablica powinna być:

----jGRASP exec: java ArrayArt 

    X X X X 
    X  X 
    X  X 
    X X X X 

----jGRASP: operation complete. 

Kod źródłowy do drukowania ramki jest następny:

public class ArrayArt{ 
    public static void main(String[] args){ 
     printArray(frame(4,4)); 

} 

// frame printing 
public static char[][] frame(int n, int m){ 
    char[][] x=new char[n][m]; 

    for(int row=0;row<x.length;row++) 
     for(int col=0;col<x[row].length;col++) 
      if(row == 0 || row == n-1 || row == col+row || row == (row+col)-(m-1)) 
       x[row][col]= 'X'; 
      else 
       x[row][col]= ' '; 

    return x;  
} 

//printArray   
public static void printArray(char[][] arr){ 
    for(int row=0;row<arr.length;row++){ 
      for (int col=0;col<arr[row].length;col++) 
       System.out.print(" "+arr[row][col]); 
      System.out.println(); 

} 
} 

} 
+0

@Bart dziękuję za informację, nie wiedziałem o tym (oprócz faktu, że jest to napisane w czapkach w opisie -.-). Czy jest jakiś substytut? – Christoph

Odpowiedz

4

Wystarczy dodać ten kod po warunku innego :

for(int i=1;i<x[row].length;i++)if(col == i*2)x[row][col]= 'X'; 

Ten shood to zrobić! Powodzenia!