Wpis z mikrobloga

Nie krzyczcie jestem początkujący :). Jak wygenerować planszę do gry statki w javie GUI? Czy da się to jakoś sprytnie zrobić metodą oddzielenia grafiki od kodu czy lepiej w tym przypadku tego nie robić? Rozwiązanie rysowania w scene builderze siatki przycisków 10x10 wydaje mi się dość toporna.. Chodzi mi o programowanie gry w statki. W wersji "konsolowej" odbywa się to tak - tablica dwuwymiarowa wypełniana pętlom for , przy wykorzystaniu random co jakiś czas ustawia się pole ze statkiem. Pole puste to znak ' ' a statek to 'O'. I teraz jak to przekształcić na graficzny interfejs wyświetlający plansze 10x10 - kwadraty, które w zależności czy znajduje się na tym polu "statek" wypełnia je kolorem innym niż pole puste. Narazie z grą nie ma to nic wspólnego ale od czegoś trzeba zacząć. Proszę pomożcie .
#java #jafafx #fxml
  • 8
@g3ko: tak to wygląda:

public class Main {

enum State {
EMPTY, HIT, MISS, SUNK
}

public static void main(String[] args) {

State [][] board = new State[10][10];
fillBoard(board);

printLetter();
printBoard(board);

}

private static void fillBoard(State[][] board) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
board[i][j] = getRandomShip(Math.random());
}
}
}

static void printLetter() {
System.out.print(" ");
for
@mbthz: już trochę czasu minęło odkąd ostatni raz się w takie rzeczy bawiłem. Zasady w te statki mają być z założenia "upośledzone" czy to tylko przymiarka? Nie pilnujesz w żaden sposób statków, które generujesz. Nie powinieneś wygenerować 1x czteromasztowiec, 2x trzymasztowiec, 3x dwumasztowiec i 4x jednomasztowiec, które się z sobą dodatkowo nie będą stykały?
Jeżeli nie chcesz się bawić z grafiką, to może faktycznie zrób to na przyciskach. Po prostu wygeneruj
@g3ko: Tylko przymiarka. Całą grę (łącznie z założeniami logicznymi o których mówisz) mam zrobioną - tzn robiłem ją razem z kursem. W ramach nauki chciałem ją przekształcić w aplikacje okienkowa i chciałem jechać "od początku". Sądzę, że jak przekształcę powyższy kod w aplikacje okienkową, zachowując mniej więcej podobną logikę to potem wraz kolejnymi lekcjami w kursie sobie to rozbuduje.