Warcaby ruch piona za pomocą myszy.

0

Witam wszystkich.
Próbuję napisać grę w warcaby. Planszę oraz pionki przetrzymuje w osobnych dwuwymiarowych tablicach.
Reprezentacja wygląda tak: [1,0,1,0,1,0,1,0] gdzie jedynką jest u mnie czarny kwadrat 30px, zero to kwadrat biały (mam 8 takich wektorów dla wszystkich 64 pól). Druga tablica zawierająca pionki wygląda podobnie: liczby 3,4,5 oznaczają kolejno jest pionek bialy ,jest pionek czarny, nie ma żadnego pionka.

Zupełnie nie wiem jak rozwiązać problem obsługi myszy. Chciałbym to zrobić tak, żeby zaznaczyć piona i później pole na które powinien wskoczyć.

Mój tok rozumowania: pobieram współrzędne wciśnięcia przycisku i kojarzę to w jakiś sposób z tablicą w której przechowuje położenia pionów. Później ewentualnie robię przesunięcie w tablicy i przerysuje plansze. Z tym, że nie mam niestety pomysłu jak to zrobić.

Może ma ktoś pomysł jak mógłbym to rozwiązać?
Bardzo proszę o ukierunkowanie, małą pomoc.

1

Jeśli pola mają tę samą wielkość można to chyba zrobic zwykłym dzieleniem

0

Po co dzielić? Zdarzenie myszy MouseEvent zawiera przecież informację w co kliknięto.

0

Dobrze, jestem w stanie otrzymać współrzędne. Jak powiązać to z indeksami z tablicy położeń pionków?

0
bogdans napisał(a):

Po co dzielić? Zdarzenie myszy MouseEvent zawiera przecież informację w co kliknięto.

O to nie wiedziałem. A jak to uzyskać i w jakiej formie podaje informacje? ;)

1
me.getSource();

Pola powinny być pamiętane w dwuwymiarowej tablicy JButton[][] lub JPanel[][].

0

Po wcisnięciu na piona otrzymuję już jego współrzędne w tablicy. Mam również współrzędne tablicy pola na który będzie wykonywany ruch. Zamieniam je miejscami w tablicy pionów.
i próbuję ją na nowo przerysować. Niestety mam problem, nic sie nie przerysowywuje. Bardzo bym prosił o pomoc. Swoje wypociny wrzuciłem na gita https://github.com/diasdj/Warcaby?source=c

1

Usuń pole rysujPoRuchu (i dwie instrukcje, które z niego korzystają).

0

Rzeczywiście działa :) Dziekuję bardzo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1