Obejrzałem tutorial od Pana Banasa: https://www.youtube.com/watch?v=_pUz-GJcdRU&list=PLE7E8B7F4856C9B19&index=8
Postanowiłem na początek zrobić coś podobnego, ale samemu - bo niestety nie wszystko jest dla mnie jasne, chociaż wydawało mi się, że podstawy dot. tworzenia tabel znam :/
Chcę na początek uzyskać planszę 12 x 13 złożoną z gwiazdek. Może się uda to narysować:
************
************
************
************
************
************
************
************
************
************
************
************
************
Mam taki kod i w związku z nim pytania, bo bardzo chciałbym to wszystko zrozumieć:
import java.util.*; //np. Arrays
public class plansza {
static char[][] battleBoard = new char[12][13];
public static void buildBattleBoard(){
for (char[] row : battleBoard){
Arrays.fill(row, '*');
}
}
public static void main(String[] args){
System.out.println(battleBoard.length);
buildBattleBoard();
for(int i=0; i<battleBoard[0].length-1; i++){
System.out.println();
for (int j=0; j<battleBoard.length-1; j++){
System.out.print(battleBoard[i][j]);
}// for b
}// for a
}//end main
1. W linii 5 rozumiem, że przygotowuję miejsce w pamięci na tablicę 2-wymiarową składającą się z pojedynczych znaków. Jak do tego ma się polecenie .length ? Jak okreslić ile tablica ma wierszy a ile kolumn w pętli?
battleBoard[0].length - zwraca mi liczbę kolumn
battleBoard.length - zwraca mi liczbę wierszy
Dlaczego tak się dzieje? Dla mnie intuicyjnie byłoby tak, że jak wypisuję to pierwsze polecenie to są kolumny (bo pokazuje mi jakby długość tego pierwszego wiersza), ale w drugim przypadku to bardziej napisałbym battleBoard.length[0][0] .. ?
2. kompletnie nie rozumiem tej pętli:
for (char[] row : battleBoard)
Intuicyjnie chciałem napisać char row (po prostu, a nie jako tym razem jednowymiarowa tablica, chociaż tworzyłem na początku 2-wymiarową
3. EDIT: planszę mi rysuje już ok :)